我在我的虚拟主机上遇到了Mcrypt库的错误。我正在使用Laravel 4框架(目前处于测试阶段)。它给出了以下错误:
ErrorException: Warning: mcrypt_create_iv() [function.mcrypt-create-iv]: Cannot open source device in foo/bar line #
一些托管规范:
正在发生的事情是在框架中的某个地方调用mcrypt_create_iv()。它传递MCRYPT_DEV_URANDOM全局,它应该适用于Linux和PHP> = 5.3.0
但由于某种原因,它仍然提供此ErrorException。如果我硬编码函数使用MCRYPT_RAND而不是它可以工作,但我觉得为什么它在另一个全局上给出错误似乎很奇怪,这应该通过各种方式处理这些规范。
我能想到的是,某些文件夹混淆了或/ dev / urandom出了问题。我不熟悉这些类型的加密,所以我希望有人能就如何修复它给我一些建议。
http://en.wikipedia.org/wiki//dev/random
更新
有人建议我的网站无法访问加密文件夹。这可能是问题所在。我正在联系我的虚拟主机。
答案 0 :(得分:2)
我的第一个猜测是,您的网站无法访问该网站文档根目录中的文件夹。如果这是在共享主机上,他们可能会阻止它。我建议打电话给他们,然后找出答案。
由于/ dev / random是计算机根目录下的文件,因此大多数共享主机提供程序不允许访问此级别的文件夹。