ini_set, set_time_limit, (max_execution_time) - не работает

Если я делаю set_time_limit(50) или ini_set('max_execution_time',50), то когда я повторяю ini_get('max_execution_time') на своем локальном хосте, я получаю 50, но когда я делаю это на другом сервере, он повторяет значение по умолчанию 30 и полностью игнорирует мой запрос. Почему это?


person Mickey    schedule 19.10.2009    source источник


Ответы (3)


Вы не можете изменить этот параметр с помощью ini_set() при работе в безопасном режиме. Единственный обходной путь — отключить безопасный режим или изменить ограничение по времени в php.ini.

-- Руководство по PHP, конфигурация времени выполнения, описание max_execution_time

Многие хосты работают в безопасном режиме. Другой сервер, скорее всего, один из них.

Изменить: такое же ограничение действует на set_time_limit:

Эта функция не работает, когда PHP работает в безопасном режиме. Нет обходного пути, кроме отключения безопасного режима или изменения ограничения времени в php.ini.

-- Руководство по PHP, страница set_time_limit

person Powerlord    schedule 19.10.2009
comment
Я дам вам проверку ответа, но я понял это только до того, как обновил страницу! ааа! Но тогда разве скрипт не выдаст ошибку через 30 секунд? Почему он говорит мне, что соединение с сервером было сброшено, есть идеи? - person Mickey; 19.10.2009
comment
Предположительно, PHP просто закрывает соединение, не завершив его, поэтому сообщение о соединении с сервером было сброшено. Из любопытства, какие операции вы выполняете, которые занимают больше 30 секунд? Должен быть какой-то способ сократить время обработки, если только вы не выполняете много работы с XML или медленными базами данных. - person Powerlord; 19.10.2009
comment
Мне нужно подключиться к нескольким провайдерам MLS через спецификацию RETS (rets.org), чтобы получить данные листинга. Около 1k за листинг и ?k за 5-12 необработанных изображений. Я вставляю данные в MySQL, затем они переходят к следующему (в цикле). Затем он должен геокодировать каждое объявление и прочую ерунду. - person Mickey; 19.10.2009

Позволяет ли GoDaddy редактировать их удаленный файл PHP.INI или (достигая той же функции) устанавливать эти параметры во время выполнения? Многие ограничительные хосты (и я не знаю этого о GoDaddy так или иначе) не позволят вам возиться с параметрами PHP ни через файл конфигурации, ни во время выполнения, как вы это делали в WAMP. Возможно, хотя вы все еще вызываете эту функцию, она не применяется.

Использовать

echo 'Time Limit = ' . ini_get('max_execution_time') .

В руководстве говорится, что если он вообще установлен в PHP.INI, это переопределит эту среду выполнения. Руководство по PHP по set_time_limit

person Alex Mcp    schedule 19.10.2009
comment
запустите что-то другое, что-то короче/проще, и проверьте ответ. - person markus; 19.10.2009

Вы можете изменить max_execution_time.
Загрузите 1 строку (max_execution_time = 600) php5.ini в корневую папку (где находится php.ini).

person Rahul    schedule 14.10.2012