Nur eine php.ini dank Symlinks

Update: Mit den PHP-Versionen 5.4 und höher gibt es einen einfacheren und eleganteren Weg. Dieser lässt sich aber auch nicht immer einsetzen. Für Zend, ionCube oder OpCache ist z.B. eine php.ini notwendig

Die php.ini wirkt immer nur auf das Verzeichnis, in dem sie sich befindert (anders als die .htaccess).

Falls man Shell-Zugang (SSH) hat und sichergehen will, dass der Verweis in jedem Unterverzeichnis ist, kann man sich mit folgendem Befehl Symlinks erstellen lassen. Änderungen an der Datei werden dadurch auch in allen(!) Verzeichnissen aktiv, da der Symlink nur ein Verweis auf die Datei ist.

find -type d -exec ln -sv /homepages/24/d1234567/htdocs/php.ini {}/php.ini \;

Der Pfad („/homepages/24/d1234567/htdocs/„) muss natürlich angepasst werden.

Die Symlinks können mit folgendem Befehl entfernt werden:
find -name "php.ini" -links 1 -exec rm -i {} \;
Dieser fragt für jeden Eintrag nach, ob er entfernt werden soll. Will man das nicht, lässt man den -i Parameter weg.
Achtung! Der Befehl beschränkt sich nicht auf Symlinks sondern entfernt ggf. auch die originale php.ini also Vorsicht hier.

GZIP-Kompression aktivieren

Wer bei 1&1 im Shared Webosting (Linux) die GZIP-Kompression für seine Website anstellen will, kann dies über eine eigene php.ini machen. Dies ist eine simple Textdatei, die einfach nur php.ini heissen muss.

Anders als eine .htaccess wirkt die php.ini immer nur auf das Verzeichnis, in dem sie liegt. Gerade wenn die Skripte auf mehrere Verzeichnisse verstreut sind, muss die Datei auch in mehren Verzeichnissen liegen.

Folgende Zeile fügt man in der php.ini dafür ein:
zlib.output_compression = on

Ob es funktioniert hat, kann man auf diversen Seiten wir beim Gidnetwork testen.

Wie man über Symlinks nur eine php.ini nutzen kann, ist hier beschrieben.