Wie man suPHP auf verschiedenen Linux Distributionen für die Verwendung mit ISPConfig (2.2.20 und neuere) installiert

Version 1.0
Author: Falko Timme


Ab Version 2.2.20 wurde die suPHP Unterstützung von ISPConfig verbessert. Diese Anleitung veranschaulicht, wie man suPHP auf verschiedenen Distributionen, die von ISPConfig unterstützt werden, installiert. (Falls Du suPHP mit vorherigen ISPConfig Versionen verwendet hast, wird Deine Installation immer noch funktionieren.)

Ich übernehme keine Garantie, dass dies auch bei Dir funktioniert!

1 Debian Etch / Ubuntu 7.10

Für Debian und Ubuntu is das Paket libapache2-mod-suphp verfügbar. Jedoch besteht das Problem mit diesem Paket darin, dass es die suPHP_UserGroup Direktive (die von ISPConfig verwendet wird) nicht unterstützt, da es ohne den --with-setid-mode=paranoid switch erstellt worden ist. Daher müssen wir mod_suphp manuell erstellen.

Zunächst deaktivieren wir das normale PHP5 Modul (als Rootanwender):

a2dismod php5
/etc/init.d/apache2 restart

Dann installieren wir die Voraussetzungen, die wir benötigen, um mod_suphp zu erstellen:

apt-get install php5-cgi apache2-prefork-dev

Nun können wir suPHP wie folgt runter laden und erstellen:

cd /tmp
wget http://www.suphp.org/download/suphp-0.6.2.tar.gz
tar xvfz suphp-0.6.2.tar.gz
cd suphp-0.6.2
./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2
make
make install

Letztendlich fügen wir das suPHP Modul unserer Apache Konfiguration hinzu...

vi /etc/apache2/httpd.conf


LoadModule suphp_module       /usr/lib/apache2/modules/mod_suphp.so
... und starten Apache neu:

/etc/init.d/apache2 restart


2 Fedora 8 / CentOS 5.1

Auf Fedora 8 und CentOS 5.1 müssen wir build mod_suphp auch manuell erstellen, aus den gleichen Gründen wie bei Debian und Ubuntu (suPHP_UserGroup).

Zunächst deaktivieren wir das normale PHP5 Modul:

vi /etc/httpd/conf.d/php.conf

Kommentiere die LoadModule Zeile aus:
[...]
#LoadModule php5_module modules/libphp5.so [...]
Dann installieren wir die Voraussetzungen, die wir benötigen, um mod_suphp zu erstellen:

yum install php-cli httpd-devel

Nun können wir suPHP wie folgt runter laden und erstellen:

cd /tmp
wget http://www.suphp.org/download/suphp-0.6.2.tar.gz
tar xvfz suphp-0.6.2.tar.gz
cd suphp-0.6.2/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=paranoid --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes
make
make install

Letztendlich fügen wir das suPHP Modul unserer Apache Konfiguration hinzu...

vi /etc/httpd/conf.d/suphp.conf


LoadModule suphp_module modules/mod_suphp.so
... und starten Apache neu:

/etc/init.d/httpd restart


3 Mandriva 2008.0

Auch auf Mandriva 2008.0 müssen wir mod_suphp manuell erstellen, aus den gleichen Gründen wie bei Debian und Ubuntu (suPHP_UserGroup).

Zunächst deaktivieren wir das normale PHP5 Modul:

vi /etc/httpd/modules.d/70_mod_php.conf

Kommentiere die Zeile LoadModule aus:
<IfDefine HAVE_PHP5>
<IfModule !mod_php5.c> #LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> [...]
Dann installieren wir die Voraussetzungen, die wir benötigen, um mod_suphp zu erstellen:

urpmi php-cgi apache-devel

Nun könnnen wir suPHP wie folgt runter laden und erstellen:

