我的虚拟主机上的 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
更新
有人建议我的网站无权访问加密文件夹。这可能是问题所在。我正在联系我的虚拟主机。