2013-03-04 118 views
0

我的網絡主機上的Mcrypt庫出現錯誤。我正在使用Laravel 4框架(目前處於測試階段)。它給了以下錯誤:PHP 5.3.18 Mcrypt錯誤:無法打開源設備

ErrorException: Warning: mcrypt_create_iv() [function.mcrypt-create-iv]: Cannot open source device in foo/bar line # 

一些託管規格:

  • 共享主機
  • PHP 5.3.18
  • Linux的
  • 這個Mcrypt 2.5.8

什麼發生在框架mcrypt_create_iv()獲取的地方調用。它通過應該在Linux上運行的MCRYPT_DEV_URANDOM全局​​和PHP> = 5.3.0

但由於某些原因,它仍然會給出此ErrorException。如果我將函數硬編碼爲使用MCRYPT_RAND而不是它的作品,但它爲什麼會給另一個全局帶來錯誤似乎很奇怪,因爲它應該通過這些規範工作。

我能想到的就是某處有些文件夾混淆了,或者/ dev/urandom有問題。我不熟悉這些類型的加密,所以我希望任何人都可以給我一些關於如何解決它的建議。

http://en.wikipedia.org/wiki//dev/random

UPDATE

有人建議我的網站不具有訪問加密的文件夾。這可能是問題所在。我正在聯繫我的虛擬主機。

回答

2

我的第一個猜測是您的網站無法訪問站點文檔根目錄中的文件夾。如果這是共享主機,他們可能會被阻止。我會建議打電話給他們,並找出有關情況。

由於/ dev/random是機器根目錄上的文件,大多數共享主機提供程序不允許訪問此級別的文件夾。

+0

謝謝!我會聯繫他們。 – 2013-03-04 14:05:20

+2

爲什麼不試試你的自我 - print_r(stat('/ dev/urandom')); – symcbean 2013-03-04 14:21:05

+0

@bretterer:謝謝!它確實被封鎖了。他們已經更新了Apache設置,現在所有的工作都很好。 – 2013-03-04 16:49:36