CentOS 7上为PHP5安装suPHP的方法(彭哥)
CentOS7上PHP默认是以apache或者nobody的身份运行的,这种方式下由于PHP运行需要的权限比较大,会有安全隐患,还可能会受到服务器其他用户影响。
通过phpinfo查看PHP信息如下:
可以看出来,PHP目前是作为Apache的一部分在运行,而不会为每个脚本运行一个独立进程。如果希望PHP脚本运行时是以当前用户的身份而不是Apache,可以通过部署suPHP来实现。接下来介绍如何在CentOS7上安装suPHP。
先配置安装suphp所需的环境:
yum-ygroupinstall'DevelopmentTools'
yum-yinstallapr-devel
yum-yinstallhttpd-devel
下载suphp安装包:
mkdirtemp
cdtemp
wgethttp://suphp.org/download/suphp-0.7.2.tar.gz
tarzxvfsuphp-0.7.2.tar.gz
下载并安装suphp补丁:
wget-Opatchingsuphp.patchhttps://www.webhostinghero.com/downloads/php/suphp.patch
patch-Np1-dsuphp-0.7.2cdsuphp-0.7.2
autoreconf-if
运行./configure:
./configure--prefix=/usr/--sysconfdir=/etc/--with-apr=/usr
/bin/apr-1-config--with-apache-user=apache--with-setid-mode=owner
--with-logfile=/var/log/httpd/suphp_log
编译并安装:
make
makeinstall
在Apache配置目录下创建suphp.conf
vi/etc/httpd/conf.d/suphp.conf
并写入:
LoadModulesuphp_modulemodules/mod_suphp.so
/etc目录下创建suphp.conf配置文件:
vi/etc/suphp.conf
并写入配置文件内容如下:
[global]
;Pathtologfile
logfile=/var/log/httpd/suphp.log
;Loglevel
loglevel=info
;UserApacheisrunningas
webserver_user=apache
;Pathallscriptshavetobein
docroot=/
;Pathtochroot()tobeforeexecutingscript
;chroot=/mychroot
;Securityoptions
allow_file_group_writeable=true
allow_file_others_writeable=false
allow_directory_group_writeable=true
allow_directory_others_writeable=false
;CheckwheterscriptiswithinDOCUMENT_ROOT
check_vhost_docroot=true
;Sendminorerrormessagestobrowser
errors_to_browser=false
;PATHenvironmentvariable
env_path=/bin:/usr/bin
;Umasktoset,specifyinoctalnotation
umask=0077
;MinimumUID
min_uid=100
;MinimumGID
min_gid=100[handlers]
;Handlerforphp-scripts
x-httpd-suphp="php:/usr/bin/php-cgi"
;HandlerforCGI-scripts
x-suphp-cgi="execute:!self"
如果希望domainname这个目录以用户user身份运行,那么修改目录所有者属性为user,如下:
chown-R[user].[user]/var/www/html/[domainname]
最后在Apache配置文件中找到相应域名,并开启suphp:
SetHandlerNone
suPHP_Engineon
SetHandlerx-httpd-suphp
suPHP_AddHandlerx-httpd-suphp
最后重启Apache文件。通过info.php测试可以发现运行该域名的ServerAPI已经由Apache变成CGI/FastCGI了,如下图所示:
到这里我们即完成了CentOS为某个域名访问设置通过suphp的方式来运行,而不用默认的ApacheHandler运行。其他域名需要设置,按照以上步骤操作一遍即可。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。