Мне нужно сделать выполнение PHP более длительным, и все остальное может быть проблемой. Я думал, что уже сделал это, но я все еще получаю тайм-ауты шлюза из моей недавней установки WordPress. Пул php-fpm имеет следующую конфигурацию
[john]
user = john
group = john
listen = 127.0.0.1:9002
listen.owner = www
listen.group = www
pm = dynamic
pm.max_children = 5
pm.start_servers = 2
pm.min_spare_servers = 1
pm.max_spare_servers = 3
php_admin_value[max_execution_time] = 300
php_admin_value[max_input_time] = 120
Синтаксис в порядке, но с учетом того, что скрипты отсчитывают время около 30 секунд, интересно, что еще я упустил. Это может быть излишним, но я спешу и научусь позже, не стесняйтесь объяснять, но если кто-то может сказать мне все значения, которые я могу увеличить, чтобы решить эту проблему методом перебора, это было бы здорово.
решение1
В /etc/php5/fpm/pool.d/www.conf добавьте следующую строку:
request_terminate_timeout = 180
Также в /etc/nginx/sites-available/default добавьте следующую строку в блок расположения соответствующего сервера:
fastcgi_read_timeout 180;
Весь блок локаций выглядит так:
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_read_timeout 180;
include fastcgi_params;
}
Теперь просто перезапустите php-fpm и nginx, и больше не должно быть тайм-аутов для запросов, которые занимают менее 180 секунд.
решение2
Я бы начал с установки максимального ввода и времени выполнения вручную в вашем php.ini вместо того, чтобы пытаться переопределить какие-либо настройки в php-fpm или nginx.