У меня есть следующая нерешенная проблема, касающаяся PHP и Apache. У меня есть долго работающий скрипт, который ВСЕГДА возвращает 504 Gateway Timeout после 30 секунд работы. Однако, если я зарегистрируюсь /server-process
, Я вижу, что запрос все еще продолжается. Прежде чем мне предложат, я не ожидал, что это будет работа cron, так как этот длинный процесс должен завершиться менее чем за минуту, а в текущей ситуации мне нужно, чтобы он запускался внутри браузера. Вот что я установил на сервере:
/etc/apache2/apache2.conf
- Timeout 600
/etc/php/7.0/apache2/php.ini
- max_execution_time = 300
- max_input_time = 300
Вот информация о моем сервере:
root@izzystorage-core:~# lsb_release -r
Release: 16.04
root@izzystorage-core:~# apache2 -v
Server version: Apache/2.4.18 (Ubuntu)
Server built: 2017-09-18T15:09:02
root@izzystorage-core:~# php -v
PHP 7.0.22-0ubuntu0.16.04.1 (cli) ( NTS )
Copyright (c) 1997-2017 The PHP Group
Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies
with Zend OPcache v7.0.22-0ubuntu0.16.04.1, Copyright (c) 1999-2017, by Zend Technologies
У вас есть идеи, что происходит с моим сервером?
редактировать
mod_proxy
После нескольких часов настройки Timeout
, max_execution_time
и max_input_time
параметры и несколько service apache2 restart
без результата, я возвращаю исходные параметры (600, 300, 300) и перезапускаю весь сервер с shutdown -r now
. После того, как сервер вернулся в сеть, все проблемы внезапно разрешились.