CentOS 7安装PHP 7.x环境

CentOS 7安装PHP 7.x,两种选项httpd(apache)和nginx。

环境准备:

yum -y install centos-release-scl.noarch

方式一:httpd(apache)

yum -y install rh-php72 rh-php72-php rh-php72-php-fpm httpd

说明:使用php-fpm代替mod_php,fpm默认运行在900端口。

修改fpm端口方法

/etc/opt/rh/rh-php72/php-fpm.d/www.conf

listen = 127.0.0.1:9000

然后运行:

semanage port -a -t http_port_t -p tcp 9000

配置httpd

在/etc/httpd/conf.d/目录下创建新文件:

fpm.conf

# PHP scripts setup ProxyPassMatch ^/(.*.php)$ fcgi://127.0.0.1:9000/var/www/html

Alias / /var/www/html/

DirectoryIndex index.php

说明:apache将把所有以.php的文件传送给php-fpm服务。

验证

创建php文件:

vi /var/www/html/index.php 

内容:

<?php phpinfo() ?>

将新端口加入防火墙白名单。

方式二:nginx

nginx参考nginx安装

yum -y install rh-php72 rh-php72-php rh-php72-php-fpm

nginx与fastcgi的通信支持TCP和UNIX Socket。

TCP方式

/etc/nginx/conf.d/目录下找到nginx配置文件,将fastcgi_pass参数修改为127.0.0.1:9000。

编辑/etc/opt/rh/rh-php72/php-fpm.d/www.conf

user = nginx
group = nginx

说明:将user和group值设为nginx,listen值设为127.0.0.1:9000,与nginx配置文件fastcgi_pass参数保持一致。

然后运行

semanage port -a -t http_port_t -p tcp 9000

重启php-fpm、nginx。

Socket方式

创建socket描述符文件

sudo touch /var/run/php7.2-fpm.sock
sudo chown nginx:nginx /var/run/php7.2-fpm.sock
sudo chmod 666 /var/run/php7.2-fpm.sock

修改/etc/opt/rh/rh-php72/php-fpm.d/www.conf

listen = 127.0.0.1:9000
listen = //var/run/php7.2-fpm.sock

将user、group值设为nginx

user = nginx
group = nginx

说明:listen值为/var/run/php7.2-fpm.sock,与nginx配置文件fastcgi_pass参数保持一致。

将listen.owner、listen.group、listen.mode前的分号去掉,将listen.owner、listen.group值设为nginx

listen.owner = nginx
listen.group = nginx

修改nginx配置

location ~ .*\.(php|php5)?$ {
    #fastcgi_pass 127.0.0.1:9000;
    fastcgi_pass  unix:/var/run/php7.2-fpm.sock;
    fastcgi_index index.php;
    include fastcgi.conf;
}