У меня возникает следующая нерешенная проблема, касающаяся 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
Ребята, у вас есть идеи, что происходит с моим сервером?
edit
mod_proxy
После нескольких часов настройки параметров Тайм-аут
, max_execution_time
и max_input_time
и нескольких перезапуска службы apache2
без В результате я возвращаю исходные параметры (600, 300, 300) и перезапускаю весь сервер с помощью shutdown -r now
. Когда сервер снова подключился к сети, все проблемы внезапно исчезли.
У меня есть запрос Mysql, выполняемый в PHP-скрипте, который сканирует много данных и отвечает за 2 минуты. Я всегда получал тайм-аут шлюза 504 через 30 секунд. Попробовав все обычные советы, я в конечном итоге понял, что проблема лежит на маршруте Open Shift, который я использую для доступа к скрипту PHP. Время ожидания маршрута Open Shift по умолчанию составляет 30 секунд. Я изменил аннотацию маршрута на 5 минут, и он сделал свое дело! Подробности см. здесь: https://stackoverflow.com/questions/47812807/openshift-service-proxy-timeout