Web ホストの 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
アップデート
私の Web サイトには暗号化フォルダーへのアクセス権がないという提案がありました。これが問題になる可能性があります。私はそれについて私のウェブホストに連絡しています。