Erhöhen Sie die Ausführungszeit des Skripts. Erhöhte Ausführungszeit eines PHP-Skripts mit Nginx. Warum Messungen in der Programmierung?

Wenn Sie ein großes Projekt oder einen Server mit begrenzten Ressourcen haben, wird häufig der Fehler „504 Gateway Timeout“ angezeigt.

Sie können die folgenden Schritte ausführen, um den Timeout-Wert zu erhöhen. In PHP beträgt der Standardwert 30 Sekunden.

Änderungen in php.ini

Wenn Sie die maximale Ausführungszeit für PHP-Skripte von 30 Sekunden (Standard) auf 300 Sekunden ändern möchten.

Nano /etc/php5/fpm/php.ini

Installieren...

Max_execution_time = 300

Wenn Apache PHP als Modul ausgeführt wird, reichen diese Änderungen aus. Aber in unserem Fall müssen wir noch an mehreren Stellen Änderungen vornehmen.

Änderungen in PHP-FPM

Dies ist erforderlich, wenn Sie den Parameter „request_terminate_timeout“ zuvor auskommentiert haben. Standardmäßig ist es auskommentiert und übernimmt den gefundenen Wert max_execution_time aus php.ini

Öffnung...

Nano /etc/php5/fpm/pool.d/www.conf

Installieren...

Request_terminate_timeout = 300

Änderungen in der Nginx-Konfiguration

Erhöhung des Zeitlimits für eine Domain example.com

Nano /etc/nginx/sites-available/example.com Speicherort ~ \.php$ ( include /etc/nginx/fastcgi_params; fastcgi_pass 127.0.0.1:9000; fastcgi_read_timeout 300; }

Wenn Sie das Zeitlimit für alle Domänen auf Ihrem Server erhöhen möchten, können Sie die Hauptkonfigurationsdatei nginx.conf bearbeiten:

Nano /etc/nginx/nginx.conf

Fügen Sie den folgenden Parameter zum Abschnitt http(..) hinzu

