LINUX.ORG.RU
ФорумAdmin

Apache+PHP+MySQL и невидимые 500 ошибки

 , ,


0

1

Имеется выделенный сервер на CentOS 7. Через обычные пакеты установлена связка Apache+PHP+MySQL(mariaDB).

В логах начал замечать постоянные 500 ошибки, относительно много. Часть из них попадает в error_log и описывается как превышение времени работы скрипта - ок. Но вот большая часть других ошибок не отображается. То-есть в access_log они показываются как 500, но в логах ошибок их нет.

Скрипты, к которым идет обращение, не выдают этих ошибок, жалоб от пользователей на Internal server error - нет. При попытке продублировать запросы с этой ошибкой ничего не дали, всегда «200 ОК».

Заметил лишь, что эти ошибки часто появляются в момент ротации логов и перезапуска потоков Apache. Но что-то мне это не нравится.

Попытка найти схожую проблему не увенчалась успехом.

Куда копать, с чего начать, подскажите.

П.С. Сервер обрабатывает примерно 25-50 подключений в секунду.



Последнее исправление: DTiros (всего исправлений: 1)

Ну если во время ротации процессы, выполняющие твой PHP код, будут убиты, то ты вполне можешь получить 500. В какое-либо другое время эти ошибки есть?

Deleted
()
Ответ на: комментарий от Deleted

При «service httpd reload» таких ошибок нет, хотя и логично, в это время идет ожидание закрытия потоков.

Заметил что ошибки также бывают не во время ротации логов, но какими-то промежутками. То-есть непостоянные.

Где-то читал про нехватку дескрипторов файлов, но вроде всего хватает и даже больше чем надо.

$cat /proc/sys/fs/file-max
26224513
$cat /proc/sys/fs/file-nr 
3264      0       26224513

Что еще может вызывать 500 ошибку, при рабочих скриптах и настройках самого apache и php?

DTiros
() автор топика
Ответ на: комментарий от DTiros

Если ошибки нет в логах апача, то это ошибка при выполнении скриптов. Многие CMS позволяют логировать такие ошибки, вот пример для вордпресса. Если CMS не позволяет, то можно вручную поставить нужные значения параметрам error_reporting, display_errors, log_errors и error_log в php.ini

Deleted
()
Ответ на: комментарий от Deleted

Спасибо за наводку, но в настройках стоит логирование подобных ошибок, а вот их самих нет. К тому же, ник-то не обращался с проблемами.

Заметил еще одну странную вещь. Порой скрипты удачно генерируют ответ, отдают его клиенту, но вот в логах веб сервера (access_log) напротив этого запроса стоит 500 ошибка и размер "-". Весьма странно, я впервые с таким сталкиваюсь и не могу объяснить.

DTiros
() автор топика
Ответ на: комментарий от DTiros

В каких настройках, php.ini? Если да, но логов все равно нет, то стоит погрепать скрипты на наличие этих директив, вдруг кто-то их переопределяет.

Также советую проверить заданный в апаче и нгинксе (если он есть) loglevel. Поставить warn как минимум, также можно info или debug

Deleted
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.