Centos7安装Ngxin+PHP7.2源码编译踩坑

今天重装了PHP和nginx 发现他们之间的通讯是靠fpm来进行的,所以在安装着两者的同时也要安装php-fpm
源码编译nginx参考我这篇文章:
https://www.jianshu.com/p/933734786da8
然后开始安装php 1、下载
wget https://www.php.net/distributions/php-7.2.20.tar.bz2
2、解压
tar -xjvf php-7.2.20.tar.bz2
3、源码编译三部曲(./configure 、make 、make install)

  • 生成配置
    进入目录php-7.2.20
./configure --prefix=/usr/local/php#安装之后php的执行路径 --with-config-file-path=/usr/local/php/etc#执行php的配置文件路劲,即php.ini路径 --enable-fpm#开启fpm #其他参数自行查阅 ./configure --help

  • make
    缺什么就用yum 安装
  • make install
4、简化php执行命令
vi /etc/profile
##加上下面这句话 export PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH

保存然后执行
source /etc/profile
安装php成功!
配置fpm 进入/usr/local/php目录

Centos7安装Ngxin+PHP7.2源码编译踩坑
文章图片
image.png
##php-fpm.conf shell>$ cp./etc/php-fpm.conf.default./etc/php-fpm.conf ##www.conf shell>$ cp ./etc/php-fpm.d/www.conf.default ./etc/php-fpm.d/www.conf

1、配置php-fpm.conf
进入php-fpm.conf文件,修改为自己想要放置的路径,这里每次fpm启动都会有一个pid
pid = /home/xue/study/soft/php/var/run/php-fpm.pid

2、配置www.conf
进入php-fpm.d/www.conf文件,找到listen=127.0.0.1:9000,修改为如下
/var/run/www/php-cgi.sock

启动fpm
/usr/local/php/sbin/php-fpm
启动成功
开始配置nginx和PHP的fpm结合 主要是下面这一部分会出现问题
location ~ \.php$ { root/home/xue/www; fastcgi_passunix:/var/run/www/php-cgi.sock; # 替换fastcgi_pass127.0.0.1:9000 fastcgi_indexindex.php; #fastcgi_paramSCRIPT_FILENAME$document_root$fastcgi_script_name; #includefastcgi_params; includefastcgi.conf; }

按照这样配置,然后重启nginx
然后访问/home/xue/www 目录下的index.php 会出现50.html错误页面
cat /usr/local/nginx/logs/error.log
查看日志之后报错如下:
2019/08/16 16:24:57 [crit] 27457#0: *55 connect() to unix:/var/run/www/php-cgi.sock failed (13: Permission denied) while connecting to upstream, client: 192.168.1.71, server: localhost, request: "GET /index.php HTTP/1.1", upstream: "fastcgi://unix:/var/run/www/php-cgi.sock:", host: "192.168.1.78"
解决办法:
启动fpm成功之后会在/var/run/www目录下有一个php-cgi.sock文件
  • 查看这个文件的读写权限
shell>$ ls /var/run/www/php-cgi.sock-l

Centos7安装Ngxin+PHP7.2源码编译踩坑
文章图片
image.png
  • 修改www.conf文件
    listen.mode = 0660 改为0666:
    Centos7安装Ngxin+PHP7.2源码编译踩坑
    文章图片
    image.png
  • 然后再重启fpm ,在查看权限

    Centos7安装Ngxin+PHP7.2源码编译踩坑
    文章图片
    image.png
【Centos7安装Ngxin+PHP7.2源码编译踩坑】搞了一下午,终于解决问题了~

    推荐阅读