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

 更新时间:2020年02月03日 16:47:30   作者:彭哥  
这篇文章主要介绍了CentOS 7上为PHP5安装suPHP的方法,需要的朋友可以参考下

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]?|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运行。其他域名需要设置,按照以上步骤操作一遍即可。

您可能感兴趣的文章:

相关文章

  • 详解Linux上svn命令行批量操作

    详解Linux上svn命令行批量操作

    这篇文章主要介绍了详解Linux上svn命令行批量操作的相关资料,linux上的svn命令行批量添加或删除文件,需要的朋友可以参考下
    2017-07-07
  • centos6.6 下 安装 php7 + nginx环境的方法

    centos6.6 下 安装 php7 + nginx环境的方法

    这篇文章主要介绍了centos6.6 下 安装 php7 + nginx环境的方法,总结分析了centos6.6 安装 php7 + nginx环境的相关配置命令与操作技巧,需要的朋友可以参考下
    2020-03-03
  • Linux常见英文报错中文翻译(菜鸟必知)

    Linux常见英文报错中文翻译(菜鸟必知)

    这篇文章主要介绍了Linux常见英文报错中文翻译,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • linux线程的取消(终止)方法

    linux线程的取消(终止)方法

    下面小编就为大家带来一篇linux线程的取消(终止)方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01
  • Linux配置防火墙,开启80、3306端口的实例方法

    Linux配置防火墙,开启80、3306端口的实例方法

    在本篇文章里小编给大家整理的是关于Linux配置防火墙,开启80端口、3306端口的相关内容,需要的朋友们参考下。
    2020-02-02
  • 关于Linux命令行下的数学运算示例详解

    关于Linux命令行下的数学运算示例详解

    在Linux中直接使用数学运算符进行数学运算往往得不到我们想要的计算结果。要在Shell中进行数学运算,我们需要借助点小手段。下面这篇文章主要给大家介绍了关于Linux命令行下的数学运算的相关资料,需要的朋友可以参考下
    2018-05-05
  • centos 5 手动分区来安装系统的方法

    centos 5 手动分区来安装系统的方法

    近来我想体验一下centos系统,于是在虚拟机中安装了centos 5。
    2010-03-03
  • 详解Linux中搭建常用服务器

    详解Linux中搭建常用服务器

    本篇文章主要介绍了Linux中搭建常用服务器,主要包括telnet、DHCP、DNS、sendmail、FTP、web、samba有兴趣的可以了解一下。
    2016-12-12
  • 一步步教你如何编写Shell脚本

    一步步教你如何编写Shell脚本

    这篇文章主要介绍了关于如何编写Shell脚本的相关资料,文中介绍的非常详细,对大家具有一定的参考价值,需要的朋友下面跟着小编来一起学习学习吧。
    2017-04-04
  • apache服务器全局配置详解(全)

    apache服务器全局配置详解(全)

    apache服务器全局配置详解,介绍很多关于服务器相关的一些知识,用apache架设服务器的朋友可以收藏下
    2013-03-03

最新评论