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

  1. 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).
  2. Dadurch wird an die Datei /etc/apache/modules.conf die folgende Zeile angehängt:
    1. LoadModule suphp_module /usr/lib/apache/1.3/mod_suphp.so
  3. In /etc/apache/httpd.conf füge man _nach_ der Zeile
    1. LoadModule suphp_module /usr/lib/apache/1.3/mod_suphp.so

    oder etwas wie

    1. Include /etc/apache/modules.conf

    ein:

    1. # suPHP: configuration of setting the user’s rights for php scripts
    2. # prevents struggling with access rights for PHP development
    3.  
    4. <IfModule mod_suphp.c>
    5.  # Whether PHP is on or off, default is off
    6.  suPHP_Engine on
    7.  # Where the php.ini resists, default is to use PHP’s default configuration
    8.   suPHP_ConfigPath /etc/php4/apache
    9.   AddHandler x-httpd-php .php
    10. </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.

  4. 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:

    1. # AddType application/x-httpd-php .php
    2. # 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

    1. 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.

  5. 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:
    1. User matthias # mit dem eigenen Benutzernamen ersetzen
    2. Group users # mit dem eigenen Gruppennamen ersetzen

Diese Lösung kommt ganz ohne suphp aus.

Posted in Apache Webserver |

Leave a Comment

Please note: Comment moderation is enabled and may delay your comment. There is no need to resubmit your comment.