我正在尝试在我的ubuntu虚拟机上设置nginx并尝试托管一个php网站。我试图在我的ubuntu虚拟机上复制服务器设置。当我尝试从我的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"
请帮忙。我不知道为什么会发生这种情况我错过了一个包或什么的。我已经安装了所有东西,并且在我的本地服务器上有相同的配置。
答案 0 :(得分:2)
尝试使用TCP \ IP连接:
,而不是使用unix套接字 location ~ .php$ {
# fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_pass 127.0.0.1:9000;
# ...
}
这适用于PHP5-FPM(可能是另一种选择),也许你必须使用端口7777
答案 1 :(得分:1)
我能够通过安装来解决问题:
PHP-fastcgi的。
安装完毕后我跑了sudo /etc/init.d/php-fastcgi start
然后它在/ 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:",host:" xxx.xxx.xxx.com"
我尝试通过将proxy_read_timeout的值更改为proxy_read_timeout 300
来更改超时;在nginx.conf中
但这似乎无法解决问题。
答案 2 :(得分:0)
如果你想在套接字上使用php5-fpm,你应该根据需要配置/etc/php5/fpm/pool.d/www.conf
。
在nginx配置中使用例如:
fastcgi_pass unix:/var/run/php5-fpm.sock;
看起来你的nginx配置指向“错误”(非默认)位置。
套接字应该比TCP快,因为没有开销。 (可能必须正确配置套接字以提供最佳性能)