Назад | Перейти на главную страницу

Ошибка с apache 2.4 и PHP 5.6.14-0 + deb8u1 с fpm

У меня есть машина Vagrant с:

В некоторых случаях я получаю такую ​​ошибку: 500 Internal Server Error.

И это есть в сообщении в php5-fpm.log

[09-Dec-2015 20:01:24] WARNING: [pool www] child 608 exited on signal 11 (SIGSEGV) after 368.307577 seconds from start

А в файле error.log у меня такое сообщение:

[Wed Dec 09 20:01:24.944748 2015] [fastcgi:error] [pid 535:tid 140236008924928] (104)Connection reset by peer: [client 192.168.33.1:57201] FastCGI: comm with server "/usr/lib/cgi-bin/php5-fcgi" aborted: read failed
[Wed Dec 09 20:01:24.945014 2015] [fastcgi:error] [pid 535:tid 140236008924928] [client 192.168.33.1:57201] FastCGI: incomplete headers (0 bytes) received from server "/usr/lib/cgi-bin/php5-fcgi"

Я проверил свой php.ini, чтобы обновить следующие параметры:

max_execution_time = 360
max_input_time = 180
memory_limit = 512M

Это моя конфигурация файла opcache:

zend_extension=opcache.so
opcache.enable=0 ; for now disabled
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=2000  ; Using "find /home -type f -print | grep php | wc -l" produced 226540 php files.
opcache.max_wasted_percentage=5
opcache.use_cwd=1
opcache.validate_timestamps=0
opcache.revalidate_freq=60
opcache.fast_shutdown=1

а это мой php5-fpm.conf

<IfModule mod_fastcgi.c>
    AddHandler php5-fcgi .php
    Action php5-fcgi /php5-fcgi
    Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
    FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization -idle-timeout 3600
    <Directory /usr/lib/cgi-bin>
        Require all granted
    </Directory>
</IfModule>

Я читал об ошибке, но не могу найти четкого способа ее решения или узнать, что случилось с приложением, чтобы вернуть эту ошибку.

Спасибо.

Оскар

Кажется, ваш скрипт закончился max_execution_time. Может быть, 360

Было бы очень полезно узнать, какая функция занимает большую часть времени выполнения. Вы можете использовать медленный журнал php-fpm.

В файле пула (/etc/php5/fpm/pool.d/www.conf) найдите:

  • 'slowlog' и добавьте файл журнала, например: '/var/log/php-fpm/www.log.slow'
  • 'request_slowlog_timeout' и добавьте время, например: '10s'

Перезапустите php-fpm, закройте этот файл, и, возможно, вы сможете отследить свою огромную функцию.

Из записи журнала мне кажется, что это проблема с тайм-аутом.

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