【LNMP】提示Nginx PHP 「No input file specified」錯誤的解決辦法

原理:php

         任何對.php文件的請求,都簡單地交給php-cgi去處理,但沒有驗證該php文件是否存在。nginx

         PHP文件不存在,沒辦法返回普通的404錯誤,它返回 一個404,並帶上一句」No input file specified」spa

         另外,還可能跟 路徑或者 權限有關係,或者SCRIPT_FILENAME 變量沒有被正確的設置(這在nginx是最多見的緣由)。rest

 

解決辦法:日誌

1 打開文件: usr/local/php/etc/php.ini,修改如下配置code

  • cgi.fix_pathinfo=0           改成    cgi.fix_pathinfo=1
  • ;cgi.force_redirect=1     改成    cgi.force_redirect=0

2 修改文件權限blog

# cd /home/wwwroot
# chown -R www:www ./*
# chmod -R 755 ./*
# lnmp restart

當執行的時候。若是個別項目裏邊有 .user.ini 文件。會提示遞歸

chown: changing ownership of ‘./www.test.com/.user.ini’: Operation not permitted

這時候須要  進入這個目錄  執行ip

chattr -i .user.ini 

而後 進入到wwwroot目錄  , 再執行權限命令,最後別忘了,進入www.test.com 目錄,執行ci

chattr +i .user.ini 

 最後重啓

lnmp restart

搞定!

 

補充:Linux chattr 命令,用於改變文件屬性。

這項指令可改變存放在ext2文件系統上的文件或目錄屬性,這些屬性共有如下8種模式:

  1. a:讓文件或目錄僅供附加用途。
  2. b:不更新文件或目錄的最後存取時間。
  3. c:將文件或目錄壓縮後存放。
  4. d:將文件或目錄排除在傾倒操做以外。
  5. i:不得任意更動文件或目錄。
  6. s:保密性刪除文件或目錄。
  7. S:即時更新文件或目錄。
  8. u:預防之外刪除。

語法

chattr [-RV][-v<版本編號>][+/-/=<屬性>][文件或目錄...]

參數

  •        -R 遞歸處理,將指定目錄下的全部文件及子目錄一併處理。
  •   -v<版本編號> 設置文件或目錄版本。
  •   -V 顯示指令執行過程。
  •   +<屬性> 開啓文件或目錄的該項屬性。
  •   -<屬性> 關閉文件或目錄的該項屬性。
  •   =<屬性> 指定文件或目錄的該項屬性。

 

實例

        用chattr命令防止系統中某個關鍵文件被修改:

chattr +i /etc/resolv.conf

lsattr /etc/resolv.conf

     會顯示以下屬性

----i-------- /etc/resolv.conf

讓某個文件只能往裏面追加數據,但不能刪除,適用於各類日誌文件:

chattr +a /var/log/messages
相關文章
相關標籤/搜索