PHP-невозможно изменить максимальное время выполнения в xampp
Я пробовал все, чтобы изменить max_execution_time
скрипта искателя php, так что он может работать бесконечное количество времени.
Я изменил php.файл ini параметр max_execution_time
to 0
или 100000000
но без изменения
Я также попытался установить его из самого скрипта php, используя ini_set('max_execution_time', 0);
все PHP скрипты бросают одну и ту же ошибку Fatal error: Maximum execution time of 3000 seconds exceeded
, что я могу пропустить и как я могу убедиться, что нет максимального времени выполнения предел?
PHP скрипт
<?php
ini_set('MAX_EXECUTION_TIME', -1);
error_reporting(E_ALL); // turn on all errors, warnings and notices for easier debugging
//ini_set('max_execution_time', 123456);
ini_set('max_input_time', -1);
ini_set('memory_limit', '512M');
set_time_limit(0);
date_default_timezone_set('Europe/London');
/*code which scrapes websites*/
?>
phpinfo ()
max_execution_time 0 0
max_input_time -1 -1
11 ответов
вы не должны позволять вашему искателю работать под apache, лучше запускать его автономно через cli как часть Gearman настройка.
таким образом, он не будет Хог ваш веб-сервер, и он может работать столько, сколько вы хотите. Вы можете найти много Привязок для Gearman, которые вы можете использовать, включая PHP, конечно.
попробуйте отключить безопасный режим в php, а затем попробуйте следующий код
if( !ini_get('safe_mode') ){
set_time_limit(0); //this won't work if safe_mode is enabled.
}
Это должно позволить вам запускать скрипт в течение бесконечного времени.
в Apache вы можете изменить максимальное время выполнения .htaccess с этой строкой
php_value max_execution_time 200
в WAMP есть три PHP.ini файлы, так что вы можете найти 3 в xampp также, Так что просто искать его с find и replace max_execution_time
к чему вы устанавливаете. Но вы должны держать что-то маленькое не слишком большое, как для быстрого приложения вы работаете.
вы также можете попробовать параметр ignore_user_abort(TRUE);
в вашем скрипте, поскольку это может быть тайм-аут браузера, а не скрипт.
от php.net руководство
<?php
// Ignore user aborts and allow the script
// to run forever
ignore_user_abort(true);
set_time_limit(0);
см. здесь для получения дополнительной информации
Если вы находитесь в windows, и это сценарий запуска CLI может быть, читать это.
Регистрация phpinfo()
из временного скрипта и поиска max_execution_time
. убедитесь, что он имеет то же значение, что и вы устанавливаете. по умолчанию должно быть 30 секунд. попробуйте изменить его на несколько разных значений и перезапустить Apache, затем проверьте значение в phpinfo()
для подтверждения.
если при изменении значения оно правильно отражается в phpinfo()
Это означает, что в вашем скрипте есть код, который изменяет это значение. поиск двух вещей в вашем код:
- поиск кода для
ini_set()
и проверьте, если это изменениеmax_execution_time
- искать
set_time_limit()
эти функции могут изменять максимальный срок выполнения скрипта. в противном случае вы должны проверить .htaccess
откуда это значение может быть установлено. но это подействует phpinfo()
также.
Я нашел следующее в документация xampp. Возможно, вы пытаетесь отредактировать неправильный php.ini-файл?
Почему есть изменения в моем php.Ини никакого эффекта?
начиная с XAMPP 1.7.1 "php.Ини" только в каталоге "\в XAMPP\PHP в". Пока в XAMPP 1.7.0 был в директории "\в XAMPP\Апач\бин".
Если изменение в " php.ini " не имеют никакого эффекта,возможно, PHP все еще использует другой. Вы можете проверить это с помощью phpinfo (). Перейдите в URI localhost/xampp / phpinfo.php и поиск "загруженного файла конфигурации". Это значение показывает вам " php.ini " PHP действительно использует.
информация: После изменения " php.ini " вы должны перезапустить Apache, таким образом, Apache/PHP может читать новые настройки.
то, что вы делаете, просто устанавливает max_execution_time
все, что внутри вашей страницы.
вы не можете изменить это через безопасность. вы можете изменить memory_limit
только.
Подробнее см. здесь... с официального сайта php.
Если вы хотите, чтобы они были изменены, измените php.ini.
вы должны изменить оба из них в вас php.ini (и проверьте, правильно ли это php.ini, найдя местоположение в phpinfo();
выход! )
max_execution_time = 0
max_input_time = 0
и после этого проверьте, не перезаписывает ли какой-либо php-файл эти переменные локально.
открыть php.ini-файл блокнотом и поиск или найти upload_max_filesize = 1000M
и вы должны изменить на Post_max_filesize = 1000M
затем перезапустите xampp и обновите локальный phpmyadmin..