Как увеличить время исполнения скрипта

Обсуждение установки и настройки поддерживаемых вебсерверов, а также работы с ними.
Ответить
ivasha
Сообщения: 3
Зарегистрирован: Чт янв 23, 2025 3:06 pm

Как увеличить время исполнения скрипта

Сообщение ivasha » Пт янв 24, 2025 11:20 am

Добрый день!
Столкнулись с следующей проблемой — где-то установлено ограничение выполнения скрипта 900сек.
Все облазил, но найти причину не могу.
Сайт работает на HOSTCMS. Есть штатный функционал экспорта списка клиентов в csv-файл. При запуске в браузере открывается дополнительное окно где, после исполнения скрипта, должно появиться предложение о сохранении csv-файла. Этот экспорт всегда работал долго. Сейчас, через 15 минут работа скрипта прекращается (колесо в браузере крутиться прекращает, в процессах на сервере видно, как процесс php-fpm завершился). В консоли браузера сообщения о закрытии соединения от веб-сервера отсутствует.
Подскажите, где можно увеличить время работы скрипта?

Brainy 1.0970.20241120

Код: Выделить всё

Текущая комплектация: apache2.4, php7.1
MPM модуль Apache — Worker
Мост по умолчанию — fastcgi
/etc/php71w/php.ini

Код: Выделить всё

max_execution_time = 10000
max_input_time = -1
/etc/php71w/php.ini

Код: Выделить всё

opcache.enable=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=16
opcache.max_accelerated_files=100000
opcache.revalidate_freq=2
/etc/php71w/php-fpm.d (рассчитал по статье на хабре)

Код: Выделить всё

pm = dynamic
pm.max_children = 175
pm.start_servers = 64
pm.min_spare_servers = 32
pm.max_spare_servers = 64
pm.max_requests = 300
pm.process_idle_timeout = 300s;
rlimit_files = 50000
rlimit_core = 'unlimited'
request_terminate_timeout = 9000s;

Аватара пользователя
alenka
Сообщения: 2410
Зарегистрирован: Ср сен 27, 2017 11:10 am

Re: Как увеличить время исполнения скрипта

Сообщение alenka » Пт янв 24, 2025 12:27 pm

Еще есть таймаут в конфиге apache.
По умолчанию, Timeout 120

ivasha
Сообщения: 3
Зарегистрирован: Чт янв 23, 2025 3:06 pm

Re: Как увеличить время исполнения скрипта

Сообщение ivasha » Пт янв 24, 2025 1:44 pm

alenka писал(а):
Пт янв 24, 2025 12:27 pm
Еще есть таймаут в конфиге apache.
По умолчанию, Timeout 120
Пробовал. Сейчас стоит 6000.

Аватара пользователя
sbury
Сообщения: 1614
Зарегистрирован: Вт фев 06, 2018 7:51 am

Re: Как увеличить время исполнения скрипта

Сообщение sbury » Пт янв 24, 2025 2:59 pm

конфигурация для PHP FPM задается для пользователя для которого настроен сайт.
ищите тут конфиг вашего пользователя

Код: Выделить всё

/etc/php71w/php-fpm.d/<YOUR_USER>.conf
в нем и проводите изменения временных интервалов. После чего перезапустите пхп сессию для этого пользователя, через панель или с командной строки

Код: Выделить всё

systemctl restart php71w-fpm@<YOUR_USER>
php.ini используется из домашнего каталога пользователя, например /home/YOUR_USER/etc/php71w

ivasha
Сообщения: 3
Зарегистрирован: Чт янв 23, 2025 3:06 pm

Re: Как увеличить время исполнения скрипта

Сообщение ivasha » Чт янв 30, 2025 1:34 pm

Сделал. Результата нет.
Скажите, этот конфиг применяется, даже если у пользователя отключен Jail PHP?
Конфиг:

Код: Выделить всё

listen = /var/run/php-fpm/php71w-***.sock

chroot = 
chdir = /

listen.allowed_clients = 127.0.0.1
 
user = ***
group = ***

listen.backlog = 4096
listen.owner = apache
listen.group = apache
listen.mode = 0666

pm = dynamic
pm.max_children = 175
pm.start_servers = 64
pm.min_spare_servers = 32
pm.max_spare_servers = 64
pm.max_requests = 300
pm.process_idle_timeout = 300s;

rlimit_files = 50000
rlimit_core = 'unlimited'
request_terminate_timeout = 9000s;

security.limit_extensions = .php .css .html .htm

php_admin_value[error_log] = /log/php-fpm/www-error.log
php_admin_flag[log_errors] = on
;php_admin_value[memory_limit] = 128M

; Set data paths to directories owned by process user
php_value[session.save_handler] = files
php_value[session.save_path]    = /tmp

Аватара пользователя
sbury
Сообщения: 1614
Зарегистрирован: Вт фев 06, 2018 7:51 am

Re: Как увеличить время исполнения скрипта

Сообщение sbury » Чт янв 30, 2025 8:00 pm

Посмотрите сервисный файл для вашего пользователя который запускает демон PHP FPM, Для пользователей PHP 7.1 полный список можно получить командой.

Код: Выделить всё

ls -1 /lib/systemd/system | grep php71w
Смотрите файл с именем вашего пользователя. В нем вы найдете информацию какие конфиги в текущий момент запущены
или в браузере создав скрипт php

Код: Выделить всё

<?php phpinfo(); ?>
Посмотрите файл /etc/sysctl. Нет ли в нем директив ограничивающих время жизни сетевого сокета

Ответить