Das Memory Limit von PHP – wie funktioniert es?

Das Memory Limit, sprich die Speichergrenze, von PHP ist für viele oft ein Rätsel. Es ist nicht klar, wie bzw. wo es gesetzt wird und welche Auswirkungen die unterschiedlichen Einstellungsorte haben. Viele Anleitungen sind oft unvollständig, und tragen damit eher zur Irritation bei. Denn tatsächlich gibt es unzählige Möglichkeiten das Memory Limit zu setzen:

  • super-global in der php.ini
  • global in der pool.conf, bei Verwendung von PHP-FPM
  • oder global in der httpd.conf (Apache) oder server.conf (nginx)
  • auf Ordner-Ebene in der user.ini
  • auf Ordner-Ebene in der .htaccess-Datei
  • auf Applikations-Ebene über die WordPress-Konstanten WP_MEMORY_LIMIT und WP_MAX_MEMORY_LIMIT
  • oder auf Datei-Ebene im Script mit ini_set();
Unterschiedliche Orte, um das PHP Memory Limit (und andere Parameter) zu setzen

Die Reihenfolge entspricht übrigens der Hierarchie. Wird das Limit also im PHP-Script mit ini_set() gesetzt, überschreibt das die Einstellung in der httpd.conf oder server.conf. Wie sich das vermeiden lässt, dazu unten mehr. Das trifft natürlich nicht nur auf das Memory Limit, sondern so ziemlich jede PHP-Einstellung zu.

Außerdem hängen die Möglichkeiten stark davon ab, wie du PHP nutzt, also ob als Modul oder über CGI. Um das Vorgehen besser zu verdeutlichen, gehe ich im Folgenden von zwei WordPress-Setups aus. Einmal wird nginx als HTTP-Server genutzt und dort PHP-FPM über CGI angesprochen. Das zweite Setup nutzt Apache2 als HTTP-Server und dort PHP als Modul (php-mod).

Weiterlesen

WordPress Tag Cloud mit Umlauten (äöü) korrekt sortieren – Oder: Der WordPress Filter im Live-Beispiel erklärt

WordPress bringt von Hause aus ein Widget mit, dass die verwendeten Tags als Cloud darstellt (wer es ein wenig schöner mag, greift auf mein WordCloud Plugin zurück). Das Ganze hat nur einen Haken: Die entsprechende WordPress-Funktion wp_generate_tag_cloud nutzt aosort() als Sortierfunktion. Und die kommt mit Umlauten nicht sonderlich gut klar. Eine Lösung wäre also, die … Weiterlesen

Wie wirken sich viele 301 Weiterleitungen auf die Performance aus?

Hast du dich nicht auch schon mal gefragt, ob deine Seite langsamer wird, weil du in der htaccess-Datei zu viele Weiterleitungen definiert hast? Nicht? Auch egal, hier erfährst du, wie du prüfen kannst, ob und wie sich eine htaccess Datei mit 100, 1.000 oder 500.000 Einträgen auf die Performance deines Webservers auswirken kann. 

SSL-Verifizierung mit PHP schlägt fehlt (Fehler 14090086)

Wenn dich PHP mit dieser Fehlermeldung (oder einer ähnlichen Fehlernummer) begrüßt, dann liegt es wohl daran, dass beim Abruf einer SSL-Ressource die Identität nicht verifiziert werden konnte. Und das ist auch gut so, denn der Sinn von SSL ist ja das Herstellen einer gesicherten Verbindung. So sieht die Fehlermeldung bei Verwendung von file_get_contents(); aus. Aber … Weiterlesen