Das Mysterium „PHP.INI“ im Kurzüberblick

Für viele selbstverständlich, für andere wirft Sie immer wieder Fragen auf: Die PHP.INI-Datei. Die php.ini ist eine zentrale Konfigurationsdatei die PHP sagt, mit welchen Einstellungen es ausgeführt und ob beispielsweise eine Erweiterung geladen werden soll. Die möglichen Optionen, um mit der PHP.INI-Datei letztlich das Verhalten von Skripten zu beeinflussen, sind sehr zahlreich und unterscheiden sich etwas, je nach genutzter PHP-Version.

Allgemeines zur PHP.INI

Die PHP.INI wird immer beim Start von PHP eingelesen und somit bei uns bei jedem Aufruf eines PHP-Skriptes geladen. Lediglich bei FastCGI wird die Datei für eine gewisse Zeit vorgehalten und nicht jedes Mal komplett neu vom Webserver gelesen.

Eine PHP.INI-Datei ist relativ simpel aufgebaut und man muss sich nur an wenige Regeln halten. Im einfachsten Fall beinhaltet Sie nur die Zeile mit den Angaben der gewünschten Option, die geändert werden soll, beispielsweise:

[PHP]
register_globals = „off“

Der Wert nach dem Gleichheitszeichen sollte immer in Anführungszeichen gesetzt werden, ist jedoch nicht verpflichtend und im Internet finden sich für beide Varianten viele Beispiele. Ein, wie im Beispiel genannter, boolescher Wert kann für die Aktivierung „true“, „on“, „1“ oder „yes“ nutzen und für die Deaktivierung entweder „false“, „off“, „0“ oder „no“. Für obiges Beispiel bedeutet dies, dass jeder der nachfolgenden Einträge die selbe Auswirkung hat:

register_globals = „off“
register_globals = „no“
register_globals = „false“
register_globals = „0“

Soll kein expliziter Wert und somit eine leere Zeichenkette gesetzt werden, so kann dies durch das Leerlassen nach dem Gleichheitszeichen erfolgen oder indem „None“ für „kein Wert“ gesetzt wird:

register_globals =
register_globals = „“
register_globals = None
register_globals = „None“

Bei Werten, die in Zahlen (integer) ausgedrückt werden, werden die Werte in Bytes angegeben. Es sind folgende Abkürzungen möglich um auch größere Einheiten auszudrücken: K für Kilobytes, M für Megabytes und G für Gigabytes. 8M entspricht somit acht Megabyte oder 8388608 Bytes. 8K entspricht acht Kilobyte oder 8192 Bytes. Unbegrenzt, also keine Obergrenze wird mittels „-1“ ausgedrückt. Somit sind auch hier verschiedene Angaben möglich, die alle die selbe Bedeutung haben:

memory_limit = „100M“
memory_limit = „102400K“
memory_limit = „104857600“

Zeitangaben erfolgen ohne Zusatz als reine Ziffernfolge, die immer die Anzahl an Sekunden darstellen:

max_input_time = „30“

Angaben in einer Zeile, die nach einem Semikolon folgen, werden ignoriert, ebenfalls auch Text in eckigen Klammern. Eine solche Klammerung wird für die Markierung/Trennung von Abschnitten genutzt:

; Kommentar der nicht ausgegeben wird
[PHP] ; Abschnittsmarkierung

Für Pfadangaben, z.B. für Erweiterungen können relative oder absolute Pfadangaben genutzt werden. Nachfolgend einige Beispiele möglicher Angaben:

extension_dir = „/usr/local/lib/php_modules/5-53LATEST“
extension = „mysqli.so“

zend_extension = „/kunden/12345_6789/webseiten/shop/ioncube/ioncube_loader_lin_5.3.so“

include_path = „.:/usr/local/lib/php“

Weitergehende Informationen und eine Liste mit allen Abschnitten und Direktiven der php.ini finden Sie unter: http://www.php.net/manual/de/ini.php

Einfache Bearbeitung mit dem PHP.INI-Editor

In allen aktuellen Webhosting- und Server-Tarifen stellen wir einen Editor zur Verfügung, über den die PHP.INI direkt bearbeitet werden kann. Dadurch ist keine manuelle Anlage einer INI-Datei erforderlich, die – abhängig der Anwendung – zusätzlich auch in jedes Verzeichnis kopiert werden muss, in dem PHP-Skripte ausgeführt werden. Editieren Sie einfach die vorhandenen Werte direkt im Kundenmenü, ändern Angaben ab und speichern Ihre Änderungen. Fertig 🙂

Details zu unserem PHP-INI-Editor finden Sie selbstverständlich auch in unseren FAQ unter: http://www.df.eu/de/service/df-faq/technische-faq/phpini-editor/ 

Auslesen der derzeitigen Werte einer PHP.INI

Möchten Sie sich die Werte, die derzeit für die PHP-Version eingestellt sind im Browser ansehen, so erstellen Sie bitte einfach eine Datei mit dem folgenden Inhalt und speichern diese beispielsweise als „phpinfo.php“ ab. Anschließend können Sie die Datei auf Ihren Webspace laden und im Browser aufrufen. Es werden dann Ihre aktuellen Werte dargestellt:

<?
phpinfo();
?>

Wir hoffen, wir konnten Ihnen einen kleinen Einblick in die PHP.INI geben und diese etwas „entmystifizieren“ 😉

End of article

Dietmar

Über den Autor

Dietmar

Dietmar ist seit 2005 bei domainFACTORY in wechselnden Aufgabenbereichen tätig. Seit 2013 unterstützt er als "Spezialist Qualitätssicherung Web" die Kollegen in der Entwicklungsabteilung bei allen Themen rund um Quality Assurance / Testing. Dabei kommt ihm die jahrelange Erfahrung im direkten und indirekten Kundensupport und der Begleitung bei der Einführung unseres ResellerProfessional-Systems zu Gute. Auch für viele Kollegen ist er bei Fragen dazu oder sehr alten Tarif-Konstellationen noch immer gerne eine Anlaufstelle.

5 Kommentare


  • Andreas G.
    Andreas G. - 3. September 2012 um 11:27 Uhr

    Mal eine kleine Anmerkung zu etwas was anscheinend die wenigsten wissen. Ab PHP 5.3 gibt es die .user.ini

    Das ist eine Konfigurationsdatei die im Aufbau mit der php.ini identisch ist und kommt bei PHP via suPHP/FastCGI/php-fpm zum Einsatz wenn man für ein Verzeichnis + Unterverzeichnisse einige PHP Werte anpassen möchte.

    Mehr zu dem Thema gibt es hier:

    http://php.net/manual/de/configuration.file.per-user.php

  • Gerald
    Gerald - 4. September 2012 um 08:40 Uhr

    Ich weiß nicht mehr bei welcher Seite oder Programm es war, aber nicht immer läßt sich bei manchen Werten zwischen 0, off, none, no, false oder Leerzeichen auswählen. Ein CMS reagierte nur auf die Zahl 0 oder 1. Alles andere wurde nicht registriert (zeigte keine Wirkung).

  • Gerald
    Gerald - 4. September 2012 um 08:40 Uhr

    Trotzdem danke an euch und an Andreas für die Infos.