Jak nastavit suPHP na serveru ISPConfig založeném na Debian Sarge
Verze 1.3
Autor:
Pomocí tohoto návodu vysvětlím, jak nastavit suPHP na serveru ISPConfig založeném na Debianu s php4. Především je založen na Falkově návodu https://www.howtoforge.com/apache2_suphp_php4_php5. Na fórech na Howtoforge lze najít spoustu informací o "nastavení suphp".
Tyto informace jsou však rozšířeny po všech fórech, takže není příliš jasné, jak nastavit suphp na serveru ISPConfig. To byl důvod, proč jsem napsal tento návod. Když na svém serveru ISPConfig nastavíte suPHP, budete moci spouštět skripty PHP pod uživatelem admin webu namísto www-data.
Důležité:Testoval jsem tento návod na serveru Debian Sarge s ISPConfig 2.2.11 a 4.3.10-19 pro Apache2, ale nezaručuji, že vám to bude fungovat!
Nejprve si vytvořte kopii souboru /etc/apache2/vhosts/Vhosts_ispconfig.conf. Zkopírujte jej například do /etc/apache2/vhosts/Vhosts_ispconfig-backup.conf.
Na výchozím serveru ISPConfig běží php4 jako modul. Vypněte jej příkazem:
a2dismod php4
Nyní odstraňte všechny položky phpadmin v původním souboru Vhosts_ispconfig.conf. Restartujte Apache:
/etc/init.d/apache2 restart
Protože jsme odstranili všechny položky phpadmin, neměli byste mít žádné chyby, když se Apache2 restartuje.
Nainstalujte suPHP jako DSO, proto musíme nainstalovat apxs (na Debian Sarge je to apxs2):
apt-get install apache2-prefork-dev
Nainstalujte PHP4-CGI:
apt-get install php4-cgi
cd /tmp
Nainstalujte suPHP, verze 0.6.2 je v tuto chvíli nejnovější stabilní verze:
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
Nahraďte řádky 324/325 těmito dvěma řádky níže (pokud používáte jinou verzi suPHP, čísla řádků se mohou lišit):
AP_INIT_ITERATE("suPHP_AddHandler", suphp_handle_cmd_add_handler, NULL, RSRC_CONF | ACCESS_CONF, "Říká mod_suphp, aby zpracovával tyto MIME typy"),
AP_INIT_ITERATE("suPHP_RemoveHandler", suphp_handle_cmd_remove_handler, NULL, RSRC_CONF | ACCESS_CONF, "Říká mod_suphp, aby nezpracovával tyto MIME typy"),
Poté zkompilujeme a nainstalujeme suPHP:
./configure --prefix=/usr --sysconfdir=/etc --with-apache-user=www-data --with-setid-mode=paranoid --with-apxs=/usr/bin/apxs2
make
make install
Zkopírujte soubor suphp.conf:
cp /tmp/suphp-0.6.2/doc/suphp.conf-example /etc/suphp.conf
Změňte obsah souboru /etc/suphp.conf pomocí příkazu:
vi /etc/suphp.conf
Mělo by to vypadat takto:
[globální]
;Cesta k souboru protokolu
logfile=/var/log/suphp.log
;Úroveň protokolu
loglevel=info
;Uživatel Apache běží jako
webserver_user=www-data
;Cesta všech skriptů musí být v
docroot=/
; Cesta k chroot() před provedením skriptu
;chroot=/mychroot
; Možnosti zabezpečení
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
;Zkontrolujte, zda je skript v DOCUMENT_ROOT_ROOT
=true
;Posílat menší chybové zprávy do prohlížeče
errors_to_browser=false
;Proměnná prostředí PATH
env_path=/bin:/usr/bin
;Umask pro nastavení, specifikujte v osmičkovém zápisu
umask=0077
; Minimální UID
min_uid=100
; Minimální GID
min_gid=100
[obslužné nástroje]
;Obslužný nástroj pro skripty php
x-httpd-php=php:/usr/bin/php4-cgi
;Obslužný program pro skripty CGI
x-suphp-cgi=execute:!self
Přidejte následující řádek do /etc/apache2/httpd.conf pomocí příkazu:
vi /etc/apache2/httpd.conf
LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so
Restartujte Apache pomocí příkazu:
/etc/init.d/apache2 restart
Upravte /home/admispconfig/ispconfig/lib/config.inc.php najděte řádek:
$go_info["server"]["apache2_php"] ='oba';
a změňte na:
$go_info["server"]["apache2_php"] ='suphp';
Nyní v rámci ISPConfig proveďte malou úpravu jednoho ze svých webů, aby ISPConfig zapsal nový soubor vhost. Například povolte cgi-skripty pro jednu z vašich webových stránek nebo podobně.
Ve vašem /etc/apache2/vhosts/Vhosts_ispconfig.conf uvidíte, že ISPConfig přepsal soubor, protože níže uvedené řádky jsou přidány pro každý jednotlivý web:
suPHP_Engine na
uživatelské jméno suPHP_UserGroup název skupiny
AddHandler x-httpd-php .php .php3 .php4 .php5
suPHP_AddHandler x-httpd-php
Důležité:neprovádějte žádné ruční změny v souboru /etc/apache2/vhosts/Vhosts_ispconfig.conf!
Když navážete připojení přes FTP, uvidíte, že na svém webu můžete nastavit jakákoli oprávnění:
Můžete také spouštět php skripty pod administrátorem webu namísto systémového uživatele www-data. To poskytuje administrátorovi webu větší komfort. suPHP je také velmi užitečné, když na svém webu provozujete CMS, jako je Joomla. S povoleným suPHP bude mít Joomla dostatek oprávnění, aby správně fungovala, zatímco administrátor webu má plnou kontrolu! V neposlední řadě je používání suPHP bezpečnější a profesionálnější řešení než použití chmod 777 pro váš web!
Pokud nechcete používat php4-cgi+suPHP pro konkrétní web na vašem serveru ISPConfig, existuje řešení. Přihlaste se ke svému serveru jako root a povolte modul php4 pro Apache2:
a2enmod php4Restartujte Apache2 pomocí:
/etc/init.d/apache2 force-reloadV rámci ISPConfig deaktivujte php a přidejte následující do pole direktiv Apache pro váš web:
AddType application/x-httpd-php .php .php3 .php4
php_admin_flag safe_mode OffNyní váš ISPConfig s Debian Sarge používá PHP4-mod a PHP4-CGI+suPHP. Ve většině situací budete potřebovat pouze PHP4-CGI+suPHP. Pokud však z nějakých důvodů nemůžete použít mechanismus suphp, můžete stále používat php4 jako modul pro daný web.
Kaktusy na serveru ISPConfig v 10 snadných krocích Jak spustit svůj vlastní jmenný server s ISPConfig a providerdomain.de (Schlund)Panels