Ich habe alles versucht, um das max_execution_time
eines PHP-Crawlerskriptes zu ändern, so dass es unendlich viel Zeit dauern kann.
Ich habe die php.ini-Dateieinstellung max_execution_time
auf 0
oder 100000000
geändert, aber ohne Änderung
Ich habe auch versucht, es aus dem PHP-Skript selbst zu setzen, indem ich ini_set('max_execution_time', 0);
Alle PHP-Skripte werfen den gleichen Fehler Fatal error: Maximum execution time of 3000 seconds exceeded
, was könnte ich verpassen und wie kann ich sicherstellen, dass es keine maximale Ausführungszeit gibt?
PHP-Skript
%Vor%phpinfo ()
%Vor%Sie sollten Ihren Crawler nicht unter Apache laufen lassen, es ist besser, ihn als Teil eines Gearman Setups über cli eigenständig auszuführen.
Auf diese Weise wird Ihr Webserver nicht beeinträchtigt und kann so lange ausgeführt werden, wie Sie möchten. Sie können viele Bindungen für Gearman finden, die Sie verwenden können, einschließlich PHP natürlich.
In WAMP gibt es drei PHP.ini-Dateien, so dass Sie vielleicht auch 3 in xampp finden. Suchen Sie also einfach mit find und ersetzen Sie max_execution_time
mit dem, was Sie einstellen. Aber Sie müssen etwas klein halten, nicht zu groß wie für die schnelle App, die Sie ausführen.
Wenn Sie Windows verwenden, und dies ist ein CLI-Skript vielleicht Lesen Sie dies .
check phpinfo()
von einem temporären Skript und suche nach max_execution_time
. stellen Sie sicher, dass es den gleichen Wert hat, was Sie einstellen. Standard sollte 30 Sekunden sein. versuchen Sie, es in ein paar verschiedene Werte zu ändern, starten Sie Apache neu und überprüfen Sie dann den Wert in phpinfo()
, um zu bestätigen.
Wenn Sie den Wert in phpinfo()
korrekt ändern, bedeutet dies, dass Code in Ihrem Skript vorhanden ist, der diesen Wert ändert. Suche nach zwei Dingen in deinem Code:
ini_set()
und überprüfe, ob es sich um max_execution_time
handelt
set_time_limit()
Diese Funktionen können das maximale Ausführungszeitlimit des Skripts ändern. Andernfalls sollten Sie .htaccess
überprüfen, von wo dieser Wert gesetzt werden kann. Dies wirkt sich jedoch auch auf phpinfo()
aus.
Ich habe Folgendes in der xampp-Dokumentation gefunden. Vielleicht versuchen Sie, die falsche php.ini-Datei zu bearbeiten?
Warum haben Änderungen in meiner php.ini keine Auswirkung?
Seit XAMPP 1.7.1 befindet sich die "php.ini" nur noch im Verzeichnis "\ xampp \ php". Bis XAMPP 1.7.0 war im Verzeichnis "\ xampp \ apache \ bin".
Wenn eine Änderung in der "php.ini" keine Auswirkungen hat, ist es möglich, dass PHP noch eine andere verwendet. Sie können dies mit phpinfo () überprüfen. Gehe zum URI localhost / xampp / phpinfo.php und suche nach "Loaded Configuration File". Dieser Wert zeigt Ihnen die "php.ini", die PHP wirklich benutzt.
Info: Nachdem Sie die "php.ini" geändert haben, müssen Sie Apache neu starten, damit Apache / PHP die neuen Einstellungen lesen kann.
Was Sie tun, ist nur die max_execution_time
auf was auch immer innerhalb Ihrer Seite zu setzen.
Sie können dies nicht mit ini_set ändern. Sie können nur die memory_limit
ändern.
weitere Details finden Sie hier ... von der php offiziellen Seite.
Wenn Sie möchten, dass sie geändert werden, ändern Sie in php.ini.
Öffnen Sie die php.ini Notepad-Datei und suchen oder finden Sie upload_max_filesize = 1000M
und Sie sollten auf Post_max_filesize = 1000M
wechseln, dann starten Sie Ihren xampp neu und aktualisieren Sie den lokalen phpmyadmin ..
Tags und Links php web-crawler time