配置Nginx和php-fpm用Sock套接字連接時,找不到php-fpm.sock的原因


php5.3之后的版本,php-fpm.conf里的listen的默認配置是127.0.0.1:9000,就不會生成php-fpm.sock,因此如果需要Nginx里的配置有鏈接tmp/php-fpm.sock的話,需要將listen的地址配置成和nginx的配置文件一致,同時保證這個路徑已經存在,這樣在啟動./php-fpm的時候,會在對應路徑上自動生成php-fpm.sock,例如:

 讓PHP-FPM使用Unix套接字

默認情況下監聽端口 9000 。 另外,也可以使PHP-FPM使用Unix套接字,這避免了TCP的開銷。要做到這一點,打開 /etc/php-fpm.d/www.conf…

vi /etc/php-fpm.d/www.conf

… 修改后如下:

[...]
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm/php5-fpm.sock
[...]

然后重新加載 PHP-FPM:

systemctl restart php-fpm.service

接下來通過你的nginx的配置和所有的虛擬主機和改線 fastcgi_pass 127.0.0.1:9000; to fastcgi_pass unix:/tmp/php5-fpm.sock;,像這樣:

vi /etc/nginx/conf.d/default.conf

[...]
    location ~ .php$ {
        root           /usr/share/nginx/html;
        try_files $uri =404;
        fastcgi_pass   unix:/var/run/php-fpm/php5-fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
[...]

最后重新加載 nginx:

systemctl restart nginx.service 

這樣配置好后,就會在/var/run/php-fpm/目錄下自動生成一個php5-fpm.sock文件,然后一切OK。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM