Heim  >  Artikel  >  Datenbank  >  Warum sind „set_time_limit“ und „ini_set(\'max_execution_time\')“ auf meinem Remote-Server bei aktiviertem abgesicherten Modus wirkungslos?

Warum sind „set_time_limit“ und „ini_set(\'max_execution_time\')“ auf meinem Remote-Server bei aktiviertem abgesicherten Modus wirkungslos?

DDD
DDDOriginal
2024-10-31 09:45:02631Durchsuche

Why are `set_time_limit` and `ini_set('max_execution_time')` ineffective on my remote server with safe mode enabled?

PHP-Zeitlimitfunktionen auf Remote-Server unwirksam

Beim Festlegen von Zeitlimits mit set_time_limit(50) oder ini_set('max_execution_time', 50) Lokal ergibt das Abrufen von max_execution_time den gewünschten Wert. Auf einem anderen Server wird jedoch auf den Standardwert (30 Sekunden) zurückgesetzt, wodurch diese Funktionen unwirksam werden.

Erklärung

Das Problem entsteht aufgrund des Abgesicherter ModusEinstellung auf dem Remote-Server. Im abgesicherten Modus von PHP ist es nicht möglich, die Einstellung max_execution_time mit ini_set() zu ändern. Diese Einschränkung gilt auch für set_time_limit().

Problemumgehung

Um dieses Problem zu beheben, gibt es zwei Möglichkeiten:

  1. Abgesicherten Modus deaktivieren: Dies kann durch Ändern der Serverkonfiguration erfolgen. Aus Sicherheitsgründen wird dies jedoch im Allgemeinen nicht empfohlen.
  2. php.ini ändern: Bearbeiten Sie die php.ini-Datei auf dem Remote-Server und setzen Sie max_execution_time auf den gewünschten Wert.

Grund für die Einschränkung des abgesicherten Modus

Der abgesicherte Modus wurde in PHP eingeführt, um die Sicherheit zu erhöhen, indem bestimmte Aktionen eingeschränkt werden, die von Skripten ausgeführt werden können. Zu diesen Sicherheitsmaßnahmen gehört das Verhindern der unbegrenzten Ausführung von Skripten.

Hinweis: Im PHP-Handbuch heißt es eindeutig, dass sowohl set_time_limit() als auch ini_set('max_execution_time', 50) im sicheren Zustand keine Wirkung haben Der Modus ist aktiviert. Die einzige Lösung besteht darin, den abgesicherten Modus zu deaktivieren oder das Zeitlimit in der Datei php.ini anzupassen.

Das obige ist der detaillierte Inhalt vonWarum sind „set_time_limit“ und „ini_set(\'max_execution_time\')“ auf meinem Remote-Server bei aktiviertem abgesicherten Modus wirkungslos?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn