#php #apache #execution-time
#php #apache #время выполнения
Вопрос:
Я хотел бы изменить максимальное время выполнения для PHP-скрипта. В скрипте, который я пробовал
ini_set("max_execution_time", "1000");
и
set_time_limit(1000);
вместе и по отдельности.
Я также добавил эту строку в .htaccess:
php_value max_execution_time 1000
в php.ini отключен безопасный режим, а на сервере Apache установлен флаг AllowOverride All
. Что я должен сделать, чтобы сервер разрешил более длительное время выполнения?
Комментарии:
1. вы пробовали установить это прямо в файле php.ini?
2. AllowOverride в Apache не имеет ничего общего с настройками PHP.
3. br.php.net/manual/en/configuration.changes.php попробуйте установить и после получения значения проверить его…
4. Я забыл упомянуть, что я вставил
php_value max_execution_time 1000
в.htaccess
, поэтому я упомянул AllowOverride.5. Вы отправляете запросы непосредственно в apache? У прокси может истечь время ожидания, даже если apache этого не делает. Что вы получите, если запустите
var_dump(ini_get('max_execution_time'), ini_get('safe_mode'));
после вашего вызоваset_time_limit(1000);
?
Ответ №1:
Установка переменной в ini-файле работает для меня:
max_execution_time = 1000;
set_time_limit () также должен работать, пока он не находится в безопасном режиме.
Ответ №2:
Если вы ищете директиву Apache2 для использования в .htaccess или конфигурации одного виртуального хостинга, вам, вероятно, понадобится php_admin_value:
php_admin_value max_execution_time 1000
AFAIK это работает только с mod_php
Комментарии:
1. существует ли проблема безопасности, изменяющая эту директиву на виртуальном хосте?
2. Я бы так не думал. В принципе, есть разница между php_admin_value и php_value, последнее позволяет ini_set() изменять значение, первое — нет. смотрите ma.ttias.be /… . Возможно, вам стоит быть осторожным и не допускать длительного времени выполнения во всем виртуальном хостинге. Возможно, используйте его внутри тега <Location> для большей детализации.
3. Можете ли вы сказать мне, что написать, используя тег location?
4. Взгляните на httpd.apache.org/docs/current/mod/core.html#location
Ответ №3:
Примечание: Этот взлом предназначен только для запуска определенного скрипта в течение определенного времени.
Как правило, вам следует изменить настройки php.
Итак, во время выполнения вы можете установить
set_time_limit($seconds); // 0 for unlimited
в начале скрипта.