2011-10-27 50 views
1

任何人都知道什麼是錯誤的,我正在運行Ubuntu(服務器),並已安裝apache 2.2.14-5和php 5.3.2-1。當訪問test.php文件時,我得到一個HTTP 500錯誤。這裏是我在我的error.log我無法運行Phpass測試

[Thu Oct 27 16:15:41 2011] [error] [client myip] PHP Warning: Unknown: failed to open stream: Permission denied in Unknown on line 0 
[Thu Oct 27 16:15:41 2011] [error] [client myip] PHP Fatal error: Unknown: Failed opening required '/blob/public_html/phpass-0.3/test.php' (include_path='.:/usr/share/php:/usr/share/pear') in Unknown on line 0 

任何人都知道如何設置PHPass?

編輯:做了一個更簡單的測試:http://pastebin.com/TWq3C9Km,產生了與上面相同的錯誤。

EDIT2:我縮小了是什麼原因導致這些錯誤的代碼下面幾行:

if(is_readable('/dev/urandom') && ($fh = @fopen('/dev/urandom', 'rb'))) { 
     $output = fread($fh, $count); 
     fclose($fh); 
} 

EDIT3:原來我無法讀取的錯誤信息,什麼實際發生的是PHP無法讀取文件本身。一個快速sudo chmod -R 777 phpass-0.3暫時修復了這個問題,但這裏必須是一個更好的方法。

+1

難道是文件權限問題嗎? –

+1

查看主'PasswordHash.php'文件的源代碼,我可以看到它試圖打開的唯一東西是'/ dev/urandom'。在google上,唯一可能會阻止的是php.ini中的open_basedir指令,我的註釋已被註釋掉。 –

+0

我有同樣的問題,但我發現[鏈接](http://stackoverflow.com/a/20048548/2899954)。我必須使它由Apache擁有:'chown www-date phpass-0.3' ** www-data **是在Ubuntu上爲Web服務器(這裏是Apache)自動創建的用戶(至少,如果我錯了,請糾正我)。然後給予正確的閱讀:'chmod -R + r phpass-0.3'。那麼它應該沒問題。 – kukinsula

回答

0

該錯誤消息通常表示文件權限問題已經指出。全局讀/寫/執行權限當然不是必需的,但一定要讓Apache讀取文件。例如:

chmod 755 phpass-0.3 
chmod 644 phpass-0.3/*.php 
+0

我最終解決了這個問題,但現在還不能完全記得現在:P謝謝你的迴應 –