|
cybnet.ch
clever & useful internet solutions
| |||||||||
| |||||||||
PHP Tricks und HilfeWeitere Ticks: Internet Explorer IE7 und IE8 tricks
Um PHP5 sicher und voll funktionsfähig in einer shared Host Umgebung integrieren zu können, macht es Sinn PHP als CGI in den Webserver (z.B. Apache) einzubinden. Vorteile dabei sind unter anderem dass der PHP Interpreter mit dem jeweiligen Benutzeraccount des Kunden ausgeführt wird und somit bereits auf der Betriebsystem Ebene nur auf die Verzeichnisse und Dateien zugriffen kann welcher zum Kunden-Benutzeraccount gehören oder explizit freigegeben wurden. Die Integration von PHP mit mod_php welche dann mittels PHP eigenen Safe-Mode geschützt wird, führte immer wieder zu Problemen bei diversen OpenSource PHP Projekten. PHP über CGI hat den Nachteil das der PHP Interpreter nicht direkt auf die Apache Umgebung zugreifen kann und somit nicht alle Informationen erhält die mit PHP verarbeitet werden könnten. Mit einigen Kniffs lassen sich aber die meisten Einschränkungen umgehen. Individuelle Konfiguration der PHP.INISollte die Standard PHP Konfiguration für Ihre PHP Skripte nicht geeignet sein lassen sich gewünschte Konfigurations-Direktiven ganz einfach für jedes Verzeichnis anpassen. Erstellen Sie eine php.ini Datei im Verzeichnis in welchem Ihr PHP-Skript liegt und ändern Sie die gewünschten Direktiven welche Ihr Skript benötigt.
register_globalsEin Beispiel: In der PHP Standard-Konfiguration ist die Direktive register_globals deaktiviert bzw. auf off gestellt. Sollte Ihr PHP Skript nun aber die Funktionalität von register_globals benötigen so erstellen Sie einfach eine php.ini-Datei im selben Verzeichnis und fügen register_globals=on ein.
php.ini:
register_globals = on
X-Powered-By im HTTP Header deaktivieren
Der PHP Interpreter setzt in der Standard-Konfiguration eine X-Powered-By: PHP/
php.ini:
expose_php = off
Error ReportingDie Entwicklung von PHP Skripten läuft meistens direkt auf dem Webserver ab. Auf produktiven Webservern ist jedoch das Error Reporting bzw. Display auf ein minimum reduziert und macht daher das Suchen nach Fehlern (debugging) schwierig. Mit der error_reporting und display_errors Direktive lassen sich Fehlermeldung anzeigen. Erstellen Sie hierzu eine php.ini-Datei im Verzeichnis des PHP Skriptes und fügen Sie folgende Zeilen ein:
php.ini:
error_reporting = E_ALL
display_errors = On display_startup_errors = On
Die maximale Grösses eines UploadsDie Standard-Konfiguration von PHP lässt einen Datei-Upload von max. 2MB zu. Dies ist für manche PHP Projekte zu wenig. Mittels der upload_max_filesize und post_max_size Direktiven lässt sich diese Limite erhöhen:
php.ini:
upload_max_filesize = 16M
post_max_size = 16M
Die maximale Ausführungszeit von PHP SkripteNormalerweise wird eine maximale Ausführungszeit von 30 Sekunden gewährt. Dass heisst innerhalb von 30 Sekunden muss ein PHP interpretiert und kompett ausgeführt sein. Um diese Zeit zu verlängern setzten Sie folgende Direktive:
php.ini:
max_execution_time = 60 ; in Sekunden
$_SERVER['PHP_AUTH_USER'] und $_SERVER['PHP_AUTH_USER'] fehlenLeider stehen diese Umgebungsvariablen bei einer PHP-CGI Integration nicht zur Verfügung. Sie können jedoch einfach mittels Apaches mod_rewrite Modul zugänglich gemacht werden. Legen Sie hierzu einfach eine .htaccess-Datei in Ihrem Webroot-Verzeichnis an und fügen Sie folgende Anweisung ein:
.htaccess: RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization},L] | |||||||||