使用套接字将PHP请求传递给PHP-FPM

时间:2014-06-23 09:44:47

标签: nginx fastcgi php

我试图在运行gunicorn的服务器上设置linux-dash,使用nginx作为反向代理。我尝试按照建议here设置配置文件。 每次我尝试在浏览器中打开一个php脚本时,都会抛出一个" 404 not found "错误。据我所知,配置文件中的以下块负责它。

location ~ \.php(/|$) {
    fastcgi_split_path_info ^(.+?\.php)(/.*)$;
    fastcgi_pass unix:/run/php5-fpm.sock;
    #fastcgi_pass localhost:9000; # using TCP/IP stack
    if (!-f $document_root$fastcgi_script_name) {
        return 404;
    }
    try_files $uri $uri/ /index.php?$args;
    include fastcgi_params;
}

有人可以帮我理解if块中的条件实际意味着什么吗?我哪里错了?
就location指令而言,我从中理解的是它试图找出是否需要执行php脚本并相应地将路径拆分为脚本,并以某种方式使用fastcgi在浏览器上运行该脚本。如果我错了,请纠正我,并提供更好的理解。

1 个答案:

答案 0 :(得分:0)

正在检查文件是否存在。确保路径存在。您应该尝试使用try_files

http://wiki.nginx.org/Pitfalls#Check_IF_File_Exists

http://wiki.nginx.org/NginxHttpCoreModule#try_files