Centos7安裝Ngxin+PHP7.2源碼編譯踩坑

今天重裝了PHP和nginx 發(fā)現(xiàn)他們之間的通訊是靠fpm來進行的,所以在安裝著兩者的同時也要安裝php-fpm
源碼編譯nginx參考我這篇文章:
http://www.itdecent.cn/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的執(zhí)行路徑
--with-config-file-path=/usr/local/php/etc   #執(zhí)行php的配置文件路勁,即php.ini路徑
--enable-fpm     #開啟fpm  
#    其他參數(shù)自行查閱 ./configure --help
  • make
    缺什么就用yum 安裝
  • make install

4、簡化php執(zhí)行命令
vi /etc/profile

##加上下面這句話
export PATH=/usr/local/php/bin:/usr/local/php/sbin:$PATH

保存然后執(zhí)行
source /etc/profile
安裝php成功!

配置fpm

進入/usr/local/php目錄


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結(jié)合

主要是下面這一部分會出現(xiàn)問題

location ~ \.php$ {
            root           /home/xue/www;
            fastcgi_pass   unix:/var/run/www/php-cgi.sock;# 替換fastcgi_pass   127.0.0.1:9000
            fastcgi_index  index.php;
            #fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            #include        fastcgi_params;
            include         fastcgi.conf;
        }

按照這樣配置,然后重啟nginx
然后訪問/home/xue/www 目錄下的index.php 會出現(xiàn)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文件

  • 查看這個文件的讀寫權(quán)限
shell>$ ls /var/run/www/php-cgi.sock  -l
image.png
  • 修改www.conf文件
    listen.mode = 0660 改為0666:
    image.png
  • 然后再重啟fpm ,在查看權(quán)限


    image.png

搞了一下午,終于解決問題了~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容