LNMP的403問題總結

科技探索者發表於2017-11-13

這兩天,筆者在搭建完LNMP環境之後,想要在這個環境下繼續安裝wordpress,然而不論是使用瀏覽器訪

問還是使用 curl 測試,一直顯示403,在經過多方資料的收集與高人的指點,終於解決,下面來總結一

下nginx常見403問題的原因與解決方法。


一、許可權問題


nginx 的預設使用者是nobody,如果我們用的是root或者其它使用者的話,會沒有許可權,從而顯示403。因

此,我們需要在配置檔案/usr/local/nginx/conf/nginx.conf中加一條 user nobody nobody;


二、php索引問題


在虛擬主機配置檔案中,我們一定要定義一個php的索引配製檔案,不然nginx將不支援php的解析,從而

403。


配置檔案如下:


server

{

    listen 80;

    server_name 114.215.129.177;

    index index.html index.htm index.php;

    root /data/www;


    location ~ .php$ {

        include fastcgi_params;

       #fastcgi_pass 127.0.0.1:9000;

        fastcgi_pass unix:/tmp/php-fcgi.sock;

        fastcgi_index index.php;

        fastcgi_param SCRIPT_FILENAME /data/www$fastcgi_script_name;

     }

}


三、路徑錯誤


同樣是在上面的配置檔案中,我們如果想要安裝wordpress或者discuz這樣的軟體的話,將它放入指定的

目錄之後,一定要在配置檔案中修改相應的配置,比如筆者所放入的目錄是/data/www,所以在配置檔案

中也要在相應的地方設定成/data/www,同理,我們在測試php解析的時候,也要將配置檔案中的路徑改

成測試php檔案的存放路徑

 

四、預設主機的限制


通常,我們在LNMP環境中,為了安全起見,會定義一個預設虛擬主機的檔案,裡面會有一些限制,可能

會使我們的訪問403


預設主機的配置內容如下:


server

{

   listen 80 default_server;

   server_name 114.215.129.177;

   index index.html index.htm index.php;

   root /tmp/tmp;

   deny all;

}


注意:這裡同樣也需要php的索引,而且root對應的目錄/tmp/tmp/一定要有(例)


筆者就是因為這裡的deny的限制,從而訪問顯示403,我們可以將其改成allow


五、其它錯誤


除了上面例舉的一些常規錯誤外,還有非常規的錯誤,比如我,導致所有的

網站連結被重置,導致了324的錯誤,不能返回資料

本文轉自奇蹟的少年部落格51CTO部落格,原文連結http://blog.51cto.com/raffaelexr/1730551如需轉載請自行聯絡原作者

liliangchun


相關文章