suPHP Einrichtung · 3 min read · Dec 16, 2025

Wie man suPHP mit PHP4 und PHP5 einrichtet - Seite 2

4 Installieren von PHP4-CGI

Ich werde zuerst beschreiben, wie man suPHP mit PHP4 verwendet, dann später in diesem Tutorial, wie man es mit PHP5 verwendet, und am Ende, wie man es mit beiden gleichzeitig installiert.

Wie ich bereits erwähnt habe, benötigt suPHP PHP als CGI anstelle des Apache-Moduls. Daher installieren wir das Paket php4-cgi wie folgt:

apt-get install php4-cgi

5 Installieren von suPHP

Als nächstes laden wir die suPHP-Quellen herunter und entpacken sie. Zum Zeitpunkt des Schreibens war die aktuelle Version 0.6.1:

cd /tmp  
wget http://www.suphp.org/download/suphp-0.6.1.tar.gz  
tar xvfz suphp-0.6.1.tar.gz  
cd suphp-0.6.1

Jetzt müssen wir src/apache2/mod_suphp.c bearbeiten, denn sonst erhalten Sie einen Fehler wie diesen:

| Forcing reload of web server: Apache2Syntax error on line 49 of /etc/apache2/sites-enabled/000-default: suPHP_AddHandler not allowed here |

wenn Sie einige suPHP-Direktiven in Ihren Apache vhosts einfügen. Öffnen Sie die Datei, und in den Zeilen 316 und 317 (die Zeilennummern können abweichen, wenn Sie eine andere suPHP-Version als 0.6.1 verwenden) finden Sie den String ACCESS_CONF. Ersetzen Sie ihn durch RSRC_CONF | ACCESS_CONF, sodass die beiden Zeilen wie folgt aussehen:

vi src/apache2/mod_suphp.c

| AP_INIT_ITERATE("suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF | ACCESS_CONF, "Sagt mod_suphp, dass es diese MIME-Typen behandeln soll"), AP_INIT_ITERATE("suPHP_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF | ACCESS_CONF, "Sagt mod_suphp, dass es diese MIME-Typen nicht behandeln soll"), |

(Wenn Sie die Datei auf Ihrem Windows-System bearbeiten möchten, stellen Sie sicher, dass Sie sie mit Unix-Zeilenumbrüchen anstelle von Windows-Zeilenumbrüchen speichern, bevor Sie die Datei zurück auf Ihr Linux-System übertragen!)

Dann kompilieren und installieren wir suPHP:

./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2  
make  
make install

Jetzt müssen wir die Konfigurationsdatei /etc/suphp.conf erstellen. Wir können dies tun, indem wir einfach die Vorlage kopieren, die mit den Quellen geliefert wird:

cp /tmp/suphp-0.6.1/doc/suphp.conf-example /etc/suphp.conf

Wir müssen einige Änderungen an /etc/suphp.conf vornehmen. Setzen Sie den Wert von webserver_user auf www-data (das ist der Benutzername des Apache-Benutzers im Standard-Apache-Paket von Debian), und für x-httpd-php müssen wir unser php4-cgi-Binärdatei angeben, die /usr/bin/php4-cgi ist, sodass die endgültige Datei wie folgt aussieht:

vi /etc/suphp.conf

| [global] ;Pfad zur Protokolldatei logfile=/var/log/suphp.log ;Protokollebene loglevel=info ;Benutzer, unter dem Apache läuft webserver_user=www-data ;Pfad, in dem sich alle Skripte befinden müssen docroot=/ ;Pfad zu chroot(), bevor das Skript ausgeführt wird ;chroot=/mychroot ; Sicherheitsoptionen allow_file_group_writeable=false allow_file_others_writeable=false allow_directory_group_writeable=false allow_directory_others_writeable=false ;Überprüfen, ob das Skript innerhalb von DOCUMENT_ROOT ist check_vhost_docroot=true ;Sendet kleinere Fehlermeldungen an den Browser errors_to_browser=false ;PATH-Umgebungsvariable env_path=/bin:/usr/bin ;Umask, die gesetzt werden soll, in oktaler Notation angeben umask=0077 ; Mindest-UID min_uid=100 ; Mindest-GID min_gid=100 [handlers] ;Handler für PHP-Skripte x-httpd-php=php:/usr/bin/php4-cgi ;Handler für CGI-Skripte x-suphp-cgi=execute:!self |

Dann müssen wir das suPHP-Modul zur Apache-Konfiguration hinzufügen. Fügen Sie die folgende Zeile zu /etc/apache2/httpd.conf hinzu:

vi /etc/apache2/httpd.conf

| LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so |

Dann starten Sie Apache neu:

/etc/init.d/apache2 restart

6 Apache-Konfiguration

In diesem Kapitel gehe ich davon aus, dass wir eine Website www.example.com mit der IP-Adresse 1.2.3.4 und dem Dokumentenstamm /var/www sowie der folgenden vhost-Konfiguration haben:

| ServerName www.example.com ServerAdmin [email protected] DocumentRoot /var/www |

Um suPHP für den vhost www.example.com zu aktivieren und PHP-Skripte als Benutzer testuser und Gruppe test auszuführen, ändern wir den vhost wie folgt:

| ServerName www.example.com ServerAdmin [email protected] DocumentRoot /var/www suPHP_Engine on suPHP_UserGroup testuser test AddHandler x-httpd-php .php .php3 .php4 .php5 suPHP_AddHandler x-httpd-php |

AddHandler x-httpd-php verweist auf suPHP_AddHandler x-httpd-php, das dann auf die x-httpd-php-Zeile in /etc/suphp.conf verweist, was bedeutet, dass Skripte mit den Erweiterungen .php, .php3, .php4 und .php5 von /usr/bin/php4-cgi interpretiert werden.

Starten Sie Apache neu:

/etc/init.d/apache2 restart

Jetzt erstellen wir ein einfaches phpinfo()-Skript und greifen über unseren Browser darauf zu:

vi /var/www/info.php

| |

Gehen Sie zu http://www.example.com/info.php in Ihrem Browser, und Sie sollten sehen, dass Sie PHP4 am Laufen haben:

Wenn Sie auf Probleme stoßen, überprüfen Sie bitte /var/log/suphp.log und /var/log/apache2/error.log auf Fehler. Die meisten Probleme können behoben werden, indem Sie die entsprechende Option in /etc/suphp.conf ändern oder die Berechtigungen von Dateien/Verzeichnissen ändern.

Share: X/Twitter LinkedIn

Erhalte neue Beiträge in deinem Posteingang.

Kein Spam. Jederzeit abmelden.