Malcolm Beck´s: php.ini, was ist wichtig?

Beitrag lesen

hi,

um PHP Version 5 nutzen zu können, muss ich auf meinem Webserver die php.ini konfigurieren,
Das ist nicht richtig. Der Webserver muss konfiguriert werden: https://forum.selfhtml.org/?t=175183&m=1151541 Die php.ini kann wegbleiben, wenn du mit den Vorgaben des Providers zufrieden bist.

Oh, die letzte Zeile der Supportseite hab ich wohl glatt übersehen, ich hatte nur Artikel 14 gefunden und ging davon aus, dass ist alles zu diesem Thema.
Danke für den Link.

Kleiner Irrtum. Wenn du eine php.ini in das Verzeichnis des aufgerufenen Scripts legst, dann gilt allein diese. Sie gilt für alle in diesem Verzeichnis gestarteten Scripte, aber nicht für in Unterverzeichnissen gestartete Scripte.

Das hatte ich nicht getestet, ich war nur im Root zugange.

Die Voreinstellungen des Providers - mitunter auch sinnvolle - sind komplett verschwunden und nur noch die PHP-Default-Werte aktiv (wobei die der Provider auch beim Kompilieren von PHP beeinflussen kann).

Diesen Punkt hatte ich beim Telefonat mit dem Support angesprochen, der Techniker meinte, dass wichtige Einstellungen wohl nicht überschrieben werden, ob's stimmt?!

Es ist sinnvoll, dass du eine phpinfo()-Datei in einem Verzeichnis ohne eigene php.ini stehen hast. Dann siehst du die Providervorgaben.

Das hatte ich ja so gemacht, ich hab erst einmal meine info.php aus dem Root aufgerufen (ohne php.ini), die Seite gespeichert, php.ini ins Root hochgeladen und nochmal die info.php aufgerufen, die eingetretenen Änderungen habe ich ja aufgelistet.

In jeder phpinfo()-Ausgabe steht in der ersten Tabelle, welche php.ini-Datei(en) für dieses Script aktiv waren. Hab immer ein Auge auf diese Zeile(n), damit du nicht in falschen php.inis arbeitest.

Ich hab Glücklicherweise nur 4 bis 5 Verzeichnisse mit Scripten, daher sollte dass kein Problem sein.

Vergleiche am besten die Providervorgaben mit einer phpinfo()-Ausgabe aus einem Verzeichnis mit zunächst leerer php.ini. Erstelle mindestens für die abweichenden Sachen eigene Einträge.

Das klingt Logisch, so werde ich es machen.

Hier mal noch ein paar persönliche Empfehlungen meinerseits:

allow_url_fopen - nur dann anschalten, wenn du es brauchst, also mit Dateizugriffsfunktionen Webrequests machen möchtest
allow_url_include = off, Dateien von anderen Servern will man nicht inkludieren und ausführen.
display_errors = off, zumindest im Produktivbetrieb. Außenstehende benötigen die Details der Fehlermeldungen nicht. Wie man dem Administrator die Fehlermeldungen des laufenden Betriebs zukommen lässt, ist ein anderes Thema.
magic_quotes_gpc = off, schon oft genug kommentiert.
magic_quotes_runtime = off
register_globals = off, will man nicht mehr haben
register_long_arrays = off, HTTP_*_VARS sind auch veraltet
safe_mode = off, braucht man bei CGI nicht wirklich.
short_open_tag = off, ist jedoch Geschmackssache.
session.save_path = eigenes Verzeichnis unterhalb des Kunden-Verzeichnisses, jedoch unbedingt außerhalb aller DocumentRoots. Bei 1&1 kann man ja jede Domain, auch die inklusive sblafasel.online.de, auf Unterverzeichnisse des "KundenRoots" zeigen lassen. Das sollte man auch nutzen, denn dann kann man weitere Verzeichnisse anlegen, auf die keine Domain zeigt und damit aus dem Web nicht erreichbar sind.

Vielen Dank für die Ausführliche Erklärung und die Empfehlungen, besonders

allow_url_include = off, Dateien von anderen Servern will man nicht inkludieren und ausführen.

klingt interessant, dass kannte ich nicht. Ich werde mal schauen, wo ich eine gute Anleitung zu php.ini finde, um diese auch umzusetzen.

mfg