CentOS 7上PHP默认是以apache或者nobody的身份运行的,这种方式下由于PHP运行需要的权限比较大,会有安全隐患,还可能会受到服务器其他用户影响。
通过phpinfo查看PHP信息如下:
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_log
编译并安装:
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]">
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运行。其他域名需要设置,按照以上步骤操作一遍即可。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- Dragon Beauties小龙女《爱的奇迹》[320K/MP3][30.85MB]
- 魔兽世界奥杜尔团本竞速赛奖金有多少 奥杜尔团本竞速赛奖金介绍
- 暗喻幻想大沙虫巢穴怎么过 暗喻幻想大沙虫巢穴收集攻略
- 暗喻幻想食人洞穴怎么过 暗喻幻想食人洞穴收集攻略
- 锦绣二重唱《情比姊妹深》[原抓WAV+CUE]
- 碧娜《别太晚回家》[原抓WAV+CUE]
- 伽菲珈而《响往Vol.1》24K金碟限量首版[原抓WAV+CUE]
- 《超级马里奥派对:空前盛会》新作解锁!发售宣传片现已公开
- 任天堂Switch公布8周年:新主机何时来?
- 玩家反馈Switch固件更新有严重问题!待机过热 耗电多
- 唐俪.2023-月下再相逢【豪记】【WAV+CUE】
- 群星.2000-杨贵妃主题曲原声大碟【环球】【WAV+CUE】
- 钟镇涛.1994-情歌对唱集·寂寞【飞碟】【WAV+CUE】
- B10Y《We Are B10Y》[320K/MP3][250.22MB]
- B10Y《We Are B10Y》[FLAC/分轨][640.5MB]