cd /tmp
wget http://www.suphp.org/download/suphp-0.6.2.tar.gz
tar xvfz suphp-0.6.2.tar.gz
cd suphp-0.6.2/
./configure --prefix=/usr --sysconfdir=/etc --with-apr=/usr/bin/apr-1-config --with-apxs=/usr/sbin/apxs --with-apache-user=apache --with-setid-mode=paranoid --with-php=/usr/bin/php-cgi --with-logfile=/var/log/httpd/suphp_log --enable-SUPHP_USE_USERGROUP=yes
make
make install

Letztendlich fügen wir das suPHP Modul unserer Apache Konfiguration hinzu...

vi /etc/httpd/modules.d/A36_mod_suphp.conf


LoadModule suphp_module    modules/mod_suphp.so
... und starten Apache neu:

/etc/init.d/httpd restart


4 OpenSUSE 10.3

OpenSUSE 10.3 hat ein suPHP Paket, das die suPHP_UserGroup Direktive versteht, also müssen wir es nicht selbst erstellen.

Zuerst deaktivieren wir das normale PHP5 Modul. Öffne /etc/sysconfig/apache2 und entferne php5 aus der APACHE_MODULES Zeile (sodass sie ähnlich wie diese aussieht - Deine Module können abweichen, aber php5 darf nicht mehr aufgelistet sein):

vi /etc/sysconfig/apache2


[...]
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir rewrite ruby" [...]
Führe danach Folgendes aus

SuSEconfig

Nun installieren wir suPHP wie folgt:

yast -i suphp

Als Nächstes fügen wir suphp der APACHE_MODULES Zeile in /etc/sysconfig/apache2 z.B. wie folgt hinzu:

vi /etc/sysconfig/apache2


[...]
APACHE_MODULES="actions alias auth_basic authn_file authz_host authz_groupfile authz_default authz_user authn_dbm autoindex cgi dir env expires include log_config mime negotiation setenvif ssl suexec userdir rewrite ruby suphp" [...]
OpenSUSEs suPHP Paket hat eine suPHP Konfiguration, die suPHP global aktiviert. Daher müssen wir diese Konfiguration nun deaktivieren, damit wir suPHP in ISPConfig pro Webseite aktivieren oder deaktivieren können:

vi /etc/apache2/conf.d/mod_suphp.conf

In dieser Zeile kommentieren wir alles aus:
#<IfModule mod_suphp.c>
# suPHP_Engine on # # AddType application/x-httpd-php .php # AddType application/x-httpd-php .php3 # AddType application/x-httpd-php .php4 # AddType application/x-httpd-php .php5 # AddHandler application/x-httpd-php .php # # DirectoryIndex index.php index.php3 index.php4 index.php5 # # <Location /> # suPHP_AddHandler application/x-httpd-php # </Location> #</IfModule> # in your vhost you need: #<Virtualhost *> # suPHP_UserGroup someuser somegroup #</Virtualhost>
Letztendlich führen wir Folgendes aus:

SuSEconfig
/etc/init.d/apache2 restart

5 Konfiguriere ISPConfig

Nun müssen wir ISPConfig mitteilen, dass es eine suPHP Konfiguration im Apache vhosts schreiben soll anstatt der gewöhnlichen PHP Konfiguration. Um dies zu tun, öffnen wir ISPConfigs Konfigurationsdatei /home/admispconfig/ispconfig/lib/config.inc.php und setzen $go_info["server"]["apache2_php"] zu suphp:

vi /home/admispconfig/ispconfig/lib/config.inc.php


[...]
$go_info["server"]["apache2_php"] = 'suphp'; [...]
Wann immer Du nun PHP für eine Webseite in ISPConig aktivierst, wird ISPConfig eine suPHP Konfiguration in die vhost Konfiguration dieser Webseite schreiben.

6 Links

1 Kommentar(e)

Zum Posten von Kommentaren bitte

Kommentare

Von: planet_fox

die suphp.conf wo liegt die nun ?