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


PHP 5.3.18 Mcrypt error: Cannot open source device

我得到一个错误与我的网站主机上的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/random有问题。我不熟悉这些类型的加密,所以我希望有人能给我一些建议,如何修复它。

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

有人暗示我的网站无法访问加密文件夹。这可能就是问题所在。

我的第一个猜测是你的网站没有从网站的文档根目录访问文件夹。如果这是在共享主机上,他们可能会阻止这个。我建议你打电话问问他们。

因为/dev/random是机器根目录下的一个文件,所以大多数共享主机提供程序不允许访问这个级别的文件夹。