Bei der Entwicklung von Webanwendungen müssen wir normalerweise zeitaufwändigere Vorgänge ausführen, z. B. das Hochladen von Dateien, das Erstellen von Berichten usw. Die Ausführung dieser Vorgänge kann mehrere zehn Sekunden oder sogar Minuten dauern, aber standardmäßig ist die Ausführungszeit von PHP-Skripten begrenzt. Wenn das Limit überschritten wird, wird ein Fehler „Maximale Ausführungszeit überschritten (Timeout)“ ausgegeben. Wie kann man also das Timeout eines PHP-Skripts ändern?
PHPs Standard-Timeout beträgt 30 Sekunden. Das heißt, wenn die Ausführungszeit eines Skripts 30 Sekunden überschreitet, bricht die PHP-Engine die Ausführung des Skripts automatisch ab und gibt den Fehler „Maximale Ausführungszeit überschritten“ aus. Dieses Zeitlimit wird durch unterschiedliche Servereinstellungen, PHP-Version und Konfiguration in PHP.ini beeinflusst. Im Folgenden erklären wir, wie Sie das Timeout eines PHP-Skripts ändern.
Ändern Sie das Timeout in PHP-Skripten
Sie können das Timeout in PHP-Skripten über die Funktion ini_set() dynamisch ändern. Diese Funktion wird verwendet, um die Konfigurationsparameter in php.ini dynamisch zu ändern. Daher können wir die Funktion ini_set() verwenden, um die Timeout-Konfigurationsparameter zu ändern.
ini_set('max_execution_time', 60);
Der obige Code setzt das Timeout des Skripts auf 60 Sekunden. Dies bedeutet, dass die Ausführungszeit des Skripts 60 Sekunden nicht überschreiten darf, andernfalls erscheint der Fehler „Maximale Ausführungszeit überschritten“.
Natürlich können Sie diesen Code auch am Anfang der PHP-Datei platzieren, sodass bei der Ausführung die gesamte Datei betroffen ist. Allerdings ist zu beachten, dass bei entsprechenden Einschränkungen in der PHP-Konfigurationsdatei (php.ini) der Timeout über diese Methode nicht geändert werden kann.
Ändern Sie das Timeout in der php.ini-Datei
In der php.ini-Datei können wir das Timeout des PHP-Skripts ändern, indem wir den Konfigurationsparameter max_execution_time ändern. Dieser Parameter wird in Sekunden gemessen und kann auf eine höhere Zahl eingestellt werden, um längere Vorgänge zu unterstützen. Bitte befolgen Sie diese Schritte:
Suchen Sie die Datei php.ini und öffnen Sie sie (normalerweise in /etc/php.ini oder /etc/php7/php.ini).
Suchen Sie nach max_execution_time = 30. 30 ist die Standardausführungszeit.
Ändern Sie den Wert von max_execution_time auf die gewünschte Anzahl von Sekunden (z. B. 300 für 5 Minuten).
Speichern Sie die php.ini-Datei.
Starten Sie den Webserver neu, damit die Änderungen wirksam werden.
Umgang mit Zeitüberschreitungsproblemen beim Hochladen großer Dateien
Das Hochladen großer Dateien ist eine häufige Anforderung, das Hochladen und Verarbeiten dauert jedoch normalerweise länger, wodurch es leicht zu Zeitüberschreitungsproblemen kommt. Wenn Sie beim Hochladen großer Dateien Probleme mit der Zeitüberschreitung haben, können Sie diese Lösungen in Betracht ziehen:
Erhöhen Sie die Zeitüberschreitung für Ihr PHP-Skript. Dies kann durch die Verwendung der Funktion ini_set() oder durch Ändern des Konfigurationsparameters max_execution_time in der Datei php.ini erfolgen.
Verwenden Sie beim Hochladen großer Dateien die Multipart-Upload-Technologie. Diese Technik zerlegt die Datei in kleine Teile und lädt sie einzeln hoch. Auf diese Weise können Sie Zeitüberschreitungen vermeiden, selbst wenn der Upload lange dauert. Viele moderne Browser unterstützen mehrteilige Uploads.
Verwenden Sie den Upload-Fortschrittsbalken und die Ajax-Technologie, um Benutzern Echtzeit-Feedback zum Upload-Fortschritt zu geben. Dies informiert den Benutzer über den Fortschritt des Uploads und vermeidet den falschen Eindruck, dass das Programm gestoppt wurde.
Verwenden Sie schnellere Server oder Cloud-Server mit hoher Bandbreite. Durch die Verbesserung der Leistung Ihres Servers kann die Zeit zum Hochladen und Verarbeiten von Dateien verkürzt werden. Wenn Sie Shared Hosting nutzen, sollten Sie ein Upgrade auf einen VPS oder einen dedizierten Server in Betracht ziehen.
Fazit
Timeout in PHP-Skripten ist eines der Probleme, die bei der Webentwicklung häufig auftreten. Dieses Problem kann leicht vermieden werden, indem einfach das Timeout des PHP-Skripts oder der Konfigurationsparameter max_execution_time in der Datei php.ini geändert wird. Darüber hinaus wird bei der Verarbeitung großer Datei-Uploads empfohlen, die mehrteilige Upload-Technologie, Upload-Fortschrittsbalken und schnellere Server oder Cloud-Server mit großer Bandbreite zu verwenden, um die Benutzererfahrung zu verbessern.
Das obige ist der detaillierte Inhalt vonZeitüberschreitung bei PHP-Änderung. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!