0

我的虚拟主机上的 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() 被调用。它通过了应该在 Linux 和 PHP >= 5.3.0 上工作的 MCRYPT_DEV_URANDOM 全局

但由于某种原因,它仍然给出了这个 ErrorException。如果我对函数进行硬编码以使用 MCRYPT_RAND 代替它可以工作,但我觉得奇怪的是为什么它会在另一个全局上给出错误,而这应该在这些规范上工作。

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

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

更新

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

4

1 回答 1

2

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

因为 /dev/random 是机器根目录上的文件,所以大多数共享主机提供商不允许访问此级别的文件夹。

于 2013-03-04T14:04:36.833 回答