Apache/Webserver

ID #1000

Installation und Konfiguration von suPHP

Dieses HowTo bezieht sich auf einen Rootserver PS, also einen Rootserver mit einer Suse V8.1.
Desweiteren geht die Beschreibung davon aus, dass Php anschliessend nur noch über suPHP
ausgeführt werden soll, nicht mehr als mod_php4.

Download und Entpacken der Sourcen:

# wget http://www.suphp.org/download/suphp-0.2.tar.gz
# tar -xzf suphp-0.2.tar.gz
# cd suphp

Konfiguriert wird das Ganze über die Datei config.h. Meine Konfiguration sieht wie folgt aus:

#define OPT_APACHE_USER "wwwrun"
#define OPT_PATH_TO_PHP "/usr/bin/php"
#define OPT_LOGFILE "/var/logs/suphp.log"

Falls bei Dir der User mit dem der Apache läuft ein anderer ist (siehe httpd.conf User) muss der Wert hier
angepasst werden. Der User in httpd.conf und config.h MUSS identisch sein.

# make
# make install
# chmod u+s /usr/sbin/suphp

Nun muss suPHP in den Apachen eingebunden werden. In der Suse8.1 Konfiguration von 1&1 war zumindest bei mir
kein apxs installiert, welches jetzt aber gebraucht wird. Ich habe dies mit Yast installiert. Das heisst also

# yast

eingeben und anschlie�?end den Menüpunkt SOFTWARE --> INSTALL or REMOVE SOFTWARE wählen.
Wenn das Modul geladen ist gibst Du am einfachsten ALT-F und ALT-S (Filter und Suchen) ein, und anschlie�?end
APACHE. Jetzt noch ein ALT-O und yast zeigt alle Pakete die das Wort APACHE enthalten an. Hier das Paket
apache-devel auswählen und ein + um dieses Paket auszuwählen. Letztendlich muss ein + vor dem
Paket erscheinen. Dann über OK den Screen verlassen und das Paket wird installiert.

Anschliessend ein:

# updatedb
# locate apxs

eingeben, um zu sehen wo apxs installiert wurde, vermutlich "/usr/sbin/apxs". Im Sourceverzeichnis
von suphp befindet sich ein apache Verzeichnis, in welches wir jetzt rein müssen. In diesem
Verzeichnis muss dann folgendes Kommando ausgeführt werden:

# /apxs -a -i -c mod_suphp.c

Prinzipiell werden bei der 1&1 Konfiguration alle Module als DSO geladen, ob dies auch bei Dir der Fall
ist kannst Du mit:

# httpd -l

überprüfen. Es sollte eine Ausgabe a la:

Compiled-in modules:
http_core.c
mod_so.c

erscheinen. Diese Liste kann auch länger sein, solange kein mod_php darin auftaucht ist das alles ok.
Sollte ein mod_php aufgelistet werden heisst dies dass php einkompiliert wurde, statt dynamisch geladen
zu werden.

Jetzt bleibt nur noch die httpd.conf (und weitere includierte Dateien) zu konfigurieren. Als erstes lade mit:

# vi /etc/httpd/suse_loadmodules.conf

die Datei suse_loadmodules.conf in den Editor und setze ein # vor die Zeile mit PHP4. selbiges muss
mit der Datei suse_addmodule.conf geschehen.

# vi /etc/httpd/suse_addmodules.conf

Auch hier ein # vor die php4 Zeile. In die httpd.conf muss anschlie�?end noch ein weiterer
Handler eingetragen werden. Also:

# vi /etc/httpd/httpd.conf

und in der Gegend wo die AddHandler stehen ein AddHandler x-httpd-php .php eintragen. Ein jetzt
ausgeführtes

# apachectl configtest

sollte im Idealfall ein Syntax OK zurückgeben.

BEVOR Du nun ein apachectl restart machst solltest Du die benutzten PHP-Dateien daraufhin untersuchen
dass diese nur für den Owner/Eigentümer beschreibbar sein dürfen, NICHT für die
Group/Gruppe und NICHT für Everyone/Jedermann!

Wenn alles getan ist kannst Du jetzt ein

# apachectl restart

wagen. Anschlie�?end eine php-Seite aufrufen und (auch wenns geht) mal ein

# cat /var/logs/suphp.log|grep error

ausführen und sehe ob Ausgaben erfolgen. Wenn keine error Ausgaben mehr da sind ist die Operation
beendet.

Letzte Änderung des Artikels: 2006-12-09 00:54
Verfasser des Artikels: Alen
Revision: 1.0

Artikel ausdrucken Artikel ausdrucken

Bewertung der Nützlichkeit dieses Artikels:

Durchschnittliche Bewertung: 5 von 5 (1 Bewertungen)

vollkommen überflüssig 1 2 3 4 5 sehr wertvoll

Kommentieren von diesen Artikel nicht möglich