CIコントローラーでPhpass 0.3を使用しているときにこのエラーが発生します
メッセージ: is_readable() [function.is-readable]: open_basedir 制限が有効です。ファイル (/dev/urandom) が許可されたパス内にありません: (/home/:/usr/lib/php:/usr/local/lib/php:/tmp)
ファイル名: phpass-0.3/PasswordHash.php
誰かが私に問題を教えてもらえますか?
CIコントローラーでPhpass 0.3を使用しているときにこのエラーが発生します
メッセージ: is_readable() [function.is-readable]: open_basedir 制限が有効です。ファイル (/dev/urandom) が許可されたパス内にありません: (/home/:/usr/lib/php:/usr/local/lib/php:/tmp)
ファイル名: phpass-0.3/PasswordHash.php
誰かが私に問題を教えてもらえますか?
open_basedir は、php.ini ファイルで定義されたディレクティブです。
これは、PHP スクリプトからアクセスできる最下位のディレクトリ (通常は webroot) に設定されます。
/dev/ など、ツリーのさらに下にあるファイル/ディレクトリにアクセスしようとすると、許可されなくなり、メッセージが表示されます。
php.ini を編集し、open_basedir をサーバー ルートに設定する必要があります。これは、誰かがスクリプトに悪意のあるコードを挿入すると、システム全体にアクセスできるようになるため、セキュリティ的には一般的に悪いことです。
本当に必要な場合は、Web フォルダーにあるスクリプト (Perl、Python など) を実行して /dev/urandom を読み取る方が安全です。
$output = `/scripts/get_urandom.pl`;
// Process output
phpass のバージョン 1.8 は、エラーを抑制することでこの問題を解決します。
リビジョン 1.7 からの変更: +2 -2 行:
open_basedir 制限が有効な場合に警告を抑制するために、is_readable() の前に「@」を付けました。