2013-03-04 36 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