Recientemente compilé un binario PHP 5.2.9 e intenté ejecutar algunos scripts PHP con él. Puedo ejecutar algunos scripts sin problemas, pero uno de ellos detiene su ejecución a mitad de camino, saliendo sin errores ni advertencias. El código de estado devuelto del proceso es 255.
He leído en el manual que dicho estado es 'reservado'. La pregunta es: ¿para qué?
Creo que tiene algo que ver con las dependencias que faltan en el ejecutable de PHP, pero no puedo estar seguro.
¿Alguien sabe qué significa un código de salida de 255?
PD No hay errores en los scripts PHP, se ejecutan bien en otras máquinas.
php.ini
archivo roto (es decir, el archivo tiene caracteres rotos en su interior). Me tomó 2 horas para resolver esto. Consejo: Si su script (es decir,composer.phar
) funcionaphp -n composer.phar
, entonces suphp.ini
archivo probablemente esté roto.También podría significar que
/etc/php5/cli/php.ini
(en Debian / Ubuntu) o/etc/php.ini
(en RHEL / CentOS / etc.) tiene lodisplay_errors = Off
que significa que cualquier error o advertencia de los scripts de línea de comandos no irá a ninguna parte, a menos quelog_errors = On
(vea también laerror_log
configuración).Intente ejecutar sus scripts con un script de contenedor que use
php -d display_errors=on ...
fuente
-d display_errors=on
consejo: estaba tratando de depurar un script personalizado para la aplicación PHP de alguien que intenta manejar todo el registro de excepciones por sí mismo, pero a menudo come excepciones. ¡Usando esa bandera puedo obtener la excepción para imprimir en la CLI!Esto puede deberse a mensajes de error suprimidos de PHP (la línea comienza con @). Encontré la línea por
y luego comentó el @. Después de esto, obtuve el error real y pude solucionarlo fácilmente. También noté después que PHPStorm ya había descubierto el mismo error, pero no lo había solucionado / notado.
fuente
También podría significar que
/etc/php5/cli/php.ini (en Debian / Ubuntu)
/etc/php.ini (en RHEL / CentOS / etc.)
ha establecido
lo que significa que cualquier error o advertencia de los scripts de línea de comandos no irá a ninguna parte, a menos
Consulte también la configuración de error_log.
Intenta ejecutar tus scripts con un contenedor
fuente
En mi caso, esa fue la muerte de xDebug debido a su bajo
xdebug.max_nesting_level
valor.fuente