掃二維碼與項目經理溝通
我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流
centos 7上PHP默認是以apache或者nobody的身份運行的,這種方式下由于PHP運行需要的權限比較大,會有安全隱患,還可能會受到服務器其他用戶影響。

通過phpinfo查看PHP信息如下:
apache運行php
可以看出來,PHP目前是作為Apache的一部分在運行,而不會為每個腳本運行一個獨立進程。如果希望PHP腳本運行時是以當前用戶的身份而不是Apache,可以通過部署suPHP來實現(xiàn)。接下來介紹如何在CentOS 7上安裝suPHP。
先配置安裝suphp所需的環(huán)境:
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配置目錄下創(chuàng)建suphp.conf
vi /etc/httpd/conf.d/suphp.conf
并寫入:
LoadModule suphp_module modules/mod_suphp.so
/etc目錄下創(chuàng)建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:
SetHandler None
suPHP_Engine on
SetHandler x-httpd-suphp
suPHP_AddHandler x-httpd-suphp
最后重啟Apache文件。通過info.php測試可以發(fā)現(xiàn)運行該域名的Server API已經由Apache變成CGI/FastCGI了,如下圖所示:
到這里我們即完成了CentOS為某個域名訪問設置通過suphp的方式來運行,而不用默認的Apache Handler運行。其他域名需要設置,按照以上步驟操作一遍即可。
成都創(chuàng)新互聯(lián)科技有限公司,是一家專注于互聯(lián)網、IDC服務、應用軟件開發(fā)、網站建設推廣的公司,為客戶提供互聯(lián)網基礎服務!
創(chuàng)新互聯(lián)(www.cdcxhl.com)提供簡單好用,價格厚道的香港/美國云服務器和獨立服務器。創(chuàng)新互聯(lián)成都老牌IDC服務商,專注四川成都IDC機房服務器托管/機柜租用。為您精選優(yōu)質idc數(shù)據中心機房租用、服務器托管、機柜租賃、大帶寬租用,可選線路電信、移動、聯(lián)通等。

我們在微信上24小時期待你的聲音
解答本文疑問/技術咨詢/運營咨詢/技術建議/互聯(lián)網交流