Einstellungen
Vorwort
PHP bietet über seine Konfigurationsdatei php.ini die Möglichkeit viele Dinge zu konfigurieren. Einige Einstellungen helfen bei der Entwicklung, andere Einstellungen sollte man setzen, um Probleme beim Anwender im Vorhinein auszuschließen, bei denen diese Einstellung evtl. auch vom Hoster gesetzt wurde.
Sinnvolle PHP-Einstellungen
register_globals = off
Diese Einstellung bewirkt, dass übergebene Parameter nicht direkt als Variablen zur Verfügung stehen, sondern nur über die Arrays $_GET oder $_POST angesprochen werden können. Normalerweise sollte diese Variable schon auf off stehen. Ab PHP6 gibt es diese Einstellung nicht mehr.
error_reporting = E_ALL
In den meisten Fällen ist dies schon gesetzt und man muss nur noch den Zusatz & ~E_NOTICE entfernen. Dies führt dazu, dass nun auch Warnings ausgegeben werden, wenn z.B. eine Variable benutzt wird, die vorher noch nicht definiert war. Somit führt dies zu einem sauberen Programmierstil und kann auch auf mögliche Sicherheitsprobleme aufmerksam machen.
log_errors = On
Diese Einstellung bewirkt, dass sämtliche Fehler in einer Logdatei mitprotokolliert werden. Für die Entwicklungsumgebung ist diese Einstellung sehr zu empfehlen, da man hier auch im Nachhinein noch alle Hinweise und Fehler einsehen kann. Auch wenn man die Seite schon verlassen hat.
display_errors = On
Neben dem Loggen der Fehlermeldungen in der Logdatei, wird durch diese Einstellung der Fehler/Hinweis direkt auf der Seite ausgegeben. In der Entwicklungsumgebung sollte diese Einstellung gesetzt sein, damit Fehler schneller auffallen.
error_log = "/Applications/MAMP/logs/php_error.log"
In Verbindung mit der oberen Einstellung wird hier der Pfad und Dateiname der Logdatei angegeben. Wichtig ist, dass der Apache in diesem Verzeichnis Schreibrechte hat. Wird die Admidio-Einstellung $gDebug = 1 gesetzt, so landen in dieser Datei auch alle SQL-Statements und Seitenaufrufe.
allow_url_fopen = Off
Diese Einstellung bewirkt, dass man in Funktionen, welche mit Pfadangaben arbeiten (z.b. fopen zum Öffnen von Dateien) keine URLs mehr benutzen darf, sondern nur noch direkte Serverpfade. Da URLs ein Sicherheitsrisiko darstellen und viele Hoster deshalb diese Option auch deaktivieren, sollten wir dies auch tun, damit es zu keinen Problemen bei den Anwendern kommt.
allow_url_include = Off
Ab PHP 5.2 gibt es diese Option für include und require Befehle und arbeitet analog zu allow_url_fopen. Auch diese Option sollten wir aus den o.g. Gründen setzen.
Admidio-Debug-Flag
Mit der Version 2.0 ist es möglich in der config.php ein Debug-Flag zu setzen.
Folgender Eintag aktiviert den Debug-Modus:
$gDebug = 1;
- Nun wird im Programm nicht mehr geprüft ob der adm_install Ordner wirklich gelöscht wurde.
- Außerdem werden nun auch ALLE SQL-Statements in die PHP-Logdatei geschrieben, falls diese eingerichtet ist. Somit kann man bei Fehlern oder Abbrüchen besser nachvollziehen, was bereits im Script ausgeführt wurde und wie die SQL-Statements tatsächlich aussahen.
- Alle Scriptaufrufe mit den jeweiligen Übergabeparametern werden ebenfalls in die PHP-Logdatei geschrieben