Wie kann ich erreichen, dass mein lokaler Apache-Webserver mit meinen eigenen Benutzerrechten ausgeführt wird, so dass ich keine Probleme mit Lese- und Schreibberechtigungen bei Webapplikationen mehr bekomme?
May 5th, 2008 by matthias
- Unter Debian/GNU Linux 3.1 installieren: Paket suphp-common und zusätzlich libapache-mod-suphp (für Apache 1.3x) oder libapache2-mod-suphp (für Apache2).
- Dadurch wird an die Datei /etc/apache/modules.conf die folgende Zeile angehängt:
-
LoadModule suphp_module /usr/lib/apache/1.3/mod_suphp.so
-
- In /etc/apache/httpd.conf füge man _nach_ der Zeile
-
LoadModule suphp_module /usr/lib/apache/1.3/mod_suphp.so
oder etwas wie
-
Include /etc/apache/modules.conf
ein:
-
# suPHP: configuration of setting the user’s rights for php scripts
-
# prevents struggling with access rights for PHP development
-
-
<IfModule mod_suphp.c>
-
# Whether PHP is on or off, default is off
-
suPHP_Engine on
-
# Where the php.ini resists, default is to use PHP’s default configuration
-
suPHP_ConfigPath /etc/php4/apache
-
AddHandler x-httpd-php .php
-
</IfModule>
Wahrscheinlich kann dies auch mit dem neuen Debian-Konfigurationsmechanismus für Apache-Module
(/etc/apache/conf.d/) integriert werden, das wurde jedoch nicht versucht. -
- Dass mod_suphp.c nun bei einem Neustart von Apache geladen würde, garantiert noch nicht, dass es
(statt mod_php4) die PHP-Dateien behandelt. Dazu müssen die Zeilen, mit denen PHP-Dateien zur Behandlung an mod_php4 zugewiesen werden, in httpd.conf auskommentiert werden:-
# AddType application/x-httpd-php .php
-
# AddType application/x-httpd-php-source .phps
Dieselben Zeilen stehen in /etc/apache/conf.d/php4.conf und müssen evtl. auch dort auskommentiert werden. Die Zeile in /etc/apache/modules.conf
-
LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
kann jedoch stehen bleiben. Damit wird mod_php4 geladen, aber noch nicht zum Handler für PHP-Dateien gemacht. Indem man so auf manuelle Änderungen an /etc/apache/modules.conf verzichtet, spart man sich die Probleme von apt-get mit geänderten Konfigurationsdateien bei Neu- und Reinstallationen.
-
- Man starte Apache neu und verifiziere in http://localhost/server-info, dass mod_suphp.c tatsächlich mit den gewünschten Konfigurationseinstellungen geladen wurde. PHP-Scripte sollten nun mit den Berechtigungen ihres Eigentümers auf andere Dateien zugreifen können. Für weitere Informationen (und die beste Quelle beim Schreiben dieser Anleitung …) vergleiche:
-
User matthias # mit dem eigenen Benutzernamen ersetzen
-
Group users # mit dem eigenen Gruppennamen ersetzen
-
Diese Lösung kommt ganz ohne suphp aus.