Есть несколько способов установить тайм-аут для php-fpm. В /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 секунд.
fastcgi_read_timeout
в этомlocation
блоке, он все равно отключается через 60 секунд.location
блоке, который обрабатывает скрипты php, а не в docroot.Попробуйте эту ссылку , у нее есть лучшее решение, как это исправить. Итак, шаги следующие:
nginx.conf
файл, расположенный в/etc/nginx
каталоге.Добавьте этот фрагмент кода ниже в
http {
раздел:Примечание. Если он уже присутствует, измените значения соответственно.
Перезагрузите Nginx и php5-fpm.
Если ошибка повторяется, подумайте об увеличении значений.
источник
/etc/nginx/sites-available/mysite.com
.Вы не можете использовать PHP для предотвращения тайм-аута, выдаваемого nginx.
Чтобы настроить nginx на дополнительное время, см.
proxy_read_timeout
Директиву .источник
Правильный ответ - увеличить fastcgi_read_timeout в вашей конфигурации Nginx.
Просто как тот!
источник
Добавьте эти переменные в файл nginx.conf:
А затем перезапустите:
источник
В этом случае могут возникнуть три типа тайм-аутов. Видно, что каждый ответ сосредоточен только на одном аспекте этих возможностей. Итак, я решил записать это, чтобы кому-то, кто посетит здесь в будущем, не нужно было случайным образом проверять каждый ответ и получать успех, не зная, какой из них сработал.
Итак, исправления для каждой проблемы следующие.
Тайм-аут клиента nginx
Тайм-аут прокси-сервера nginx
Так что используйте тот, который вам нужен. Может быть, в некоторых случаях вам понадобятся все эти конфигурации. Мне было нужно.
источник
Вам нужно добавить дополнительную директиву nginx (для
ngx_http_proxy_module
)nginx.conf
, например:В основном
proxy_read_timeout
директива nginx изменяет тайм-аут прокси,FcgidIOTimeout
это для скриптов, которые слишком долго тихие, иFcgidBusyTimeout
для сценариев, выполнение которых занимает слишком много времени.Также, если вы используете приложение FastCGI, также увеличьте эти параметры:
Затем перезагрузите nginx и PHP5-FPM.
Plesk
В панели управления Plesk, вы можете добавить его в настройках веб - сервера под дополнительные директивы Nginx .
Для проверки FastCGI в настройках веб - сервера под дополнительные директивы для HTTP .
См .: Как исправить проблемы с тайм-аутом FastCGI в Plesk?
источник
FcgidBusyTimeout
переменная не существует только для Apache?Поскольку вы используете php-fpm, вам следует воспользоваться функцией fastcgi_finish_request () для обработки запросов, которые, как вы знаете, могут занять больше времени.
источник
С помощью
set_time_limit(0)
бесполезно при использовании php-fpm или подобного диспетчера процессов.Нижняя строка не используется
set_time_limit
при использованииphp-fpm
, чтобы увеличить время ожидания выполнения, проверьте это руководство .источник
Решаю эту проблему конфигом APACHE! Все методы (в этой теме) мне некорректны ... Потом пробую chanche apache config:
Timeout 3600
Тогда мой сценарий заработал!
источник