PHP: $_ENV leer

Wenn man mit PHP-Scripten auf der Kommandozeile arbeitet, kann man normalerweise über das globale $_ENV Array auf die Umgebungsvariablen zufreifen.

Jedoch bietet längst nicht jede PHP-Distribution die gleichen Voraussetzungen. Ist in der php.ini z.B.

variables_order = "GPCS" # (GET, POST, COOKIE, SESSION)

gesetzt (ohne „E“), wird das $_ENV Array nicht befüllt. Folgende Einstellung füllt das $_ENV Array wieder entsprechend:

variables_order = "EGPCS" # (ENV, GET, POST, COOKIE, SESSION)

Für die Verwendung von PHP in Verbindung mit Webservern ist die Standardeinstellung (bei manchen Distributionen) sicherlich nicht ganz falsch: Die Einstellung verhindert dann, dass sämtliche Umgebungsvariablen jedem PHP-Script zum Auslesen zur Verfügung stehen. Daher ist es sinnvoll, PHP für die Kommandozeile eine eigene php.ini mitzugeben:

php -c /etc/php.ini_cli script.php

Debian hat von vornherein eine eigene php.ini (in /etc/php5/cli/php.ini)  für das CLI (sehr vorbildlich).

Eine Antwort auf „PHP: $_ENV leer“

  1. Danke! Auch openSUSE bringt zwar zwei getrennte php.ini-Dateien für Apache und CLI mit, setzt aber in beiden variables_order = "GPCS", so dass $_ENV stets leer ist. Hat eine Weile gedauert, bis ich das gemerkt hatte…

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.