У меня скрипт, который периодически в разные моменты своего исполнения умирает, но не выводит на экран никаких ошибок при этом, то есть это не ошибка в коде (если произошла ошибка PHP, то сообщение об этом появляется на экране). Умирает - это значит страница перестает дальше выводить что-то, просто обрубает и всё. На сервере в папке /logs/ в файле "errors" в моменты таких прерываний ничего не записвается. Основные ошибки там это про типа "File does not exist: " или "user admin: authentication failure for ..", причем в другие моменты времени, не в те, когда я запускаю скрипт. В настройках PHP задано довольно большое время выполнение скрипта, то есть не из-за этого. Вопрос: что это может быть и как это отловить? Накидайте идей, пожалуйста, а то без понятия куда искать.
Лучше через cli например cron'ом запускать скрипты которые долго выполняются. Ошибка видимо плавающая, нужно логировать почти все действия скрипта, можно с помощью xdebug попробовать, он должен писать логи без отладки, ещё надо смотреть если ты через веб-сервер запускал, может у него ограничения, протестируй на cli.
Через cli я не умею. Как это? У меня скрипт выполняется на хостинге, нет локального сервера. Я так понимаю, что xdebug там не установлен и я сам его со своим уровнем знаний не установлю. Можно ли как-то попредполагать из-за чего вообще вылетать без оповещений может скрипт? В теории, например: - нехватка оперативной памяти - процесс длится слишком долго - где-то стоит @, которая не даёт ошибке вывестись на экран еще что?
Еще могут быть такие ошибки, которые вообще по непонятным причинам уловить нельзя. В логах тишина, на экран ничего не выводиться. Просто пхп-машина не запускается или молча падает при выполнении. Словил такую пару недель назад. Всё работало, но после рестарта пхп-машины - перестало. Никаких настроек не менялось. Включаю отладку - тишина. Расставляю поинты - тишина. Выключаю по очереди расширения. Нашел. GeoIP. Пытаюсь понять суть проблемы. Оказалось maxmind выпустили базу в новом формате, и их же родной автоапдейтер эту базу успешно обновил. Но пхп-машина работала со старой базой, закэшированной в ОЗУ. После рестарта - не смогла обработать базу в новом формате. Расширение просто отваливалось при попытке выполнения GeoIP-функций. Молча. Скачал базы в легаси-формате и ОК. Но несколько часов на поиск причин белого экрана - ушло.
Я погуглил за тебя: https://ru.wikipedia.org/wiki/Интерфейс_командной_строки https://php.ru/manual/features.commandline.usage.html
Вот есть у меня компьютер, есть браузер. Чтобы запустить скрипт на сервере через барузер, я закачиваю его туда по FTP, потом открываю в браузере и он запускается. А чтобы зайти с командной строки и запустить, мне что делать? --- Добавлено --- Блин, мне кажется проще нанять кого-то, чем самому разобраться ))
В данном случае скорее всего да. Обычно у людей есть локальный сервер, и есть внешний сервер. Внешний - копия локального в плане настроек, окружения и ОСи. Все проблемы фиксятся на локальном сервере, а на внешний выкатываются патчи. Тогда нет вообще никаких проблем. Локальный сервер делается просто - виртуалочка+дистриб нужной операционки.
Если это хостинг или VDS/Server, то там обычно дают SSH, так ты сможешь подключиться к терминалу по SSH. Начни читать книгу для начинающих по администрированию linux, там всё должно быть.