PHP 5.3.18 Mcrypt错误:无法打开源设备

时间:2013-03-04 13:59:09

标签: php linux encryption laravel mcrypt

我在我的虚拟主机上遇到了Mcrypt库的错误。我正在使用Laravel 4框架(目前处于测试阶段)。它给出了以下错误:

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()。它传递MCRYPT_DEV_URANDOM全局​​,它应该适用于Linux和PHP> = 5.3.0

但由于某种原因,它仍然提供此ErrorException。如果我硬编码函数使用MCRYPT_RAND而不是它可以工作,但我觉得为什么它在另一个全局上给出错误似乎很奇怪,这应该通过各种方式处理这些规范。

我能想到的是,某些文件夹混淆了或/ dev / urandom出了问题。我不熟悉这些类型的加密,所以我希望有人能就如何修复它给我一些建议。

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

更新

有人建议我的网站无法访问加密文件夹。这可能是问题所在。我正在联系我的虚拟主机。

1 个答案:

答案 0 :(得分:2)

我的第一个猜测是,您的网站无法访问该网站文档根目录中的文件夹。如果这是在共享主机上,他们可能会阻止它。我建议打电话给他们,然后找出答案。

由于/ dev / random是计算机根目录下的文件,因此大多数共享主机提供程序不允许访问此级别的文件夹。