安装nginx

可以使用yum安装yum install nginx nginx需要root启动,工作进程为nginx用户,nginx组

安装php7

可以使用yum安装yum install php 但是这样安装没有数据驱动PDO 所以考虑源码编译安装

  • 下载源码 curl -o php.tar.bz2 https://www.php.net/distributions/php-7.1.30.tar.bz2 或者 wget -O php.tar.bz2 https://www.php.net/distributions/php-7.1.30.tar.bz
  • 安装依赖 sudo yum install -y libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel gcc make gcc-c++

  • 解压进入解压目录 tar jxf php.tar.bz2

  • 配置 ./configure --prefix=/mnt/php7 --with-mysqli --with-iconv-dir --with-freetype-dir --with-jpeg-dir --with-png-dir --with-zlib --with-libxml-dir --enable-simplexml --enable-xml --disable-rpath --enable-bcmath --enable-soap --enable-zip --with-curl --enable-fpm --with-fpm-user=nginx --with-fpm-group=nginx --enable-mbstring --enable-sockets --with-gd --with-openssl --with-mhash --enable-opcache --disable-fileinfo

  • 安装 make && make install

配置php

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
# 1. 修改 /mnt/php7/etc/php-fpm.d/www.conf 启动用户/用户组
 23 user = nginx
 24 group = nginx
# 2. 修改php-fpm监听的sock文件
 36 listen = /run/php-fpm/www.sock
# 3. 修改sock文件权限 去掉注释
 49 listen.mode = 0666
 
# 4. 增加PID文件 修改 /mnt/php7/etc/php-fpm.conf
 17 pid = /run/php-fpm.pid

php-fpm命令

1
2
3
4
5
6
# 重启
sudo kill -usr2 `cat /var/run/php-fpm.pid`
# 关闭
sudo kill -INT `cat /var/run/php-fpm.pid`
# 启动
sudo /mnt/php7/sbin/php-fpm

测试php

1
2
3
<?php
    echo phpinfo();
?>

常见问题

php-fpm与nginx通信connect() to unix:/tmp/php-fpm.sock failed (13: Permission denied) 的解决方法 参照配置php第三步修改后关闭再启动php-fpm

php (13: Permission denied)的问题 或许是Redhat的权限的问题 sudo setenforce 0

参考资料

nginx php-fpm安装配置 php-fpm启动,重启,终止操作 源码安装 PHP 7.3