Недавно я составил PHP 5.2.9 двоичный файл, и я попытался выполнить с ним несколько сценариев PHP. Я могу выполнить некоторые сценарии без проблем, но один из них останавливает выполнение на полпути, завершаясь без ошибок или предупреждений. Возвращенный код состояния процесса - 255.
Я читал в инструкции, что такой статус «зарезервирован». Возникает вопрос: для чего?
Я считаю, что это как-то связано с отсутствием зависимостей в исполняемом файле PHP, но я не уверен.
Кто-нибудь знает, что означает код выхода 255?
P.S. В скриптах PHP нет ошибок, они нормально работают на других машинах.
255 является ошибкой, я мог бы воспроизвести тот же код выхода, получив фатальную ошибку.
Это означает, что каким-то образом ваше сообщение об ошибке скрыто, для этого есть несколько возможных причин:
@
(оператор подавления ошибок) скрывает вывод ошибкиЭто также может означать, что /etc/php5/cli/php.ini
(в Debian / Ubuntu) или /etc/php.ini
(в RHEL / CentOS / и т. д.) имеет display_errors = Off
это означает, что любые ошибки или предупреждения из сценариев командной строки никуда не денутся, если только log_errors = On
(см. также error_log
установка).
Попробуйте запустить свои сценарии с помощью сценария-оболочки, который использует php -d display_errors=on ...
Это может быть вызвано сообщениями об ошибках, подавленных PHP (строка начинается с @). Я нашел строчку
grep -r "@" src/
а затем закомментировал @. После этого я получил настоящую ошибку и смог легко ее исправить. Я также впоследствии заметил, что PHPStorm уже обнаружил ту же ошибку, но я ее не исправил / не заметил.
Это также может означать, что
/etc/php5/cli/php.ini (в Debian / Ubuntu)
/etc/php.ini (в RHEL / CentOS / и т. д.)
установил
display_errors = Off
это означает, что любые ошибки или предупреждения из сценариев командной строки никуда не денутся, если только
log_errors = On
См. Также параметр error_log.
Попробуйте запустить свои скрипты с оберткой
В моем случае это была смерть xDebug из-за низкого xdebug.max_nesting_level
стоимость.
Найдите, какой php.ini использовал ваш php-cli.
brain@cordova:~% php -i | grep "php.ini"
8:Configuration File (php.ini) Path => /etc/php/7.3/cli
9:Loaded Configuration File => /etc/php/7.3/cli/php.ini
Убедитесь, что параметры display_errors активны.
brain@cordova:~% php -i | grep "error"
106:display_errors => On => On
114:error_log => /tmp/php_errors.log => /tmp/php_errors.log
116:error_reporting => 22527 => 22527
134:log_errors => On => On
Убедитесь, что display_errors и log_errors включены.
Определите расположение error_log для записи ошибок в файл.
Сообщения об ошибках должны отображаться сейчас.