No input file specified
這個提示大家第一想到的是404,
Nginx如果找不到訪問的目標文件就會提示該信息。
但今天我要說的問題并不是簡單的404問題,如果是文件路徑不對,這個很容易解決。怪異的是,只有訪問php的時候才會出現該提示,而且是偶爾出現,大多時候訪問正常。
環境是使用一鍵安裝包安裝的LNMP,網站為Discuz。
訪問靜態的圖片并不會出現該問題,那問題矛頭指向php。
我們以往的解決問題思路是,當遇到問題需要查看日志,正確的、錯誤的都要看。所以,在此看了nginx的錯誤日志,看了php-fpm的錯誤日志,并且把日志級別調整為debug,可惜的是沒有發現問題。
這條路走不通,那就用另外一種方法,到google搜,搜了很多文章,有的說是文件權限不對,有的說是open_basedir有限制,這兩種情況可以排除。
繼續搜,找到一篇更改cgi.fix_pathinfo參數的。
這個倒是有可能,所以不妨試試看,方法是編輯php.ini,找到cgi.fix_pathinfo,把該參數設定為1。注意,修改完該參數后,需要重啟php-fpm服務。
改完后,測試很久并未再出現Noinput file specified的提示,不知道是重啟php-fpm后情況好轉,還就是因為調整該參數的原因。
總之,這兩種情況我都懷疑,只好繼續觀察一下,看看時間久了會不會繼續出現。
對于cgi.fix_pathinfo參數,要想搞清楚它的作用,需要理解php中的pathinfo是什么(請大家自行搜索),不過設置cgi.fix_pathinfo為1的話,有個Nginx的安全隱患,但經測試新版本Nginx并沒出現問題。
總結
解決No input file specified問題的方法是,
修改php.ini中的cgi.fix_pathinfo參數的值為1。
-
Linux
+關注
關注
87文章
11304瀏覽量
209497 -
nginx
+關注
關注
0文章
149瀏覽量
12174
原文標題:Nginx的No input file specified
文章出處:【微信號:aming_linux,微信公眾號:阿銘linux】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論