Heim  >  Artikel  >  Backend-Entwicklung  >  Was soll ich tun, wenn es in PHP ein Speicherlimit gibt?

Was soll ich tun, wenn es in PHP ein Speicherlimit gibt?

墨辰丷
墨辰丷Original
2018-05-15 16:23:008361Durchsuche

In diesem Artikel wird hauptsächlich erläutert, was zu tun ist, wenn der Speicher in PHP begrenzt ist. Interessierte Freunde können darauf verweisen, ich hoffe, es wird für alle hilfreich sein.

Gestern, als ich das Programm auf der Serverseite debuggte, tauchte plötzlich die Website auf Schwerwiegender Fehler: Erlaubte Speichergröße..., Ich war damals verwirrt, aber es kam bald wieder normal, nicht nur meine Neugier war geweckt, und Baidu untersuchte die Ursache. Es stellte sich heraus, dass es durch ein einzelnes Skript verursacht wurde, das zu viel Speicher verbrauchte. Das Folgende ist ein reproduzierter Artikel.

Beim Ausführen eines PHP-Programms tritt normalerweise der Fehler „Schwerwiegender Fehler: Zulässige Speichergröße von xxxxxx Bytes erschöpft“ auf, was bedeutet, dass das PHP-Skript zu viel Speicher verwendet. und überschreitet den vom System maximal zulässigen Speicher. Um dieses Problem zu lösen, müssen Sie zunächst prüfen, ob Ihr Programm zu viel Speicher zugewiesen hat. Wenn es keine Probleme mit dem Programm gibt, können Sie das Speicherlimit (memory_limit) von PHP mit den folgenden Methoden erhöhen.

Überprüfen Sie den Speichergrenzwert von PHP

Um diesen Wert zu überprüfen, müssen Sie eine leere PHP-Datei erstellen, z. B. view-php-info.php. Fügen Sie dann den Code ein.

<?php 
phpinfo();
 ?>

Legen Sie dieses Skript auf Ihren PHP-Host und rufen Sie es in Ihrem Browser auf. Zu diesem Zeitpunkt können Sie die Informationen zu Ihrer PHP-Umgebungskonfiguration sehen, von denen ein Teil sich auf „memory_limit“ bezieht, wie unten gezeigt:

Was soll ich tun, wenn es in PHP ein Speicherlimit gibt?

Hinweis: Sie können diese Methode verwenden Überprüfen Sie andere Parametereinstellungen von PHP, nicht nur „memory_limit“

Auf wie viel sollte „memory_limit“ eingestellt werden?

Dies hängt vollständig von den Anforderungen Ihrer Anwendung ab. Beispielsweise benötigt WordPress 32 MB, um den Kerncode auszuführen. Drupal 6 erfordert, dass dieser Wert mindestens 16 MB beträgt, und empfiehlt, ihn auf 32 MB festzulegen. Wenn Sie viele Plug-Ins installieren, insbesondere solche, die eine Bildverarbeitung erfordern, benötigen Sie möglicherweise 128 MB oder mehr Speicher.

So legen Sie das Speicherlimit fest

Methode 1: php.ini

Die einfachste oder gebräuchlichste Methode besteht darin, php.ini zu ändern

  1. Suchen Sie zunächst die php.ini-Datei, die für Ihre Website wirksam ist

    Da es viele Orte zum Festlegen von PHP-Parametern gibt, suchen Sie die richtige Konfigurationsdatei und fahren Sie fort Veränderung ist der erste Schritt. Wenn Sie mit der oben genannten Methode eine PHP-Datei erstellt haben, um deren Konfigurationsparameter anzuzeigen, finden Sie das Element „Geladene Konfigurationsdatei“. Das Folgende ist ein Beispiel:

    Was soll ich tun, wenn es in PHP ein Speicherlimit gibt?

    Für Linux Benutzer können die entsprechende Konfigurationsdatei finden, indem sie „php -i | grep Loaded Configuration File“ ausführen. Für Windows-Benutzer können Sie versuchen, php.ini in Ihrem PHP-Installationsverzeichnis zu ändern.

  2. Bearbeiten Sie php.ini

    Suchen Sie in php.ini das Element „memory_limit“. Wenn nicht, können Sie diesen Parameter hinzufügen allein. Im Folgenden finden Sie einige Einstellungsbeispiele

    memory_limit = 128M ; 可以将128M改为任何你想设置的值

    Datei speichern

  3. Webserver neu starten

    Wenn der Webserver Apache verwendet , führen Sie Folgendes aus:

    httpd restart

In einigen Fällen ist es Ihnen möglicherweise nicht gestattet, php.ini privat zu ändern. Wenn Sie beispielsweise einen virtuellen Hosting-Dienst erworben haben, Ihr Dienstanbieter Ihnen jedoch nicht erlaubt, diese Datei zu ändern. Dann möchten Sie möglicherweise andere Methoden in Betracht ziehen, um den Wert von „memory_limit“ zu erhöhen.

Methode 2: .htaccess

Hinweis: Diese Methode wird nur wirksam, wenn PHP als Apache-Modul ausgeführt wird.

Suchen Sie die Datei „.htaccess“ im Stammverzeichnis Ihrer Website. Wenn nicht, können Sie selbst eine erstellen. Fügen Sie dann die folgende Konfiguration ein

php_value memory_limit 128M ; 可以将128M改为任何你想设置的值

Methode 3: Ändern Sie die Speichereinstellungen von PHP während der Laufzeit

Fügen Sie die folgende Befehlszeile zu Ihrem PHP-Code hinzu.

ini_set(&#39;memory_limit&#39;, &#39;128M&#39;);

Memory_limit konnte nicht geändert werden

Wenn Sie einen virtuellen Host verwenden, kann es sein, dass der Wert von „memory_limit“ nicht geändert werden konnte. Sie müssen sich an Ihren Dienstanbieter wenden, um zu erfahren, wie Sie damit umgehen können. Normalerweise ist der maximal einstellbare Wert begrenzt oder Sie können ihn überhaupt nicht ändern. Wenn die Umgebung Ihren Anforderungen wirklich nicht gerecht wird, sollten Sie über einen Wechsel zu einem anderen Hosting-Anbieter nachdenken.

Verwandte Empfehlungen:

Detaillierte Erklärung der PHP-Speicherfreigabe und Speicherbereinigung


Detaillierte Erklärung von PHP-Speicherleck

Detaillierte Erklärung der PHP-Speicherverwaltung

Das obige ist der detaillierte Inhalt vonWas soll ich tun, wenn es in PHP ein Speicherlimit gibt?. 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