J'ai récemment compilé un binaire PHP 5.2.9 , et j'ai essayé d'exécuter certains scripts PHP avec celui-ci. Je peux exécuter certains scripts sans problèmes, mais l’un d’entre eux arrête son exécution en cours de route, sans erreurs ni avertissements. Le code d'état renvoyé du processus est 255.
J'ai lu dans le manuel qu'un tel statut est "réservé". La question est: pour quoi?
Je pense que cela a quelque chose à voir avec les dépendances manquantes dans l'exécutable PHP, mais je ne peux pas en être sûr.
Quelqu'un sait ce que signifie un code de sortie de 255?
PS Il n'y a pas d'erreur dans les scripts PHP, ils fonctionnent correctement sur d'autres machines.
php.ini
fichier cassé (c'est-à-dire que le fichier contient des caractères cassés à l'intérieur). Cela m'a pris 2 heures pour comprendre cela. Astuce: Si votre script (c'est-à-direcomposer.phar
) fonctionne avecphp -n composer.phar
, votrephp.ini
fichier est probablement cassé.Cela pourrait également signifier que
/etc/php5/cli/php.ini
(sous Debian / Ubuntu) ou/etc/php.ini
(sous RHEL / CentOS / etc.) Adisplay_errors = Off
ce qui signifie que toutes les erreurs ou tous les avertissements des scripts de ligne de commande ne mèneront nulle part, à moins quelog_errors = On
(voir aussi leerror_log
paramètre).Essayez d’exécuter vos scripts avec un script wrapper qui utilise
php -d display_errors=on ...
la source
-d display_errors=on
conseil: j'essayais de déboguer un script personnalisé pour une application PHP qui essaye de gérer seule la journalisation des exceptions, mais mange souvent des exceptions. En utilisant ce drapeau, je peux obtenir l’exception pour imprimer sur la CLI!Cela peut être causé par des messages d'erreur supprimés par PHP (la ligne commence par @). J'ai trouvé la ligne par
et ensuite commenté le @. Après cela, j'ai eu l'erreur réelle et j'ai pu la réparer facilement. J'ai aussi remarqué par la suite que PHPStorm avait déjà découvert la même erreur, mais je ne l'avais pas corrigé / remarqué.
la source
Cela pourrait aussi signifier que
/etc/php5/cli/php.ini (sur Debian / Ubuntu)
/etc/php.ini (sous RHEL / CentOS / etc.)
a mis
ce qui signifie que les erreurs ou les avertissements des scripts de ligne de commande n’iront nulle part, à moins que
Voir aussi le paramètre error_log.
Essayez d'exécuter vos scripts avec un wrapper
la source
Dans mon cas, c’était la mort de xDebug à cause de sa faible
xdebug.max_nesting_level
valeur.la source