GNU/Linux >> LINUX-Kenntnisse >  >> Panels >> Panels

So richten Sie suPHP auf einem auf Debian Sarge basierenden ISPConfig-Server ein

So richten Sie suPHP auf einem auf Debian Sarge basierenden ISPConfig-Server ein

Version 1.3
Autor: [at] bb-hosting [dot] org>

Mit diesem Howto erkläre ich, wie man suPHP auf einem Debian-basierten ISPConfig-Server mit php4 einrichtet. Hauptsächlich basiert es auf Falkos Howto https://www.howtoforge.com/apache2_suphp_php4_php5. In den Foren auf Howtoforge finden sich viele Informationen über das "Einrichten von suphp".
Diese Informationen sind jedoch über die ganzen Foren verteilt, daher ist nicht ganz klar, wie man suphp auf einem ISPConfig-Server einrichtet. Das war der Grund für mich, dieses Howto zu schreiben. Wenn Sie suPHP auf Ihrem ISPConfig-Server eingerichtet haben, können Sie die PHP-Skripte unter dem Admin-Benutzer der Website anstelle von www-data ausführen.

Wichtig:Ich habe dieses Howto auf einem Debian Sarge-Server mit ISPConfig 2.2.11 und 4.3.10-19 für Apache2 getestet, aber ich übernehme keine Garantie dafür, dass es bei Ihnen funktioniert!

Erstellen Sie zuerst eine Kopie Ihrer /etc/apache2/vhosts/Vhosts_ispconfig.conf. Kopieren Sie es beispielsweise nach /etc/apache2/vhosts/Vhosts_ispconfig-backup.conf.

Auf einem Standard-ISPConfig-Server läuft php4 als Modul. Deaktivieren Sie es mit dem Befehl:

a2dismod php4

Entfernen Sie nun alle phpadmin-Einträge in der ursprünglichen Vhosts_ispconfig.conf-Datei. Starten Sie Apache neu:

/etc/init.d/apache2 Neustart

Da wir alle phpadmin-Einträge entfernt haben, sollten Sie keine Fehler haben, wenn Apache2 neu gestartet wird.

Installieren Sie suPHP als DSO, daher müssen wir apxs installieren (auf Debian Sarge ist es apxs2):

apt-get install apache2-prefork-dev

Installieren Sie PHP4-CGI:

apt-get install php4-cgi
cd /tmp

Installieren Sie suPHP, Version 0.6.2 ist derzeit die neueste stabile Version:

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
vi src/apache2/mod_suphp.c

Ersetzen Sie die Zeilen 324/325 durch diese beiden Zeilen unten (wenn Sie eine andere Version von suPHP verwenden, können die Zeilennummern unterschiedlich sein):

