我有一个CentOS
、Apache
和Nginx
安装。它使用php 5
处理程序作为 fcgi。此服务器使用WHM cpanel
和easyapache
。fcgi
通过使用 进行应用easyapache
。这些安装由我的托管公司完成。当我向其中添加以下代码时,Nginx vhost
出现No such file or directory
错误。
location ~ .php$ { try_files $uri /index.php; include fastcgi_params; fastcgi_pass unix:/var/run/php5-fpm.sock;
.sock
当我在服务器中搜索文件时,它不显示.sock
扩展文件。如何fastcgi_pass
在此 VPS 中找到正确的目录和文件?
答案1
我的猜测是php-fpm
守护进程肯定绑定到 TCP 端口而不是 Unix 套接字。
打开你的www.conf
文件并检查是否有如下内容:
listen = 127.0.0.1:9000
和/或:
netstat -anp | grep -i fpm | grep -i listen
tcp 0 0 127.0.0.1:9000 0.0.0.0:* LISTEN 2640/php-fpm
在我的 CentOS 6.5 上,文件www.conf
位于此处:/etc/php-fpm.d/www.conf
。它可能位于您系统上的其他位置。搜索它!
如果php-fpm
绑定到 TCP 端口,您有 2 个选项:
选项1 :
保持www.conf
不变:
listen = 127.0.0.1:9000
但请Nginx vhost
像这样修改:
fastcgi_pass 127.0.0.1:9000;
选项 2:
保持Nginx vhost
不变:
fastcgi_pass unix:/var/run/php-fpm.sock;
但请www.conf
像这样修改:
;listen = 127.0.0.1:9000
listen = /var/run/php-fpm.sock;