轉自:http://www.cnblogs.com/baochuan/archive/2012/05/06/2445822.htmlphp
介紹html
錯誤:這裏報出文件不存在。框架
思考過程:函數
一、我原覺得是程序裏沒有這個文件呢,結果發現,文件是有的,那是怎麼回事?php-fpm
二、後來我再猜是否是php內核有問題,我把php的相關內核文件看了一遍,也沒發現問題。結果我就把整個過程跟項目經理說去了。——事情也沒解決,就這樣先不了了之。升級的事情先耽誤着。測試
今天又發現這個問題,我第一反應是php版本是否是升級了,發現沒有。——後來把整個目錄設置成777就沒事了(chmod 777 -R 目錄)。我想是否是file_exists()方法問題。spa
因此,我就進行了相關的調試和實驗。 3d
目錄:調試
觀察各個權限:test對www是沒有任何權限的,而執行文件index.php有讀寫執行權限,包含文件test.txt有讀寫權限。htm
運行結果:
既然成功了,說明file_exists()函數是受目錄權限的限制的。
那什麼樣的目錄權限影響file_exists()呢?
我作了幾個實驗:
一、文件的任何上級目錄,只有寫權限時報文件不存在;
二、文件的任何上級目錄,只有讀權限時也報文件不存在;
三、而當全部上級目錄都有執行權限的時候,報文件是存在的,一切都正常。
結果,說明file_exists()在判斷文件是否存在的時候是遞歸判斷每一個目錄是否是有執行權限。
修改文件路徑爲相對路徑,得出同樣的結果。