Http(#... fastcgi_read_timeout 300; #... }

Haben Sie jemals eine Fehlermeldung erhalten? Schwerwiegender Fehler: Maximale Ausführungszeit von 30 Sekunden überschritten in WordPress? Dieser Fehler bedeutet, dass das laufende PHP-Skript mehr Zeit zum Abschließen benötigte als das festgelegte Limit und das Skript aus diesem Grund gestoppt wurde. Dieser Leitfaden hilft Ihnen, die Frage zu verstehen, wie Sie die Ausführungszeit von Skripten in PHP erhöhen und dadurch den aufgetretenen Fehler beheben können.

Bevor Sie mit dieser Anleitung beginnen, überprüfen Sie, ob Sie Folgendes haben:

  • Zugriff auf die Verwaltungskonsole Ihrer WordPress-Site (Englisch)

Schritt 1 – Installieren Sie das WP Maximum Execution Time Exceeded Plugin

WordPress hat eine riesige Community, daher gibt es für jede benötigte Funktionalität ein oder mehrere praktische Plugins. Unsere Situation ist keine Ausnahme: Um die Skriptausführungszeit in PHP zu erhöhen, können Sie das WP Maximum Execution Time Exceeded-Plugin verwenden und den aufgetretenen Fehler beheben. Eine detaillierte Anleitung zur Installation des WordPress-Plugins finden Sie hier.

Dieses Plugin nimmt Änderungen an der .htaccess-Datei vor und erhöht die Zeitlimits für die Skriptausführung. Nach der Installation des Plugins müssen Sie nichts weiter tun, alles wird bereits vom Plugin erledigt. Das Plugin verfügt über keine Einstellungsseite. Wenn Sie also die vorherigen Einstellungen wiederherstellen möchten, löschen Sie einfach das Plugin und .htaccess wird in seine ursprüngliche Form zurückversetzt.

Schritt 2 – Manuelles Bearbeiten der .htaccess-Datei

Wenn Sie bereits viele Plugins installiert haben und kein zusätzliches verwenden möchten oder es Ihnen einfach nicht geholfen hat, den Fehler zu beheben, können Sie manuell Änderungen an der .htaccess-Datei vornehmen, um die maximale Ausführung zu erhöhen Zeitlimit. Die einfachste Art der Anwendung Dateimanager befindet sich in Ihrer Systemsteuerung. Wenn Sie nicht wissen, wie Sie die .htaccess-Datei finden, lesen Sie bitte die detaillierten Anweisungen. Sie müssen den folgenden Code in die .htaccess-Datei unten eingeben und durch Klicken speichern Speichern:

PHP_value max_execution_time 60

Dadurch erhöht sich der Wert des Parameters max_execution_time und für PHP die Skriptausführungszeit auf 60 Sekunden (1 Minute). Wenn dieser Fehler immer noch auftritt, versuchen Sie, ihn noch weiter zu erhöhen – bis zu 120/180 Sekunden und so weiter.

Schritt 3 – Ändern des max_execution_time-Werts in cPanel

Wenn Sie cPanel verwenden, können Sie den Parameter max_execution_time direkt über cPanel erhöhen. Gehen Sie zum Abschnitt Wählen Sie PHP-Version (Wählen Sie die PHP-Version aus).

Erhöhen Sie den in der Zeile angezeigten Wert max_execution_time. Normalerweise ist sie standardmäßig auf 30 Sekunden eingestellt, in unserem Beispiel haben wir sie auf 60 Sekunden erhöht. Klicken Anwenden(Übernehmen), um die Änderungen zu speichern.

Das ist alles, Sie haben den Grenzwertparameterwert erfolgreich erhöht max_execution_time für Ihre Website.

Abschluss

Indem Sie dieser Anleitung folgen, haben Sie drei Möglichkeiten zur Steigerung kennengelernt max_execution_time für WordPress, um die Skriptausführungszeit in PHP zu ändern und den Fehler zu beheben Schwerwiegender Fehler: Maximale Ausführungszeit überschritten. Wenn Sie Shared Hosting nutzen und keine der Lösungen für Sie funktioniert, dann wenden Sie sich an Ihren Hosting-Anbieter, um zu prüfen, welche tatsächlichen Einschränkungen Sie haben und ob diese überhaupt geändert werden können.

Wenn Sie ein großes Projekt entwickeln, kann die Verarbeitung einiger Daten viel Zeit in Anspruch nehmen. Verschiedene Hosting-Sites haben ihre eigenen Grenzen für solche Aktionen. Wenn Sie aufgrund der Notwendigkeit, diese Zeit zu verlängern, hierher gekommen sind, werde ich Ihnen im Detail erklären, wie dies erreicht werden kann.

Damit Sie verstehen, wovon wir reden, gebe ich ein kleines Beispiel. Wenn Sie den festgelegten Zeitrahmen überschreiten, erhalten Sie möglicherweise die folgende Fehlermeldung:

Schwerwiegender Fehler: In site.php in Zeile 19 wurde die maximale Ausführungszeit von 30 Sekunden überschritten

Ich verrate Ihnen 4 Möglichkeiten, es loszuwerden.

Es lohnt sich jedoch, mit der Tatsache zu beginnen, dass im Einzelfall möglicherweise nicht alle aufgeführten Methoden funktionieren, da einige Hosting-Anbieter die Änderung dieses Parameters selbst verbieten.

Erhöhen der Ausführungszeit eines PHP-Skripts durch die Konfigurationsdatei php.ini

Als erste Möglichkeit, die Ausführungszeit des Skripts zu erhöhen, verwenden wir die Konfigurationsdatei php.ini.

Um genau herauszufinden, wo sich diese Datei befindet, lesen Sie.

Öffnen Sie es auf eine für Sie bequeme Weise und fügen Sie ganz unten ein:

Max_execution_time = 300;

Wo " 300 „bedeutet 300 Sekunden (ändern Sie sich in Ihre). Leider steht diese Datei nicht auf allen Hosting-Sites zur Bearbeitung durch Benutzer zur Verfügung.

Erhöhen der Ausführungszeit eines PHP-Skripts durch die integrierte Funktion „ini_set“.

Die zweite Methode basiert auf der Verwendung der Funktion „ ini_set" Sie fügen es direkt in die Skriptdatei selbst ein, am besten ganz oben. Beispiel:

Hier ist die Bedeutung „ 300 „Außerdem können Sie in Sekundenschnelle auf das umstellen, was Sie brauchen. beachten Sie dass diese Funktion bei Verwendung von PHP im abgesicherten Modus nicht verfügbar ist.

Erhöhen der Ausführungszeit eines PHP-Skripts durch die integrierte Funktion „set_time_limit“

Die dritte Methode, wahrscheinlich eine der beliebtesten, ist die Verwendung von „ Zeitlimit setzen» um die Ausführungszeit des Skripts zu ändern. Wird auch direkt in der PHP-Datei selbst verwendet. Beispiel:

Hier " 300 „Sie ändern auch den Wert, den Sie benötigen. Es empfiehlt sich, den Code ganz oben einzufügen.

Erhöhen der Ausführungszeit eines PHP-Skripts durch die .htaccess-Datei

Die letzte Möglichkeit besteht darin, die Datei zu bearbeiten .htaccess, das sich im Stammverzeichnis Ihrer Website befindet (falls nicht vorhanden, erstellen Sie es).

Fügen Sie ganz oben in diese Datei Folgendes ein:

PHP-Wert max_execution_time 300

Bedeutung " 300 „Du änderst es auch zu deinem.

beachten Sie, dass in allen Fällen die Skriptausführungszeit in Sekunden angegeben wird. Darüber hinaus kann der Parameterwert in allen Methoden „ 0 ", was unbegrenzte Ausführungszeit bedeutet.

Wie kann ich herausfinden, wie viel Zeit für die Ausführung eines PHP-Skripts zur Verfügung steht?

Nachdem Sie versucht haben, die Ausführungszeit des Skripts mit einer der Methoden zu ändern, müssen Sie herausfinden, ob Ihnen das wirklich gelungen ist.

Erstellen Sie dazu eine PHP-Datei im Stammverzeichnis Ihrer Site, in der Sie den Wert der eingestellten Zeit ausgeben:

Wenn die Zeit mit der von Ihnen angegebenen Zeit übereinstimmt, herzlichen Glückwunsch, Sie haben Ihr gewünschtes Ziel erreicht. Andernfalls lesen Sie den Artikel noch einmal, schreiben Sie in den Kommentaren zu Ihrem Problem oder leiten Sie ihn an Ihren Hosting-Anbieter weiter.

Wenn Sie ein großes Projekt entwickeln, kann die Verarbeitung einiger Daten viel Zeit in Anspruch nehmen. Verschiedene Hosting-Sites haben ihre eigenen Grenzen für solche Aktionen. Wenn Sie aufgrund der Notwendigkeit, diese Zeit zu verlängern, hierher gekommen sind, werde ich Ihnen im Detail erklären, wie dies erreicht werden kann.

Damit Sie verstehen, wovon wir reden, gebe ich ein kleines Beispiel. Wenn Sie den festgelegten Zeitrahmen überschreiten, erhalten Sie möglicherweise die folgende Fehlermeldung:

Schwerwiegender Fehler: In pandoge_com.php in Zeile 19 wurde die maximale Ausführungszeit von 30 Sekunden überschritten

Ich verrate Ihnen 4 Möglichkeiten, es loszuwerden.

Es lohnt sich jedoch, mit der Tatsache zu beginnen, dass im Einzelfall möglicherweise nicht alle aufgeführten Methoden funktionieren, da einige Hosting-Anbieter die Änderung dieses Parameters selbst verbieten.

Erhöhen der Ausführungszeit eines PHP-Skripts durch die Konfigurationsdatei php.ini

Als erste Möglichkeit, die Ausführungszeit des Skripts zu erhöhen, verwenden wir die Konfigurationsdatei php.ini.

Um genau herauszufinden, wo sich diese Datei befindet, lesen Sie.

Öffnen Sie es auf eine für Sie bequeme Weise und fügen Sie ganz unten ein:

Max_execution_time = 300;

Wo " 300 „bedeutet 300 Sekunden (ändern Sie sich in Ihre). Leider steht diese Datei nicht auf allen Hosting-Sites zur Bearbeitung durch Benutzer zur Verfügung.

Erhöhen der Ausführungszeit eines PHP-Skripts durch die integrierte Funktion „ini_set“.

Die zweite Methode basiert auf der Verwendung der Funktion „ ini_set" Sie fügen es direkt in die Skriptdatei selbst ein, am besten ganz oben. Beispiel:

Hier ist die Bedeutung „ 300 „Außerdem können Sie in Sekundenschnelle auf das umstellen, was Sie brauchen. beachten Sie dass diese Funktion bei Verwendung von PHP im abgesicherten Modus nicht verfügbar ist.

Erhöhen der Ausführungszeit eines PHP-Skripts durch die integrierte Funktion „set_time_limit“

Die dritte Methode, wahrscheinlich eine der beliebtesten, ist die Verwendung von „ Zeitlimit setzen» um die Ausführungszeit des Skripts zu ändern. Wird auch direkt in der PHP-Datei selbst verwendet. Beispiel:

Hier " 300 „Sie ändern auch den Wert, den Sie benötigen. Es empfiehlt sich, den Code ganz oben einzufügen.

Erhöhen der Ausführungszeit eines PHP-Skripts durch die .htaccess-Datei

Die letzte Möglichkeit besteht darin, die Datei zu bearbeiten .htaccess, das sich im Stammverzeichnis Ihrer Website befindet (falls nicht vorhanden, erstellen Sie es).

Fügen Sie ganz oben in diese Datei Folgendes ein:

PHP-Wert max_execution_time 300

Bedeutung " 300 „Du änderst es auch zu deinem.

beachten Sie, dass in allen Fällen die Skriptausführungszeit in Sekunden angegeben wird. Darüber hinaus kann der Parameterwert in allen Methoden „ 0 ", was unbegrenzte Ausführungszeit bedeutet.

Wie kann ich herausfinden, wie viel Zeit für die Ausführung eines PHP-Skripts zur Verfügung steht?

Nachdem Sie versucht haben, die Ausführungszeit des Skripts mit einer der Methoden zu ändern, müssen Sie herausfinden, ob Ihnen das wirklich gelungen ist.

Erstellen Sie dazu eine PHP-Datei im Stammverzeichnis Ihrer Site, in der Sie den Wert der eingestellten Zeit ausgeben:

Wenn die Zeit mit der von Ihnen angegebenen Zeit übereinstimmt, herzlichen Glückwunsch, Sie haben Ihr gewünschtes Ziel erreicht. Andernfalls lesen Sie den Artikel noch einmal, schreiben Sie in den Kommentaren zu Ihrem Problem oder leiten Sie ihn an Ihren Hosting-Anbieter weiter.

Vom Autor: Der Sohn meines Freundes interessierte sich so sehr für Chemie, dass er begann, zu Hause verschiedene „Tests“ durchzuführen. Nachdem der Kronleuchter in der Küche ihr „Opfer“ geworden war, bat ihn sein Vater, seine Vorlieben zu ändern. Dadurch interessierte sich das Kind für Statistiken und beschloss, die durchschnittliche Brenndauer eines Streichholzes zu berechnen. Die Folge war, dass fast die gesamte Wohnung in Brand geriet. Ich habe dem angehenden Wissenschaftler geraten, mit dem Programmieren zu beginnen und die Ausführungszeit des PHP-Skripts festzulegen.

Warum Messungen in der Programmierung?

Erstens ist es sicherer als Chemie und Statistik. Tatsächlich ist die Ausführungszeit von Programmcode jedoch ein wichtiger Parameter, der die Leistung der gesamten Ressource und ihrer einzelnen Module beeinflusst. Dieser Parameter ist bei Optimierung und Tests stärker gefragt.

Stellen wir uns das ein wenig vor. Stellen wir uns vor, dass es eine Art „selbst geschriebene“ Engine gibt, die der Entwickler auf ein gutes Hosting „hochgeladen“ hat und (basierend darauf) seine Website gestartet hat. Aber aus irgendeinem Grund ist das Laden der Ressource auf der Benutzerseite sehr langsam.

In einer solchen Situation werden zunächst alle Unebenheiten auf den Hoster fallen. Höchstwahrscheinlich wird ein verärgerter Programmierer eine Beschwerde beim Hosting-Support einreichen. Sie sagen, dass die Vertragsbedingungen nicht erfüllt werden, die Website kaum noch „lebendig“ ist...

Tatsächlich kann das Problem des langsamen Ladens von Seiten einer dynamischen Ressource jedoch in der Engine selbst verborgen sein. Und um später nicht wie ein „Dummkopf“ auszusehen, misst ein erfahrener Entwickler immer die Ausführungszeit eines PHP-Skripts, bevor er ein Projekt ausliefert.

PHP-Funktionen

Ich habe es immer als eine der bequemsten Programmiersprachen bezeichnet. Um die Laufzeit des Codes zu verfolgen, muss der Entwickler keine langen „Talmuds“ schreiben, um jede Zeile des Skripts abzufangen. Diese Technologie implementiert mehrere spezialisierte Tools. Die wichtigste davon ist die Funktion microtime(). Es gibt die Zeit (in Millisekunden) zurück, die seit Anfang 1970 vergangen ist. Der sogenannte „Beginn der Unix-Ära“. Wenn Sie den Parameter get_as_float mit dem Wert true an die Funktion übergeben, wird die Zeitspanne in Form von ganzen Sekunden und Bruchteilen von Millisekunden zurückgegeben.

Das Prinzip der Verwendung von microtime() ist wie folgt: Die Funktion wird am Anfang und am Ende des Skripts aufgerufen. Dann wird der Anfangswert vom letzten Wert subtrahiert. So berechnen Sie die Ausführungszeit eines Skripts:

"; $last=microtime(true); $value=$last-$first; echo "Das Skript wird ausgeführt in: ".$value; ?>

Ändern der Laufzeit des Codes

In PHP kann der Wert der Skriptlaufzeit programmgesteuert begrenzt (verringern oder erhöhen) werden. Hierzu werden mehrere Funktionen verwendet, die jeweils einen Parametersatz in der Konfigurationsdatei (php.ini) überschreiben.
Zuerst ändern wir unseren Code und erhöhen die Anzahl der Schleifeniterationen um das 20-fache auf 200 Millionen. Wenn alles in Ordnung ist, sollten Sie nach der Ausführung des Skripts eine schwerwiegende Fehlermeldung erhalten.

Das bedeutet, dass in den Einstellungen der Parameter max_execution_time auf den Standardwert (30 Sekunden) gesetzt ist. Erhöhen wir die maximale Ausführungszeit eines Skripts in PHP um das Dreifache.

set_time_limit(90);

Jetzt erhalten wir keine Fehlermeldungen.