咕噜咕噜.connect() to unix:/tmp/php.socket 失败


Nginx. connect() to unix:/tmp/php.socket failed

我正在尝试在我的ubuntu vm上设置nginx并尝试托管一个php网站。我正在尝试在我的 ubuntu vm 上复制服务器设置。当我尝试从我的nginx服务器访问php页面时,我收到此错误。我试图在/tmp/文件夹中查找 php.socket 文件,但里面什么都没有。我的虚拟机上的 FastCGI 或 PHP 是否有问题。

完整的错误如下:

[crit] 9267#0: *1 connect() to unix:/tmp/php.socket failed (2: No such file or directory) while connecting to upstream, client: 192.168.xxx.xxx, server: xxx.xxx.xxx.com, request: "GET /admin/ HTTP/1.1", upstream: "fastcgi://unix:/tmp/php.socket:", host: "xxx.xxx.xxx..com"

请帮忙。我不知道为什么会发生这种情况,因为我错过了一个包裹或其他东西。我猜我已经安装了所有内容,并且在本地服务器上具有与服务器相同的配置。

不要使用

unix 套接字,而是尝试使用 TCP''IP 连接:

location ~ .php$ { # fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_pass 127.0.0.1:9000; # ... }

这是针对 PHP5-FPM(可能是另一种选择),也许您必须使用端口 7777

我能够通过安装来解决问题:

php-fastcgi.

安装后,我运行了sudo/etc/init.d/php-fastcgi启动

然后它在/tmp 文件夹中创建了 php.socket 来解决这个问题。但是现在我尝试打开的页面需要很长时间才能打开,最后它给出了一个错误,说超时:

[错误] 28830#0:*5 上游超时(110:连接超时) 从上游读取响应标头时,客户端:192.168.xxx.xxx, 服务器:xxx.xxx.xxx.com,请求:"GET/admin/HTTP/1.1",上游: "fastcgi://unix:/tmp/php.socket:", 主机:"xxx.xxx.xxx.com"

我尝试通过将 proxy_read_timeout 的值更改为 proxy_read_timeout 300 来更改超时;在 nginx.conf 中

但这似乎并不能纠正问题。

如果你想使用带有套接字的php5-fpm,你应该根据需要配置/etc/php5/fpm/pool.d/www.conf

在nginx配置中使用例如:

fastcgi_pass unix:/var/run/php5-fpm.sock;

似乎您的nginx配置指向"错误"(不是默认)位置。

套接字应该比TCP快,因为没有开销。(也许必须正确配置插座才能获得最佳性能)