前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >CentOS 7上为PHP5安装suPHP的方法(彭哥)

CentOS 7上为PHP5安装suPHP的方法(彭哥)

作者头像
砸漏
发布2020-10-21 17:57:05
6260
发布2020-10-21 17:57:05
举报
文章被收录于专栏:恩蓝脚本恩蓝脚本

CentOS 7上PHP默认是以apache或者nobody的身份运行的,这种方式下由于PHP运行需要的权限比较大,会有安全隐患,还可能会受到服务器其他用户影响。

通过phpinfo查看PHP信息如下:

apache运行php

可以看出来,PHP目前是作为Apache的一部分在运行,而不会为每个脚本运行一个独立进程。如果希望PHP脚本运行时是以当前用户的身份而不是Apache,可以通过部署suPHP来实现。接下来介绍如何在CentOS 7上安装suPHP。

先配置安装suphp所需的环境:

代码语言:javascript
复制
 yum -y groupinstall ‘Development Tools’ 
 yum -y install apr-devel 
 yum -y install httpd-devel
 

下载suphp安装包:

代码语言:javascript
复制
 mkdir temp
 cd temp
 wget http://suphp.org/download/suphp-0.7.2.tar.gz
 tar zxvf suphp-0.7.2.tar.gz
 

下载并安装suphp补丁:

代码语言:javascript
复制
 wget -O patchingsuphp.patch https://www.webhostinghero.com/downloads/php/suphp.patch
 patch -Np1 -d suphp-0.7.2 < patchingsuphp.patch
 cd suphp-0.7.2
 autoreconf -if
 

运行./configure:

代码语言:javascript
复制
 ./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
 

编译并安装:

代码语言:javascript
复制
 make
 make install
 

在Apache配置目录下创建suphp.conf

代码语言:javascript
复制
 vi /etc/httpd/conf.d/suphp.conf
 

并写入:

代码语言:javascript
复制
 LoadModule suphp_module modules/mod_suphp.so
 

/etc目录下创建suphp.conf配置文件:

代码语言:javascript
复制
 vi /etc/suphp.conf
 

并写入配置文件内容如下:

[global] ;Path to logfile logfile=/var/log/httpd/suphp.log ;Loglevel loglevel=info ;User Apache is running as webserver_user=apache ;Path all scripts have to be in docroot=/ ;Path to chroot() to before executing script ;chroot=/mychroot ; Security options allow_file_group_writeable=true allow_file_others_writeable=false allow_directory_group_writeable=true allow_directory_others_writeable=false ;Check wheter script is within DOCUMENT_ROOT check_vhost_docroot=true ;Send minor error messages to browser errors_to_browser=false ;PATH environment variable env_path=/bin:/usr/bin ;Umask to set, specify in octal notation umask=0077 ; Minimum UID min_uid=100 ; Minimum GID min_gid=100 [handlers] ;Handler for php-scripts x-httpd-suphp=”php:/usr/bin/php-cgi” ;Handler for CGI-scripts x-suphp-cgi=”execute:!self”

如果希望domainname这个目录以用户user身份运行,那么修改目录所有者属性为user,如下:

代码语言:javascript
复制
 chown -R [user].[user] /var/www/html/[domainname]
 

最后在Apache配置文件中找到相应域名,并开启suphp:

<FilesMatch “.+\.ph(p[345]?|t|tml)$”> SetHandler None </FilesMatch> <IfModule mod_suphp.c> suPHP_Engine on <FilesMatch “\.php[345]?$”> SetHandler x-httpd-suphp </FilesMatch> suPHP_AddHandler x-httpd-suphp </IfModule>

最后重启Apache文件。通过info.php测试可以发现运行该域名的Server API已经由Apache变成CGI/FastCGI了,如下图所示:

到这里我们即完成了CentOS为某个域名访问设置通过suphp的方式来运行,而不用默认的Apache Handler运行。其他域名需要设置,按照以上步骤操作一遍即可。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2020-09-11 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档