Вопрос по php, time, web-crawler – PHP - не может изменить max_execution_time в xampp

8

Я перепробовал все, чтобы изменитьmax_execution_time скрипта php crawler, чтобы он мог работать бесконечное количество времени.

Я изменил настройки файла php.inimax_execution_time в0 или же100000000 но без изменений

Я также пытался установить его из самого скрипта php, используяini_set('max_execution_time', 0);

Все php-скрипты выдают одну и ту же ошибкуFatal error: Maximum execution time of 3000 seconds exceededЧто я мог упустить и как я могу убедиться, что нет максимального ограничения времени выполнения?

php script

<?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
@ Могу да, я сделал mk_89
Вы перезапустили apache и PHP после установки другого значения max_execution_time на php.ini? :) Mahn
Извините, я смотрел футбол, я забыл об этом, когда на него ответил №1. mk_89
@ Сложно оптимизировать сканер php. mk_89
Я думаю, что вы должны сначала оптимизировать свой сценарий. 3000 секунд это большой срок для php-файла. В противном случае вы должны запустить свой скрипт через командную строку. René Höhle

Ваш Ответ

11   ответов
0

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

0

Я нашел следующее вдокументация xampp, Может быть, вы пытаетесь отредактировать неправильный файл php.ini?

Why have changes in my php.ini no effect?

Since XAMPP 1.7.1 the "php.ini" is only in the directory "\xampp\php". Till XAMPP 1.7.0 is was in the directory "\xampp\apache\bin".

If a change in the "php.ini" have no effect, it's possible PHP is still using an other one. You can verify this with phpinfo(). Go to the URI localhost/xampp/phpinfo.php and search for "Loaded Configuration File". This value shows you the "php.ini" PHP is really using.

Info: After changing the "php.ini" you have to restart Apache, thus Apache/PHP can read the new settings.

Я проверял phpinfo () раньше, и изменения, которые я сделал, были установлены mk_89
Хорошо, я нашел другой вопросstackoverflow который упоминает max_input_time. Вы это проверяли?
Я сделаю это сейчас mk_89
3

Вы не должны позволять своему сканеру работать под Apache, лучше запускать его отдельно через cli как частьGearman настроить.

Таким образом, он не заработает на вашем веб-сервере и может работать столько времени, сколько вы хотите. Вы можете найти множество привязок для Gearman, которые вы можете использовать, включая, конечно, PHP.

Я сделаю это, если все закончится плохо, сейчас я собираюсь попробовать запустить php-файл в командной строке, так как это может быть проблемой браузера, что действительно сводит меня с ума, когда что-то, что должно работать, не работает. mk_89
0

В WAMP есть три файла PHP.ini, так что вы также можете найти 3 в xampp, так что просто найдите его с помощью команды find и replacemax_execution_time к тому, что вы устанавливаете. Но вы должны держать что-то маленькое, не слишком большое, как для быстрого запуска приложения.

Нет, я выполнил системный поиск, у xammp есть только 1 файл php.ini. mk_89
1

использование

set_time_limit(0);

в верхней части сценария

я уже сделал это mk_89
0

Вы также можете попробовать установить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

это не сработало mk_89
Хорошо, я сделаю попытку mk_89
0

Вы должны изменить оба этих параметра в своем php.ini (и проверить, является ли это правильным php.ini, найдя местоположение вphpinfo(); выход! )

max_execution_time = 0
max_input_time = 0

И после этого проверьте, не перезаписывает ли какой-нибудь php-файл эти переменные локально.

0

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

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

search your code for ini_set() and check if it is change max_execution_time search for set_time_limit()

Эти функции могут изменить максимальный срок выполнения скрипта. в противном случае вы должны проверить.htaccess откуда это значение может быть установлено. но это повлияетphpinfo() также.

4

Попробуйте выключитьsafe mode в 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.

это не сработало, к сожалению mk_89
@ mk_89 ты отключил безопасный режим php? если вы попробовали переустановить xampp
@ mk_89 хорошо, дайте нам знать, если переустановка тоже не сработала ...
Я выключил, может быть переустановлю mk_89
к сожалению это не имело значения mk_89
0

откройте файл блокнота php.ini и найдите или найдитеupload_max_filesize = 1000M и вы должны перейти наPost_max_filesize = 1000M затем перезапустите ваш xampp и обновите локальный phpmyadmin.

0

то, что вы делаете, это просто установкаmax_execution_time к чему-либо внутри вашей страницы. Вы не можете изменить это с помощью ini_set. Вы можете изменитьmemory_limit только.

подробности смотрите здесь ... с официального сайта php.

если вы хотите, чтобы они были изменены, измените в php.ini.

Похожие вопросы