Jak nainstalovat suPHP na různé distribuce Linuxu pro použití s ISPConfig (2.2.20 a výše)
Počínaje verzí 2.2.20 má ISPConfig vylepšenou podporu pro suPHP. Tento článek vysvětluje, jak nainstalovat suPHP na různé distribuce podporované ISPConfig. (Pokud jste suPHP používali s předchozími verzemi ISPConfig, vaše instalace bude stále fungovat.)
Neposkytuji žádnou záruku, že to pro vás bude fungovat!
1 Debian Etch / Ubuntu 7.10
Pro Debian a Ubuntu balíček libapache2-mod-suphp existuje, ale problém s tímto balíčkem je, že nepodporuje direktivu suPHP_UserGroup (kterou používá ISPConfig), protože nebyl zkompilován pomocí --with-setid -mode=paranoidní přepínač. Proto musíme sestavit mod_suphp ručně.
Nejprve zakážeme normální modul PHP5 (jako root):
a2dismod php5
/etc/init.d/apache2 restart
Poté nainstalujeme předpoklady potřebné k sestavení mod_suphp:
apt-get install php5-cgi apache2-prefork-dev
Nyní si můžeme stáhnout a sestavit suPHP následovně:
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
provést instalaci
Nakonec přidáme modul suPHP do naší konfigurace Apache...
vi /etc/apache2/httpd.conf
LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so |
... a restartujte Apache:
/etc/init.d/apache2 restart
2 Fedora 8 / CentOS 5.1
Na Fedoře 8 a CentOS 5.1 musíme sestavit mod_suphp ručně ze stejných důvodů jako pro Debian a Ubuntu (suPHP_UserGroup).
Nejprve deaktivujeme normální modul PHP5:
vi /etc/httpd/conf.d/php.conf
Zakomentujte řádek LoadModule:
[...] #LoadModule php5_module modules/libphp5.so [...] |
Poté nainstalujeme předpoklady potřebné k sestavení mod_suphp:
yum install php-cli httpd-devel
Nyní si můžeme stáhnout a sestavit suPHP následovně:
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
provést
provést instalaci
Nakonec přidáme modul suPHP do naší konfigurace Apache...
vi /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so |
... a restartujte Apache:
/etc/init.d/httpd restart
3 Mandriva 2008.0
Na Mandriva 2008.0 musíme sestavit mod_suphp ručně ze stejných důvodů jako pro Debian a Ubuntu (suPHP_UserGroup).
Nejprve deaktivujeme normální modul PHP5:
vi /etc/httpd/modules.d/70_mod_php.conf
Zakomentujte řádek LoadModule:
<IfDefine HAVE_PHP5> <IfModule !mod_php5.c> #LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> [...] |
Poté nainstalujeme předpoklady potřebné k sestavení mod_suphp:
urpmi php-cgi apache-devel
Nyní si můžeme stáhnout a sestavit suPHP následovně:
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
provést
provést instalaci
Nakonec přidáme modul suPHP do naší konfigurace Apache...
vi /etc/httpd/modules.d/A36_mod_suphp.conf
LoadModule suphp_module modules/mod_suphp.so |
... a restartujte Apache:
/etc/init.d/httpd restart
4 OpenSUSE 10.3
OpenSUSE 10.3 přichází s balíčkem suPHP, který rozumí direktivě suPHP_UserGroup, takže jej nemusíme vytvářet sami.
Nejprve deaktivujeme normální modul PHP5. Otevřete /etc/sysconfig/apache2 a odeberte php5 z řádku APACHE_MODULES (aby vypadal podobně jako tento řádek – vaše moduly se mohou lišit, ale php5 již nesmí být uveden):
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" [...] |
Spustit
SuSEconfig
poté.
Nyní nainstalujeme suPHP následovně:
yast -i suphp
Dále přidáme suphp do řádku APACHE_MODULES v /etc/sysconfig/apache2, např. takhle:
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" [...] |
Balíčky suPHP OpenSUSE jsou dodávány s konfigurací suPHP, která umožňuje suPHP globálně. Proto musíme nyní tuto konfiguraci deaktivovat, abychom mohli povolit nebo zakázat suPHP v ISPConfig na základě jednotlivých webových stránek:
vi /etc/apache2/conf.d/mod_suphp.conf
V tomto souboru vše okomentujeme:
#<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> |
Nakonec spustíme:
SuSEconfig
/etc/init.d/apache2 restart
5 Konfigurace ISPConfig
Nakonec musíme říci ISPConfig, že by měl zapsat konfiguraci suPHP do Apache vhosts místo obvyklé konfigurace PHP. Za tímto účelem otevřeme konfigurační soubor ISPConfig /home/admispconfig/ispconfig/lib/config.inc.php a nastavíme $go_info["server"]["apache2_php"] na suphp:
vi /home/admispconfig/ispconfig/lib/config.inc.php
[...] $go_info["server"]["apache2_php"] = 'suphp'; [...] |
Nyní, kdykoli povolíte PHP pro webovou stránku v ISPConfig, ISPConfig zapíše konfiguraci suPHP do konfigurace vhost této webové stránky.
6 odkazů
- suPHP:http://www.suphp.org
- ISPConfig:http://www.ispconfig.org