Artikel

Unterschiedlich: PHP als Modul oder als CGI

Manch einer mag überrascht sein, wenn er merkt, daß ein Script das in einem Webspace wunderbar funktionierte, in einem anderen Fehlermeldungen wegen fehlender Berechtigung Dateien zu schreiben verursacht. Dies liegt jeweils daran das in dem einen Fall PHP als CGI und im anderen Fall als Modul des Apache benutzt wird. Was macht in Berechtigungsfragen den Unterschied aus, wie PHP in den Webserver eingebunden wurde?

Der Apache Webserver legt auf Unix/Linux-Systemen im allgemeinen einen eigenen Benutzer an um sich in das Unix-Berechtigungssystem einzufügen. Meist wird dieser Benutzer wwwrun genannt. Jeder Prozeß der von dem Apache ausgeführt wird, läuft nun mit dem Benutzerrechten des Benutzers wwwrun. Aus Sicherheitsgründen billigt man diesem Benutzer nur beschränkte Rechte zu. So darf wwwrun z. B. meist keine Dateien selber in beliebige Verzeichnisse schreiben. Wenn PHP als Modul des Apache läuft, läuft es als ein Prozeß des Apache und somit unter der Benutzerkennung von wwwrun. Dies ist der Grund warum man Verzeichnisse in die PHP Daten schreiben soll erst per chmod für jeden beschreibbar machen muß. Daher muß in diesem Fall das Verzeichnis chmod 777 bzw. eine Datei die beschreibbar sein soll mindestens chmod 666 erhalten.

Wenn PHP als CGI läuft, läuft es als getrennter Prozeß unabhängig vom Apache. In diesem Fall werden PHP-Scripte mit der Benutzerkennung des FTP-Benutzers, bzw. desjenigen der das Script auf dem Server angelegt hat aufgerufen (zumindest sofern auch mod_suexec benutzt wird, was bei praktisch allen Webhostern der Fall ist). Schreibrechte für den eigenen Benutzer sind aber logischerweise bereits vorhanden und müssen nicht erst vergeben werden. Daher funktionieren in diesem Fall die Scripte ohne vorherige Rechtevergabe.

Autor des Artikels: René Maroufi, php2009@maroufi.net

Zurück

Nach Oben
Newsletter

Wenn Sie stets über Updates meiner Scripte informiert werden wollen, können Sie den Newsletter bestellen. Der Newsletter informiert ausschließlich nur über das neueste zu meinen PHP-Scripts und erscheint daher unregelmäßig, je nachdem wie häufig es Updates gibt.

Wenn Sie den Newsletter bekommen wollen, können Sie sich hier eintragen:

Ihre E-Mailadresse:

Aus dem Newsletter wieder austragen.

Valid XHTML 1.0

Wer macht diese Seite?

© php.maroufi.net 2009