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

set_time_limit () php руководство ref.


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

set_time_limit(0);

в верхней части скрипта


в 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);

см. здесь для получения дополнительной информации

http://www.php.net/manual/en/function.ignore-user-abort.php


Если вы находитесь в windows, и это сценарий запуска CLI может быть, читать это.


Регистрация phpinfo() из временного скрипта и поиска max_execution_time. убедитесь, что он имеет то же значение, что и вы устанавливаете. по умолчанию должно быть 30 секунд. попробуйте изменить его на несколько разных значений и перезапустить Apache, затем проверьте значение в phpinfo() для подтверждения.

если при изменении значения оно правильно отражается в phpinfo() Это означает, что в вашем скрипте есть код, который изменяет это значение. поиск двух вещей в вашем код:

  1. поиск кода для ini_set() и проверьте, если это изменение max_execution_time
  2. искать 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..