我在CI控制器上使用Phpass 0.3时出现此错误
留言内容:
is_readable() [function.is-readable]: open_basedir restriction in effect. File(/dev/urandom) is not within the allowed path(s): (/home/:/usr/lib/php:/usr/local/lib/php:/tmp)
文件名:phpass-0.3/PasswordHash.php
谁能告诉我出了什么问题?
1条答案
按热度按时间7tofc5zh1#
open_basedir是在php.ini文件中定义的指令。
它被设置为允许您从PHP脚本访问的最低目录,通常是您的webroot。
尝试访问树下的文件/目录,如/dev/,将被拒绝,您将得到您所拥有的消息。
你将不得不编辑你的php.ini并将open_basedir设置为你的服务器根目录,这通常是一件坏事,因为如果有人设法将恶意代码注入你的脚本,他们将可以访问整个系统。
如果你真的需要的话,执行一个位于你的web文件夹中的脚本(Perl,Python等)来读取/dev/urandom会更安全。
phpass resolves this issue的1.8版本,通过抑制错误:
自版本1.7以来的变更:+2 -2行:
在is_readable()前面加上“@”,以在open_basedir限制生效时禁止显示警告。