文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

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

2022-06-04 23:18

关注

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

通过phpinfo查看PHP信息如下:

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

apache运行php

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

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

yum -y groupinstall 'Development Tools'
yum -y install apr-devel
yum -y install httpd-devel

下载suphp安装包:

mkdir temp
cd temp
wget http://suphp.org/download/suphp-0.7.2.tar.gz
tar zxvf suphp-0.7.2.tar.gz

下载并安装suphp补丁:

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:

./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_lzHlVuuPboeog

编译并安装:

make
make install

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

vi /etc/httpd/conf.d/suphp.conf

并写入:

LoadModule suphp_module modules/mod_suphp.so

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

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,如下:

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]?$">
SetHandlerzHlVuuPboe x-httpd-suphp
</FilesMatch>
suPHP_AddHandler x-httpd-suphp
</IfModule>

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

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

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

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     807人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     351人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     314人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     433人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     221人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