Yandex Metrika
sanches.free

Долгие PHP-скрипты: лимиты PHP, Nginx и браузера

Когда увеличивают лимиты

Длительные импорты инфоблоков, пересчёт индексов и пакетные CLI-задачи иногда упираются в лимит исполнения PHP или таймаут прокси. Это не повод держать бизнес-логику часами в веб-запросе, но для отладки и разовых операций полезно понимать цепочку ограничений.

PHP и сессия

Проверьте max_execution_time и session.gc_maxlifetime: их можно задать в .htaccess, через ini_set/set_time_limit или в основном php.ini пула FPM.

Nginx и 504

Даже при большом лимите PHP фронт Nginx оборвёт запрос. Поднимите proxy_read_timeout, proxy_send_timeout и proxy_connect_timeout в месте, где HTTP проксируется к PHP (часто /etc/nginx/nginx.conf или include сайта).

Браузер

Клиент тоже имеет таймауты; для длинных операций лучше фоновые агенты, очереди или вывод прогресса порциями. Для локальной проверки иногда помогает увеличение сетевого таймаута в браузере (например, в Firefox через about:config).

php_value max_execution_time 2400
php_value session.gc_maxlifetime 2400
proxy_connect_timeout 2400s;
proxy_send_timeout 2400s;
proxy_read_timeout 2400s;
set_time_limit(2400);
ini_set('session.gc_maxlifetime', '2400');

Не хотите копаться сами?

Починю за 1-3 дня. Без предоплаты — оплата по результату.

15+ лет опыта с 1С-Битрикс · Без предоплаты · 7 дней гарантии