首頁  >  文章  >  後端開發  >  Nginx + PHP-fpm File not found.問題解決記錄

Nginx + PHP-fpm File not found.問題解決記錄

不言
不言原創
2018-04-23 17:22:5010616瀏覽

這篇文章介紹的內容是關於Nginx PHP-fpm File not found.問題解決記錄,有著一定的參考價值,現在分享給大家,有需要的朋友可以參考一下

現象確認:

開啟瀏覽器的開發者工具,查看請求資訊

<br>

HTTP/1.1 404 Not Found

Server: nginx/1.11. 10

Date: Fri, 20 Apr 2018 08:10:13 GMT

Content-Type: text/html; charset=UTF- 8

Transfer-Encoding: chunked

Connection: keep-alive

X-Powered-By: PHP/5.6.30

#說明結果是由FastCGI回傳的。

<br>

問題原因:

<br>

# 估計是跟權限有關係

<br>

相同的配置,使用以下兩個: 

/opt/local/share/nginx/html  
/opt/local/share/nginx/html/php

目錄都可以,但使用: 

/Users/xxx/Downloads/workForder

目錄卻不行。

透過 ls -l  查看權限,發現差異在於 

<br>

#
/Users/xxx/Downloads/workForder

目錄中的檔案沒有擴充屬性,也就是沒有@符號。

<br>

後來修改Nginx的靜態檔案root目錄到:

<br>

/Users/xxx/Downloads/workForder

存取出現:

403 forbidden錯誤

再看 nginx 403 ,找到問題原因了,需要修改設定檔中的user 和group。

nginx的格式是:<br>##

user 你的用户名/root owner;
比如:
user root owner;

PHP-fpm的分別修改:

<br>

user = root
group = owner

然後重新啟動。

PHP-fpm 本身沒有重啟的指令,比較坑!只能殺進程了。

<br>

設定檔:

        # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
        #

        location ~ \.php$ {
            root           /Users/xxx/Downloads/workForder;
           # root           /opt/local/share/nginx/html/php;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.php;
            include        fastcgi.conf;

         }

這裡只展示與PHP相關的部分。當我在設定中加入 

<br>
try_files $uri =404;
 后,就会看到由Nginx返回的:

<br>

<br>

#存取PHP檔案時,你可能會看到下面這樣的錯誤:

<br>

那是因為FastCGI沒有啟動,需要啟動:

sudo php-fpm  -D

而如果Nginx和PHP的都指向同一個目錄,那麼還是會看到:

File not found

#

以上是Nginx + PHP-fpm File not found.問題解決記錄的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn