Niedawno skompilowałem plik binarny PHP 5.2.9 i próbowałem z nim wykonać kilka skryptów PHP. Mogę wykonywać niektóre skrypty bez problemów, ale jeden z nich przerywa wykonywanie w połowie, kończąc bez błędów i ostrzeżeń. Zwrócony kod statusu procesu to 255.
Przeczytałem w instrukcji, że taki status jest „zastrzeżony”. Pytanie brzmi: po co?
Myślę, że ma to coś wspólnego z brakującymi zależnościami w pliku wykonywalnym PHP, ale nie jestem pewien.
Czy ktoś wie, co oznacza kod wyjścia 255?
PS Skrypty PHP nie zawierają błędów, działają poprawnie na innych komputerach.
php.ini
plikiem (tzn. Plik zawiera uszkodzone znaki). Zajęło mi to 2 godziny, żeby to rozgryźć. Wskazówka: Jeśli Twój skrypt (tj.composer.phar
) Działaphp -n composer.phar
,php.ini
prawdopodobnie plik jest uszkodzony.Może to również oznaczać, że
/etc/php5/cli/php.ini
(w Debianie / Ubuntu) lub/etc/php.ini
(w RHEL / CentOS / itp.) Madisplay_errors = Off
to, co oznacza, że wszelkie błędy lub ostrzeżenia ze skryptów wiersza poleceń nigdzie nie pójdą, chyba żelog_errors = On
(patrz takżeerror_log
ustawienie).Spróbuj uruchomić swoje skrypty za pomocą skryptu opakowującego, który używa
php -d display_errors=on ...
źródło
-d display_errors=on
wskazówkę - próbowałem debugować niestandardowy skrypt dla czyjejś aplikacji PHP, która próbuje samodzielnie obsługiwać wszystkie wyjątki, ale często je wyjątki. Za pomocą tej flagi mogę uzyskać wyjątek, aby wydrukować do CLI!Przyczyną mogą być ukryte komunikaty o błędach PHP (linia zaczyna się od @). Znalazłem linię przez
a następnie skomentował @. Po tym otrzymałem rzeczywisty błąd i mogłem go łatwo naprawić. Zauważyłem też później, że PHPStorm już odkrył ten sam błąd, ale go nie naprawiłem / nie zauważyłem.
źródło
Może to także znaczyć
/etc/php5/cli/php.ini (w Debianie / Ubuntu)
/etc/php.ini (na RHEL / CentOS / etc.)
ustawił
co oznacza, że wszelkie błędy lub ostrzeżenia ze skryptów wiersza poleceń nigdzie nie pójdą, chyba że
Zobacz także ustawienie dziennika błędów.
Spróbuj uruchomić skrypty za pomocą opakowania
źródło
W moim przypadku była to śmierć xDebug z powodu niskiej
xdebug.max_nesting_level
wartości.źródło