安装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,可以直接浏览了。
转载于:https://blog.51cto.com/guailele/598909