如何在各种Linux发行版上安装suPHP以使用ISPConfig(2.2.20及以上)
版本1.0
作者:Falko Timme
从版本2.2.20开始, ISPConfig已经改进了对suPHP的支持。 本文介绍如何在ISPConfig支持的各种发行版上安装suPHP。 (如果您已将suPHP与以前的ISPConfig版本一起使用,则安装仍然可以正常工作。)
我不会保证这将为您工作!
1 Debian Etch / Ubuntu 7.10
对于Debian和Ubuntu, libapache2-mod-suphp软件包
存在,但是该软件包的问题是它不支持suPHP_UserGroup
指令(由ISPConfig使用),因为它没有使用--with-setid进行
编译-mode =偏执
开关。 因此,我们必须手动构建mod_suphp。
首先我们禁用正常的PHP5模块(以root用户身份):
a2dismod php5
/etc/init.d/apache2 restart
然后我们安装构建mod_suphp所需的先决条件:
apt-get install php5-cgi apache2-prefork-dev
现在我们可以下载和构建suPHP如下:
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
最后,我们将suPHP模块添加到我们的Apache配置...
vi /etc/apache2/httpd.conf
LoadModule suphp_module /usr/lib/apache2/modules/mod_suphp.so |
...并重新启动Apache:
/etc/init.d/apache2 restart
2 Fedora 8 / CentOS 5.1
在Fedora 8和CentOS 5.1上,由于与Debian和Ubuntu( suPHP_UserGroup
)相同的原因,我们必须手动构建mod_suphp。
首先我们禁用正常的PHP5模块:
vi /etc/httpd/conf.d/php.conf
注释掉LoadModule
行:
[...] #LoadModule php5_module modules/libphp5.so [...] |
然后我们安装构建mod_suphp所需的先决条件:
yum install php-cli httpd-devel
现在我们可以下载和构建suPHP如下:
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
最后,我们将suPHP模块添加到我们的Apache配置...
vi /etc/httpd/conf.d/suphp.conf
LoadModule suphp_module modules/mod_suphp.so |
...并重新启动Apache:
/etc/init.d/httpd restart
3 Mandriva 2008.0
在Mandriva 2008.0中,由于与Debian和Ubuntu( suPHP_UserGroup
)相同的原因,我们必须手动构建mod_suphp。
首先我们禁用正常的PHP5模块:
vi /etc/httpd/modules.d/70_mod_php.conf
注释掉LoadModule
行:
<IfDefine HAVE_PHP5> <IfModule !mod_php5.c> #LoadModule php5_module extramodules/mod_php5.so </IfModule> </IfDefine> [...] |
然后我们安装构建mod_suphp所需的先决条件:
urpmi php-cgi apache-devel
现在我们可以下载和构建suPHP如下:
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
最后,我们将suPHP模块添加到我们的Apache配置...
vi /etc/httpd/modules.d/A36_mod_suphp.conf
LoadModule suphp_module modules/mod_suphp.so |
...并重新启动Apache:
/etc/init.d/httpd restart
4 OpenSUSE 10.3
OpenSUSE 10.3附带了一个可以理解suPHP_UserGroup指令的suPHP包,所以我们不必自己构建它。
首先我们禁用正常的PHP5模块。 打开/ etc / sysconfig / apache2
并从APACHE_MODULES
行删除php5
(这样它看起来类似于这一行 - 你的模块可能会有所不同,但是php5
不能被列出):
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" [...] |
跑
SuSEconfig
之后。
现在我们安装suPHP如下:
yast -i suphp
接下来我们在/ etc / sysconfig / apache2
中的APACHE_MODULES
行添加suphp
,例如:
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" [...] |
OpenSUSE的suPHP软件包带有suPHP配置,可以在全局启用suPHP。 因此,我们现在必须禁用此配置,以便我们可以在每个网站的基础上在ISPConfig中启用或禁用suPHP:
vi /etc/apache2/conf.d/mod_suphp.conf
在该文件中,我们会注释掉所有内容:
#<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> |
最后我们运行:
SuSEconfig
/etc/init.d/apache2 restart
5配置ISPConfig
最后,我们必须告诉ISPConfig它应该写一个suPHP配置到Apache vhosts而不是通常的PHP配置。 为此,我们打开ISPConfig的配置文件/home/admispconfig/ispconfig/lib/config.inc.php
,并将$ go_info [“server”] [“apache2_php”]
设置为suphp
:
vi /home/admispconfig/ispconfig/lib/config.inc.php
[...] $go_info["server"]["apache2_php"] = 'suphp'; [...] |
现在,只要您在ISPConfig中为网站启用PHP,ISPConfig将向该网站的vhost配置写入一个suPHP配置。
6链接
- suPHP: http : //www.suphp.org
- ISPConfig: http : //www.ispconfig.org