![nginx php-fpm 随机/不稳定“未指定输入文件”错误](https://linux22.com/image/627660/nginx%20php-fpm%20%E9%9A%8F%E6%9C%BA%2F%E4%B8%8D%E7%A8%B3%E5%AE%9A%E2%80%9C%E6%9C%AA%E6%8C%87%E5%AE%9A%E8%BE%93%E5%85%A5%E6%96%87%E4%BB%B6%E2%80%9D%E9%94%99%E8%AF%AF.png)
我有一个页面,我没有使用重定向,只是直接转到/邀请/index.php?code=f13dc6c9be在浏览器中,它的运行时间约为 50%。
其余时间浏览器显示“未指定输入文件”且日志显示:
2014/02/25 11:21:24 [error] 5231#0: *1 FastCGI sent in stderr:
"Unable to open primary script:
/var/www/vhosts/app.web/public_html/invite/index.php (No such file or directory)"
while reading response header from upstream, client: 192.168.0.2,
server: app.web, request: "GET /invite/index.php?code=f13dc6c9be HTTP/1.1",
upstream: "fastcgi://127.0.0.1:9000", host: "app.web"
我知道之前有人问过类似的问题,在 Stack Overflow 上也有人问过,但他们大多都在解决这个问题。
唯一接近的是这个: https://stackoverflow.com/questions/7004161/random-no-input-files-specified-in-nginx-and-php-fpm
但是该rlimit_files
解决方案没有帮助,而且它位于我的本地开发服务器上,而且我是唯一访问该页面的人。
我正在使用 Ubuntu 12.04 和 nginx 1.4.5,并且页面通过 php-fpm 提供
知道为什么它只对其他所有请求有效吗?我只是按了 CTRL + R,没有 POST 或 GET,URL 也没有变化。只是刷新,错误就来了又去。
答案1
我实际上并没有为该站点设置不同的 php-fpm conf 文件,因此它默认为端口 9000,并与同一主机上的其他站点发生冲突。
为主机创建一个新的 php-fpm 文件解决了该问题,确保 php-fpm conf 中指定的端口与 nginx conf 中的端口匹配