I recently compiled a PHP 5.2.9 binary, and I tried to execute some PHP scripts with it. I can execute some scripts without problems, but one of them halts its execution midway, exiting with no errors or warnings. The returned status code of the process is 255.
I’ve read in the manual that such status is ‘reserved’. The question is: for what?
I believe it’s got something to do with missing dependencies in the PHP executable, but I can’t be sure.
Anyone knows what does an exit code of 255 mean?
P.S. There are no errors in the PHP scripts, they run OK on other machines.
masegaloeh
18.2k10 gold badges57 silver badges105 bronze badges
asked Jun 22, 2010 at 15:17
255 is an error, I could reproduce that same exit code by having a fatal error.
This means that somehow your error reporting is hidden, there are some possible causes for this:
- error_reporting is not defined and php reports no error at all
- An
@
(error suppression operator) hides the output of the error - STDERR is redirected somewhere else (php -f somefile.php 2>/dev/null, remove the redirection)
- This could still be an internal error due to missing dependencies and that a fatal error has the same exit code as a program crash.
hakre
1561 silver badge13 bronze badges
answered Jun 22, 2010 at 16:05
WeboideWeboide
3,3351 gold badge24 silver badges33 bronze badges
1
It could also mean that /etc/php5/cli/php.ini
(on Debian/Ubuntu) or /etc/php.ini
(on RHEL/CentOS/etc.) has display_errors = Off
which means that any errors or warnings from command-line scripts will go nowhere, unless log_errors = On
(see also the error_log
setting).
Try running your scripts with a wrapper script that uses php -d display_errors=on ...
answered Mar 12, 2014 at 7:08
2
It could also mean that
-
/etc/php5/cli/php.ini (on Debian/Ubuntu)
-
/etc/php.ini (on RHEL/CentOS/etc.)
has set
display_errors = Off
which means that any errors or warnings from command-line scripts will go nowhere, unless
log_errors = On
See also the error_log setting.
Try running your scripts with a wrapper
masegaloeh
18.2k10 gold badges57 silver badges105 bronze badges
answered Mar 6, 2016 at 15:15
This might be caused by PHP suppressed error messages (the line starts with @). I found the line by
grep -r "@" src/
and then commented out the @. After this I got the actual error and was able to fix it easily. I also noticed afterwards that PHPStorm had found out the same error already, but I hadn’t fixed/noticed it.
answered Feb 11, 2016 at 17:03
In my case that was xDebug death because of low xdebug.max_nesting_level
value.
answered Jan 16, 2018 at 12:34
zoredzored
1211 bronze badge
Locate what php.ini your php-cli used.
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
Make sure display_errors parameters is active.
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
Make sure display_errors and log_errors are ON.
Define the error_log location to logging errors into file.
Error messages should shown now.
answered Mar 28, 2020 at 10:19
Brain90Brain90
1211 silver badge7 bronze badges
Перестали работать команды Cron:
1. тиггерные рассылки
2. Автом. обновление информации о доставке
3. Плагин Интеграция СДЭК для ежедневного обновления списка пунктов выдачи
Причем ранее работали без проблем.
И команда Cron плагина Брошенные корзины продолжает работать нормально.
В чем может быть причина, помогите пожалуйста
I’m trying to make unit tests in Symfony 3 framework. Here are my configurations;
and here is the error that I’m facing.
/Applications/MAMP/bin/php/php7.0.0/bin/php /private/var/folders/w9/cmwlplqx53x3slxkm4c1chx00000gn/T/ide-phpunit.php --bootstrap /Users/muhammetergenc/code/kampweb/phpunit.xml.dist --configuration /Users/muhammetergenc/code/kampweb/phpunit.xml.dist TestsAppBundleControllerPersonTest /Users/muhammetergenc/code/kampweb/tests/AppBundle/Controller/PersonTest.php
Testing started at 3:04 PM ...
<?xml version="1.0" encoding="UTF-8"?>
<!-- http://phpunit.de/manual/4.1/en/appendixes.configuration.html -->
<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="app/autoload.php">
<!-- <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.1/phpunit.xsd"
backupGlobals="false"
colors="true"
bootstrap="web/app_test.php">-->
<php>
<ini name="error_reporting" value="-1" />
<server name="KERNEL_DIR" value="app/" />
</php>
<testsuites>
<testsuite name="Project Test Suite">
<directory>tests</directory>
</testsuite>
</testsuites>
<filter>
<whitelist>
<directory>src</directory>
<exclude>
<directory>src/*Bundle/Resources</directory>
<directory>src/*/*Bundle/Resources</directory>
<directory>src/*/Bundle/*Bundle/Resources</directory>
</exclude>
</whitelist>
</filter>
</phpunit>
Process finished with exit code 255
I do have the same configuration on my other desktop and it works just fine.
asked Apr 4, 2016 at 20:11
3
Today I had the same error — 255.
in my case I hadn’t declared CONSTANTS in the setUp method.
I think that you have something similar.
Try to find it by using xdebug — it helped me out.
danronmoon
3,8145 gold badges34 silver badges56 bronze badges
answered Apr 20, 2017 at 13:28
JacekJacek
463 bronze badges
In my case, It was a php error setting issue.
I set display_startup_errors to «1». and phpunit reported error.
Specifically, in my bootstrap script, I wrote below.
ini_set('display_startup_errors', 1);
And phpunit report my require_once
runtime error.
answered Nov 21, 2022 at 15:14
In my case, it was a memory issue.
In the setUp()
method I initialize multiple class properties.
The fix for me was defining (override) the tearDown()
method to unset the properties after each test.
protected function tearDown(): void
{
// clean memory
unset($this->foo);
unset($this->bar);
parent::tearDown();
}
answered Oct 5, 2020 at 16:56
AbdrhmnAbdrhmn
5916 silver badges6 bronze badges
-
28.08.2009, 07:36
#1
Junior Member
Доброй ночи! ISPpro, cron вытворяет просто непонятные мне вещи.
команда:@hourly /usr/local/bin/php /home/p90006/data/www/website.com/acd/main.php >/dev/null 2>&1
сам скрипт отлично запускается, никаких проблем с путями нет.
ошибка в режиме ручного запуска:
Exited with return code = 255в лог падает:
Aug 28 02:35:00 cs2066 /usr/sbin/cron[83808]: (p90006) CMD (/usr/local/bin/php /home/p90006/data/www/website.com/acd/main.php >/dev/null 2>&1)
Но как-то эффекта нету…
в чем соль ошибки 255 ? Спасибо!
-
28.08.2009, 22:06
#2
ISPsystem team
Руками если запустить в ssh
/usr/local/bin/php /home/p90006/data/www/website.com/acd/main.phpошибок не выдает?
Похоже у вас php по другому пути находится
-
29.08.2009, 05:58
#3
Junior Member
Нет, путь абсолютно верный, ошибок нет
-
29.08.2009, 06:43
#4
ISPsystem team
Попробуйте через веб запускать, как
Код:
/usr/local/bin/wget -O /dev/null http://site.ru/path/to/file.php
-
17.09.2010, 02:02
#5
Senior Member
Сообщение от ls
Похоже у вас php по другому пути находится
Извините за глупый вопрос.
Как узнать где php находиться ?
А то делаю так и выходит ошибка
[root@amd ~]# /usr/local/ispmgr/addon/vmonit/rotate.sh
I/O warning : failed to load external entity «/etc/php-fpm.conf»
Sep 16 20:13:12.400029 [ERROR] fpm_conf_init_main(), line 522: failed to load configuration file: failed to parse conf fileПоследний раз редактировалось Help; 17.09.2010 в 02:04.
-
17.09.2010, 02:33
#6
мониторинг запускает php /usr/bin/php и у вас он работает. Что-то с конфигом, с fpm я не работал.
Стоит один раз попробовать что бы влюбиться… в ISP.
На все мои сообщения, действует конфигурация сервера: ISP Pro (всегда актуальная current версия), FreeBSD 8.0, php as fcgi, nginx+apache.
Бесплатные плагины для ISPmanager.
-
17.09.2010, 16:05
#7
Senior Member
На одном сервере, как раз где ставил стоит PHP 5.3.2
из-за этого может быть ?Ща попробую поставить на пхп 5.2
-
18.09.2010, 01:56
#8
ISPsystem team
У вас PHP собран с php-fpm (5.3.2 как раз с ним вроде из коробки начинает в линуксах работать), конфиг /etc/php-fpm.conf или отсутствует или сломан, надо создать/исправить его и все будет в порядке.
-
19.01.2011, 17:18
#9
Member
Сообщение от ls
Попробуйте через веб запускать, как
Код:
/usr/local/bin/wget -O /dev/null http://site.ru/path/to/file.php
Действительно, Exited with return code = 255 не выводится более,
если использовать в Cron выше предложенную команду ‘wget’
PHP=5.3.5Спасибо!
-
20.09.2011, 23:16
#10
Member
сейчас получаю такую же ошибку как и автор.
на wget не хочу переходить, т.к. мне надо получать на e-mail Отчет который выдает мой скрипт, а так приходит только отчет wgetа что он успешно скачал файл в /dev/null.Скрипт у меня 100% рабочий, т.к. при запуске по расписанию он срабатывает и отчет приходит и все гуд. но если я пытаюсь его запустить через ispmanager вручную получаю 255 ошибку. И так 5 скриптов.
Ошибка Cron Exited with return code = 255
22.12.2016
Для интеграции Битрикс со сторонним сервисом потребовалось сделать на надежном хостинге reg.ru cron. Применял два разных крона:
/opt/php/5.3/bin/php-cgi -f /var/www/u026…./data/www/сайт.ru/bitrix/modules/viteh.dealer/tools/cron.php
/opt/php/5.5/bin/php-cgi -c /var/www/u026…./data/php-bin/php.ini -f var/www/u026…./data/www/сайт.ru/bitrix/modules/viteh.dealer/tools/cron.php
В каждом случае при попытке выполнить крон вручную выдает ошибку «Exited with return code = 255»:
Что может быть не так?
Для запуска крона в панели управления без ошибок потребовалась корректировка заданий планировщика. Рабочие кроны выглядят следующим образом:
/opt/php/5.5/bin/php -c /var/www/u026…/data/php-bin/php.ini -f /var/www/u026…/data/www/сайт.ru/bitrix/modules/viteh.dealer/tools/cron.php
/opt/php/5.5/bin/php -f /var/www/u026…./data/www/сайт.ru/bitrix/modules/viteh.dealer/tools/cron.php
Ещё статьи:
18.01.2023
Нюансы перехода битрикс на РНР 8.0
С февраля битрикс прекращает поддерживать РНР 7.4 и в битрикс сегменте сайтов начался переход на РНР 8 для получения обновлений.
Но без нюансов и ошибок…
ID: 431
10.01.2023
БУС окончательно всё?
Появилась информация от битрикс, что грубо говоря поддержка по отраслевому медицинскому решению от битрикс будет до 1 февраля 2024 года, а что потом б…
ID: 426
30.08.2022
Типовые претензии к подрядчику и к битрикс
По свежим следам я собрал типовые претензии к подрядчику и к битрикс. Мной был проведён аудит и я увидел, что техническое состояние сайта хорошее, нареканий…
ID: 338
Новые статьи в блоге:
Возврат к списку
Модераторы: Art.i, garry
cron: Exited with return code = 255
- id
- Сообщений: 9
- Зарегистрирован: Чт июл 30, 2009 10:23 pm
ls » Ср дек 23, 2009 1:02 pm
- ls
- Support team
- Сообщений: 6352
- Зарегистрирован: Чт мар 01, 2007 10:36 am
- Откуда: FirstVDS
id » Ср дек 23, 2009 2:18 pm
- id
- Сообщений: 9
- Зарегистрирован: Чт июл 30, 2009 10:23 pm
nejlok » Вт апр 06, 2010 8:35 pm
столкнулся с подобным вопросом,
ошибки возникают 1,2, 127,126..
у кого нибудь получилось настроить планировщик?
- nejlok
- Сообщений: 10
- Зарегистрирован: Вт мар 23, 2010 11:16 pm
ls » Вт апр 06, 2010 8:42 pm
- ls
- Support team
- Сообщений: 6352
- Зарегистрирован: Чт мар 01, 2007 10:36 am
- Откуда: FirstVDS
nejlok » Вт апр 06, 2010 9:03 pm
- nejlok
- Сообщений: 10
- Зарегистрирован: Вт мар 23, 2010 11:16 pm
dmitrik » Вс апр 18, 2010 2:22 pm
подскажите как правильную команду прописать в крон?
wheris php показывает
/usr/bin/php /etc/php /etc/php.ini /etc/php.d /usr/share/php /usr/share/man/man1/php.1.gz
физически файл лежит тут
/var/www/USER/data/www/SITENAME/cron.php
- dmitrik
- Сообщений: 1
- Зарегистрирован: Вс апр 18, 2010 2:12 pm
-
- Сайт
- ICQ
tont » Вс апр 18, 2010 2:41 pm
- tont
- Сообщений: 325
- Зарегистрирован: Сб фев 24, 2007 8:07 pm
- Откуда: г. Хизаши Мухосранской области
-
- Сайт
- ICQ
ls » Вс апр 18, 2010 3:47 pm
- ls
- Support team
- Сообщений: 6352
- Зарегистрирован: Чт мар 01, 2007 10:36 am
- Откуда: FirstVDS
Вернуться в Любые вопросы
Кто сейчас на форуме
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Добрый день, уважаемые форумчане. Подскажите, пожалуйста, начинающему администратору.
Имеется хостинг на бэгете.
При запуске скрипта /admin/cli/cron.php выдается ошибка 255.
Версия moodle 3.11+(2021051700.09)
В чем может быть проблема?
В системе зависли файлы в процессе удаления и тд. HELP!!
Никогда не было проблем с cron на Бегете, поэтому опробовал воспроизвести. Ошибка 255 возникает когда версия php указана не верно. Версия для сайта и в команде должны совпадать.
Спасибо огромное, что откликнулись!
Проверила, версия php совпадает с той, что на сайте.
Прилагаю текст ошибки.
Подскажите, пожалуйста, что я могу делать неправильно?
Гм. У вас wget https:///admin/cron.php выполняется без ошибки.
Зачем пытаться выполнять wget https:///public_html/admin/cron.php ? Это же явная ошибка!
Вам нужно определиться как вы запускаете cron.php: либо в виде обращения к сайту через cron, либо запуск скрипта через cron.
Делать и то, и другое — бесмысленно.
У вас на картинке видна возможность выполнить php-скрипт. А где видны результаты выполнения скрипта ?
В приложенном файле ошибка — недостаточно памяти (Allowed memory size of 536870912 bytes exhausted). Нужно увеличить лимит… На хостинге через htaccess — php_value memory_limit
Иногда при пересоздании конфигурационных файлов при использовании FreePBX возможно появление ошибки с кодом 255. В статье рассмотрим, как исправить эту ошибку. Что это за ошибка? Текст ошибки начинается со следующей строки: Данная ошибка возникает при применении каких-либо изменений во FreePBX. В web-интерфейсе ошибка выглядит следующим образом: Также покажем ошибку при использовании fwconsole (подробнее о fwconsole можно прочитать в […]
Иногда при пересоздании конфигурационных файлов при использовании FreePBX возможно появление ошибки с кодом 255. В статье рассмотрим, как исправить эту ошибку.
Что это за ошибка?
Текст ошибки начинается со следующей строки:
Unable to continue. Cron line added didn’t remain in crontab on final check in /var/www/html/admin/libraries/BMO/Cron.class.php on line 114
Данная ошибка возникает при применении каких-либо изменений во FreePBX. В web-интерфейсе ошибка выглядит следующим образом:
Также покажем ошибку при использовании fwconsole (подробнее о fwconsole можно прочитать в статье):
Обратите внимание, что данная ошибка имеет отношение исключительно к web-интерфейсу. Вы можете внести изменения в конфигурационные файлы Asterisk и применить их, выполнив в Asterisk CLI команду core reload.
Эта ошибка связана с тем, что при пересоздании файлов конфигурации в crontab может попасть символ, который к нему не имеет никакого отношения. Соответственно работа crontab после этого останавливается, и применить последние правки с помощью FreePBX становится невозможным.
Подробнее рассмотрим взаимосвязь FreePBX и crontab при reload.
Reload во FreePBX – это часть web-интерфейса, которая происходит при нажатии кнопки Apply Config. При этом происходит перезапись тех конфигурационных файлов, которые относятся исключительно к модулям FreePBX. Однако некоторые модули имеют записи в crontab (dashboard, sysadmin, timeconditions, backups).
Например, если в crontab закомментировать строчку
* * * * * [ -x /var/www/html/admin/modules/dashboard/scheduler.php ] && /var/www/html/admin/modules/dashboard/scheduler.php > /dev/null 2>&1
то информация в dashboard перестанет обновляться.
Также записи в crontab имеет fwconsole. Так одна из записей отвечает за синхронизацию интеграций с внешними сервисами. Пример внешних сервисов можно посмотреть во FreePBX на вкладке Directory в модуле User Management.
Если подробно рассматривать, как работает reload во FreePBX, то: при нажатии на кнопку Apply Config в ajax.php передаются модуль ($module) и команда ($command).
После Apply Config $module = framework, а $command = reload.
Далее значения framework и reload транслируются в Ajax.class.php, откуда они будут переданы в Framework.class.php. В Framework.class.php вызывается функция do_reload — functions.inc.php. В свою очередь именно эта функция вызывает retrieve_conf.
Retrieve_conf занимается пересборкой всех конфигурационных файлов, а также контролирует crontab.
Касательно нашей ошибки: все задания, указанные в crontab, были отработаны, однако не смог перезаписаться именно crontab. Это связано с тем, что FreePBX перезаписывает crontab его же стандартными средствами. Наглядно это продемонстрировать можно, если открыть crontab командой
crontab -e
Далее впишем в первую строку, например, «@» и попытаемся сохранить изменения.
Соответственно так может продолжаться до бесконечности, пока не будет нажата N, или же пока не будут убраны из crontab нечитаемые символы. Именно с таким поведением и сталкивается FreePBX, и из-за этого и появляется ошибка 255 в retrieve_conf.
Решением данной ошибки, помимо удаления из него нечитаемых символов, может служить обнуление crontab с помощью команды:
echo > /var/spool/cron/asterisk
Обратите внимание, что при обнулении crontab задание на автоматическое бэкапирование системы не добавляется.
Для того чтобы автоматическое бэкапирование системы снова работало, нужно перейти во FreePBX в модуль Backup & Restore, выбрать любой бэкап и нажать кнопку Save.
На этом статья по исправлению ошибки 255 в retrieve_conf во FreePBX завершена.
Раздел CronTab (Задания по расписанию) служит для настройки выполнения команд по расписанию или в строго назначенное время, а также для немедленного запуска скриптов. Раздел содержит 3 вкладки: Мастер заданий, Составить задание вручную и Запустить скрипт.
Сконфигурировать CronTab можно таким образом, что задача будет выполняться раз в месяц, день, час и ежеминутно или, например, каждые 10 минут. Также можно комбинировать расписания, к примеру, вам необходимо первые 2 часа выполнять задание раз в час, затем следующие 2 часа не выполнять.
Обратите внимание!
Вы можете получать уведомления о выполненном задании на электронную почту. Настроить эту опцию можно во вкладке Мастер заданий.
Мастер заданий
С помощью мастера заданий вы легко сможете настроить время выполнения скриптов и произвольных команд.
Сначала выберите тип выполняемой операции:
- Произвольная команда;
- PHP-скрипт версий 5.2-7.4;
- Запрос по протоколу HTTP
- Запрос по протоколу HTTPS
- Perl-скрипт;
- Bash-скрипт.
После указания нужного типа операции нужно указать путь к исполняемому скрипту или вписать команду вручную. Для быстрого и удобного указания путей к PHP-, Perl- и Bash-скриптам вы можете воспользоваться проводником , расположенным рядом с кнопкой .
Когда нужный скрипт будет выбран вы можете нажать на кнопку и проверить работоспособность скрипта. Вам будет выведено окно с логом работы скрипта следующего вида:
В верхней части модального окна расположен статус выполнения скрипта. Если скрипт выполняется исправно, вы увидите надпись Выполнено , а если скрипт завершается с ошибкой, вы увидите цифровой код ошибки.
После проверки кода на работоспособность можно приступать к настройке временных опций исполнения скрипта. Crontab предлагает настройки для 4 временных групп: минут, часов, дней, месяцев. При нажатии на каждую группу раскрываются опции настройки, как это показано на скриншоте:
После настройки временных опций и нажатия на кнопку Добавить задание, под основным окном Cron появится запись с вашей конфигурацией. Количество таких записей не ограничено.
Задание можно включить/выключить, изменить или удалить с помощью кнопок, расположенных справа, напротив каждого из заданий:
— включить/выключить задание;
— изменить задание;
— удалить задание.
Ручная настройка CronTab
Ручная настройка CronTab позволяет настраивать время запуска скрипта в привычном виде, для тех, кто знаком с Cron.
Время, интервал
Минуты могут быть от 0 до 59
Часы могут быть от 0 до 23
День месяца может быть от 1 до 31
Месяц может быть 1 до 12
День недели может быть от 0 до 7, где 0 и 7 — воскресенье
Можно конфигурировать CronTab для выполнения задач не только в определенное время, но и ежеминутно, ежечасно, ежедневно, еженедельно или ежемесячно, используя комбинацию */x.
Примеры настройки временных интервалов
*/5 * * * * — запускать команду каждые пять минут
0 */3 * * * — запускать каждые три часа
0 12-16 * * * — запускать команду каждый час с 12 до 16 (в 12, 13, 14, 15 и 16)
0 12,16,18 * * * — запускать команду каждый час в 12, 16 и 18 часов
*/1 * * * * /usr/bin/php ~/site.ru/public_html/test.php — запуск каждую минуту php-скрипта test.php
0 */1 * * * /usr/bin/perl ~/site.ru/public_html/test.pl — запуск каждый час perl-скрипта test.pl
Команда
Необходимо задать путь до скрипта от домашнего каталога. Например: public_html/cgi-bin/script.pl
Система сама подставит символ ~/ (эта комбинация заменяет полный путь). Получится: ~/public_html/cgi-bin/script.pl
Если в конце пути поставить символ & (амперсанд), то скрипт будет работать в фоновом режиме. Установка этого символа необязательна.
Обратите внимание!
В ряде случаев требуется выбрать версию PHP отдельно: /usr/local/bin/phpX.X или /usr/local/php-cgi/X.X/bin/php-script. Если для сайта установлена иная версия PHP, следует указать вместо X.X требуемую версию, например, 5.6, или актуальную для решения текущей задачи. Версия PHP, установленная для сайта (через раздел Сайты в панели управления), не учитывается при запуске РНР скриптов через Crontab или терминал.
Директивы PHP следует указывать отдельно, после флага -d. Например: /usr/local/bin/php5.6 -d display_errors=1 script.php
Запустить скрипт
В случаях когда необходимо запустить скрипт немедленно или проверить правильность его исполнения вы можете воспользоваться формой запуска скриптов и команд, расположенной в разделе Запустить скрипт.
Работает форма аналогично строке проверки скриптов, расположенной во вкладке Мастер заданий. Под формой запуска скриптов расположена таблица со списком выполненных команд, датой и временем исполнения задания и статусами.
Напротив каждой команды в таблице есть кнопка запуска команды повторно . Это удобно, когда вам нужно повторно выполнить какую-нибудь команду введенную ранее.
Недавно я скомпилировал бинарный файл PHP 5.2.9 и попытался выполнить с ним несколько скриптов PHP. Я могу выполнить некоторые сценарии без проблем, но один из них останавливает их выполнение на полпути, выходя без ошибок или предупреждений. Возвращенный код состояния процесса — 255.
Я прочитал в руководстве, что такой статус «зарезервирован». Вопрос: для чего?
Я полагаю, что это как-то связано с отсутствующими зависимостями в исполняемом файле PHP, но я не уверен.
Кто-нибудь знает, что означает код выхода 255?
PS В скриптах PHP ошибок нет, они нормально работают на других машинах.
Ответы:
255 — ошибка, я мог воспроизвести тот же код завершения, имея фатальную ошибку.
Это означает, что ваши отчеты об ошибках скрыты, для этого есть несколько возможных причин:
- error_reporting не определен и php не сообщает об ошибке вообще
@
(Ошибка подавления оператора) скрывает выход ошибки- STDERR перенаправляется куда-то еще (php -f somefile.php 2> / dev / null, удалить перенаправление)
- Это может быть внутренней ошибкой из-за отсутствия зависимостей и того, что фатальная ошибка имеет тот же код завершения, что и сбой программы.
Это может также означать , что /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
стоимости.