安装suphp之前,要安装apr及php要以php-cgi模式运行才行,但安装php以php-

cgi模式运行,必须先安装fastcgi,所以

1、安装fastcgi


wget http://jaist.dl.sourceforge.net/sourceforge/mod-

fcgid/mod_fcgid.2.2.tgz
wget http://www.fastcgi.com/dist/mod_fastcgi-2.4.6.tar.gz

安装mod_fcgid和mod_fastcgi

tar zxvf mod_fcgid.2.2.tgz
cd mod_fcgid.2.2
make              (这一步之前要编辑一下Makefile文件,把top_dir改成你的

apache安装目录,不然不能make)
make install

安装前打开Makefile这个文件,把里面的top_dir = /usr/local/apache 也就是

你apache的安装目录,这样做,生成的mod_fastcgi.so文件会自动放到apache的

modules文件中。

tar zxvf mod_fastcgi-2.4.6.tar.gz
cd mod_fastcgi-2.4.6
cp Makefile.AP2 Makefile
make(这一步之前要编辑一下Makefile文件,把top_dir改成你的apache安装目录

,不然不能make)
make install

跟上面一样:安装前打开Makefile这个文件,把里面的top_dir =

/usr/local/apache 也就是你apache的安装目录,这样做,生成的mod_fcgid.so

文件会自动放到apache的modules文件中。

2、安装apr
[root@CentOS suphp-0.7.0]#  yum install apr

3、安装php以cgi模式
[root@CentOS php-5.2.14]# ./configure --prefix=/usr/local/php  --with-

mysql=/usr/local/mysql --with-config-file-path=/usr/local/php/etc --

with-libxml-dir --with-gd --with-jpeg-dir --with-png-dir --with-

freetype-dir --with-iconv-dir --disable-ipv6 --enable-fastcgi

[root@CentOS php-5.2.14]# make && make install

注意: 编译参数不能加 –with-apxs2=/usr/local/apache2/bin/apxs 否则安装

出来的php执行文件是cli模式,也就是命令模式。

还有一点就是先前,php我是装过的,装的是cli模式的,安装cgi模式前,我没有

把安装目录中的原文件删除,所以我的bin目录里面有二个,一个php的命令模式

,一个fastcgi模式。

安装完后,查看一下。

/usr/local/php/bin/php -v


本篇文章来源于 Linux公社网站(www.linuxidc.com)  原文链接:

http://www.linuxidc.com/Linux/2010-09/28631.htm

3、安装suphp
[root@CentOS suphp-0.7.0]# ./configure --prefix=/usr/local/suphp --

sysconfdir=/usr/local/suphp/etc --with-apache-user=apache --with-setid

-mode=paranoid -- with-apxs=/usr/local/apache/bin/apxs --with-

apr=/usr/local/apache/bin/apr-1-config
[root@CentOS suphp-0.7.0]# make
[root@CentOS suphp-0.7.0]# make install
[root@CentOS suphp-0.7.0]# make clean
[root@CentOS suphp-0.7.0]# mkdir /usr/local/suphp/etc
[root@CentOS suphp-0.7.0]# cp doc/suphp.conf-example

/usr/local/suphp/etc/suphp.conf
[root@CentOS suphp-0.7.0]# vi /usr/local/suphp/etc/suphp.conf
修改位置如下:
logfile=/var/log/httpd/suphp.log
webserver_user=apache
docroot=/data/wwwroot  (这个要改成你放站点的目录的)
x-httpd-php="php:/usr/local/php/bin/php-cgi"
umask=0033或umask=0022
umask=0077这个是默认的

整合apache
注销所有原先php和apache的配置选项,包括模块
# vi /etc/httpd/conf.d/suphp.conf
####--------------
LoadModule suphp_module modules/mod_suphp.so

 

比如这里的一个虚拟主机的配置文件:

 <VIRTUALHOST *:80> 

2 ServerName packetsense.net 

3 ServerAlias www.packetsense.net 

4 DocumentRoot /home/packetsense/www/ 

5 </VIRTUALHOST>

想要这个网站运行于suPHP之下,只要在这段配置中加入下面四行就行了。
1、 suPHP_Engine on 

2、suPHP_UserGroup username groupname 

3、AddHandler x-httpd-php .php .php3 .php4 .php5 

4、suPHP_AddHandler x-httpd-php

注意,username和groupname请修改为该网站的用户名和所在的用户组。最后一步

重启Apache
我们的配置就到这儿啦,重启一下Apache吧。

service httpd restart


今天发现有用户反映使用php程序上传的文件属性都是600,造成无法在网页上浏

览,经过检查发现是 suphp的相关设置造成,对suphp的配置文件suphp.conf中的

umask=0077 修改为umask=0033 然后保存并 重启apache,这样php程序上传的文

件权限即可变为644,可以直接浏览了。