Nginx

Nginx + php5-fpm = ‘找不到文件’

  • June 1, 2017

我在使用 nginx / fpm 設置站點時碰壁了。頁面顯示“找不到文件”,這齣現在 nginx error.log 中:

FastCGI sent in stderr: "Primary script unknown" while reading response header from upstream

我對 nginx 和 fpm 都是新手,並且該錯誤消息對我來說毫無意義(即使是Google機器也沒有幫助!)。任何人都可以闡明可能發生的事情嗎?

您應該有一個location部分來處理配置類似於此的 PHP 請求:

   location ~ \.php$ {
           try_files $uri =404;
           fastcgi_pass    127.0.0.1:9000;
           fastcgi_index   index.php;
           fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
           include         fastcgi_params;
   }

(額外try_files解決了一個安全漏洞,該漏洞可能允許任意文件作為 PHP 執行。)

另外,你root應該在server配置文件的section中定義,而不是locationsection。這是最常見的nginx 錯誤配置之一。

引用自:https://serverfault.com/questions/406158