it-swarm.com.de

CLI-Befehlszeilenskript funktioniert lokal, jedoch nicht auf dem Host

Ich habe ein Befehlszeilentestskript, das lokal ausgeführt wird. Wenn ich jedoch versuche, es auf meinem Host (Bluehost) über ssl (mit PuTTY) auszuführen, schlägt dies fehl, löst jedoch keinen Fehler aus.

Ich habe die Fehlerprotokolle überprüft und nichts weist auf einen Fehler hin, und ich habe dort E_ALL-Fehler aktiviert.

Auf meinem lokalen Wamp-Server läuft dies einwandfrei und gibt alle Eingabeaufforderungen aus:

1. environment imported
2. About to execute!
3. Got instance
4. Success
5. Finished executing!

Wenn ich dies auf meinem Host über PuTTY starte, werden nur die ersten beiden Zeilen ausgegeben. 1. Umgebung importiert 2. Über ausführen!

Dies ist das Skript (Joomla 3.4.5):

<?php
// Initialize Joomla framework
const _JEXEC = 1;
ini_set('display_errors', 1);
error_reporting(E_ALL);

// Load system defines
if (file_exists(dirname(__DIR__) . '/defines.php'))
{
require_once dirname(__DIR__) . '/defines.php';
}

if (!defined('_JDEFINES'))
{
define('JPATH_BASE', dirname(__DIR__));
require_once JPATH_BASE . '/includes/defines.php';
}

// Get the framework.
require_once JPATH_LIBRARIES . '/import.legacy.php';

// Bootstrap the CMS libraries.
require_once JPATH_LIBRARIES . '/cms.php';

// Load the configuration
require_once JPATH_CONFIGURATION . '/configuration.php';

require_once JPATH_BASE . '/includes/framework.php';


echo "1. Environment imported\n";

class Test extends JApplicationCli
{
public function doExecute()
    {
         echo "4. Successful execution\n";
    }
}

echo "2. About to execute\n";

$test = JApplicationCli::getInstance('Test');
echo "3. Got instance\n";

$test->execute();
echo "5. Finished executing!\n";

?>

Ich habe versucht, dies mit verschiedenen Variationen der Befehlszeile auszuführen:

php jwjtest.php
php54s -c ~/public_html/php.ini ~/public_html/cli/jwjtest.php

Ich habe auch die Zeile, die 'getInstance' ausführt, mit 'try' und 'catch' umgeben, aber es wird kein Fehler abgefangen.

Jede Hilfe wäre willkommen. Vielen Dank!

Hinweis: Ich poste dies auf dem Joomla StackExchange (ich habe bereits den regulären StackExchange ausprobiert, aber dies schien ein relevanteres Forum zu sein)

Hinweis: Ich habe versucht, Laufzeitfehler auszulösen, und sie scheinen außerhalb der cli-Klasse einwandfrei zu funktionieren, aber innerhalb der doExecute-Methode passiert nichts (als ob dort kein Code ausgeführt würde), aber aufgrund des letzten Echos muss ein Fehler aufgetreten sein 'd comment' ('finished executing') wird niemals ausgeführt.

3
user1104799

Hast du überprüft, dass php5-cli installiert ist?

Wenn es nicht installiert ist, können Sie Folgendes in der Befehlszeile ausführen, um es zu installieren:

apt-get install php5-cli

oder

yum install php5-cli
4
jdog