AP_INIT_ITERATE("suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF | ACCESS_CONF, "Teilt mod_suphp mit, diese MIME-Typen zu handhaben"),
AP_INIT_ITERATE("suPHP_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF | ACCESS_CONF, "Teilt mod_suphp mit, diese MIME-Typen nicht zu behandeln"),

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

Kopieren Sie die Datei suphp.conf:

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

Ändern Sie den Inhalt von /etc/suphp.conf mit dem folgenden Befehl:

vi /etc/suphp.conf

Es sollte so aussehen:

[global]
;Pfad zur Logdatei
logfile=/var/log/suphp.log

;Loglevel
loglevel=info

;Benutzer Apache läuft als
webserver_user=www-data

;Pfad, in dem sich alle Skripte befinden müssen
docroot=/

; Pfad zu chroot() vor dem Ausführen des Skripts
;chroot=/mychroot

; Sicherheitsoptionen
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false

;Überprüfen Sie, ob sich das Skript innerhalb von DOCUMENT_ROOT befindet
check_vhost_docroot =true

;Kleinere Fehlermeldungen an den Browser senden
errors_to_browser=false

;PATH-Umgebungsvariable
env_path=/bin:/usr/bin

;Zu setzende Umask, Angabe in Oktalschreibweise
umask=0077

; Minimale 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

Fügen Sie die folgende Zeile zu /etc/apache2/httpd.conf hinzu, indem Sie den Befehl verwenden:

vi /etc/apache2/httpd.conf
LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so

Starten Sie Apache mit dem folgenden Befehl neu:

/etc/init.d/apache2 Neustart

Bearbeiten Sie /home/admispconfig/ispconfig/lib/config.inc.php und suchen Sie die Zeile:

$go_info["server"]["apache2_php"] ='beide';

und ändern Sie zu:

$go_info["server"]["apache2_php"] ='suphp';

Nehmen Sie nun in ISPConfig eine kleine Änderung an einem Ihrer Webs vor, damit ISPConfig eine neue vhost-Datei schreibt. Aktivieren Sie zum Beispiel CGI-Skripte für eine Ihrer Websites oder so.

In Ihrer /etc/apache2/vhosts/Vhosts_ispconfig.conf sehen Sie, dass ISPConfig die Datei neu geschrieben hat, da die folgenden Zeilen für jedes einzelne Web hinzugefügt werden:

suPHP_Engine on
suPHP_UserGroup Benutzername Gruppenname
AddHandler x-httpd-php .php .php3 .php4 .php5
suPHP_AddHandler x-httpd-php

Wichtig:Nehmen Sie keine manuellen Änderungen in Ihrer Datei /etc/apache2/vhosts/Vhosts_ispconfig.conf vor!

Wenn Sie eine Verbindung über FTP herstellen, sehen Sie, dass Sie innerhalb Ihres Webs beliebige Berechtigungen festlegen können:

Sie können die PHP-Skripte auch unter dem Admin-Benutzer der Website anstelle des Systembenutzers www-data ausführen. Dies gibt dem Admin-Benutzer der Website mehr Komfort. suPHP ist auch sehr nützlich, wenn Sie ein CMS wie Joomla in Ihrem Web betreiben. Wenn suPHP aktiviert ist, hat Joomla genügend Berechtigungen, um richtig zu funktionieren, während der Admin-Benutzer der Website die volle Kontrolle hat! Nicht zuletzt ist die Verwendung von suPHP sicherer und eine professionellere Lösung als die Verwendung von chmod 777 für Ihre Website!

Wenn Sie php4-cgi+suPHP nicht für eine bestimmte Website auf Ihrem ISPConfig-Server verwenden möchten, gibt es eine Lösung. Melden Sie sich als root bei Ihrem Server an und aktivieren Sie das php4-Modul für Apache2:

a2enmod php4

Starten Sie Apache2 neu mit:

/etc/init.d/apache2 force-reload

Deaktivieren Sie in ISPConfig php und fügen Sie Folgendes in das Apache-Anweisungsfeld für Ihre Site ein:


AddType application/x-httpd-php .php .php3 .php4
php_admin_flag safe_mode Off


Jetzt verwendet Ihre ISPConfig mit Debian Sarge PHP4-mod und PHP4-CGI+suPHP. In den meisten Situationen benötigen Sie nur PHP4-CGI+suPHP. Wenn Sie jedoch den suphp-Mechanismus aus bestimmten Gründen nicht verwenden können, können Sie dennoch php4 als Modul für diese bestimmte Website verwenden.


Panels
  1. So richten Sie einen Ubuntu/Debian LAMP-Server ein

  2. So richten Sie einen SFTP-Server auf Debian 11 Server ein

  3. So richten Sie suPHP auf einem auf Debian Etch basierenden ISPConfig-Server ein

  4. So richten Sie einen TeamSpeak-Server unter Ubuntu 16.04 ein

  5. So richten Sie einen OpenVPN-Server unter Debian 10 ein

So richten Sie einen Mailserver mit PostfixAdmin unter Debian 11 ein

So richten Sie Rsyslog Server Debian 10/11 ein

So richten Sie NTP-Server und -Client unter Debian 11 ein

So richten Sie Mailman mit Debian und ISPConfig ein

So richten Sie die Gallery2-Codebasis auf einem ISPConfig-Server ein

So richten Sie eine Gallery2-Multisite auf einem ISPConfig-Server ein