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


原理:

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

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

         另外,還可能跟 路徑或者 權限有關系,或者SCRIPT_FILENAME 變量沒有被正確的設置(這在nginx是最常見的原因)。

 

解決辦法:

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

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

2 修改文件權限

# 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

這時候需要  進入這個目錄  執行

chattr -i .user.ini 

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

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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM