J'ai un script de test de ligne de commande qui s'exécute localement, mais j'essaie de l'exécuter sur mon hôte (Bluehost) via ssl (à l'aide de PuTTY). Il échoue, mais ne génère pas d'erreur.
J'ai consulté les journaux d'erreurs et rien n'y indique un échec. J'ai activé les erreurs E_ALL.
Sur mon serveur wamp local, cela fonctionne correctement et affiche toutes les invites:
1. environment imported
2. About to execute!
3. Got instance
4. Success
5. Finished executing!
Lorsque je lance ceci sur PuTTY chez mon hôte, il ne sort que les deux premières lignes. 1. environnement importé 2. A propos de l'exécution!
Voici le script (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";
?>
J'ai essayé de l'exécuter avec différentes variantes de la ligne de commande:
php jwjtest.php
php54s -c ~/public_html/php.ini ~/public_html/cli/jwjtest.php
J'ai également entouré la ligne qui exécute 'getInstance' avec 'try' et 'catch' mais aucune erreur n'est détectée.
Toute aide serait la bienvenue. Merci!
Note: Je poste ceci sur le stackexchange de joomla (j'ai déjà essayé le stackexchange normal, mais cela semblait être un forum plus pertinent)
Remarque: j'ai essayé de déclencher des erreurs d'exécution et elles semblent bien fonctionner en dehors de la classe cli, mais rien ne se passe dans la méthode doExecute (comme si aucun code n'était exécuté), mais il doit y avoir une erreur, car le dernier écho 'commentaire (' fini d'exécuter ') n'est jamais exécuté.
Avez-vous vérifié que php5-cli est installé?
S'il n'est pas installé, vous pouvez exécuter ce qui suit en ligne de commande pour l'installer:
apt-get install php5-cli
ou
yum install php5-cli