我在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
有人能告诉我问题是什么吗?
答案 0 :(得分:0)
open_basedir是php.ini文件中定义的指令。
它被设置为允许您从PHP脚本(通常是您的webroot)访问的最低目录。
尝试访问树下的文件/目录,例如在/ dev /中,然后将被禁止,您将收到消息。
你必须编辑你的php.ini并将open_basedir设置为你的服务器根目录,这在安全方面通常是一件坏事,好像有人设法将恶意代码注入你的脚本,他们可以访问整个系统。 / p>
如果你真的需要,执行你的web文件夹中的脚本(Perl,Python等)来读取/ dev / urandom会更安全。
$output = `/scripts/get_urandom.pl`;
// Process output
phpass resolves this issue版本1.8通过抑制错误:
自修订版1.7以来的变化:+2 -2行:
使用“@”作为前缀的is_readable()以在open_basedir时禁止警告 限制有效。