微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

扫描/ home / with opendir

是否可以使用opendir和scandir扫描/ home /目录。 当我尝试执行脚本说权限被拒绝我该怎么办?

<?PHP $dir = '/home/'; $dirs = scandir($dir); ?> <pre> <?PHP print_r($dirs); ?> </pre>

可以在Ant中修改Linux文件权限

msysgit:不设置隐藏标志的选项

如何使一个文件读写到一个程序,但只读/不访问Windows中的非pipe理员用户

Ubuntu Web服务器上的CodeIgniter的文件权限

c#wcf文件文件夹浏览器

你可以使用is_readable('/home/')来检查你是否有权限。 如果没有,你需要确保目录具有读权限,可能是0755 (rwxr-xr-x)

为了安全起见,PHP定义了一个'basedir',在这个下面你不被允许访问。 正如Aleks G所说,还有文件权限需要考虑。

这个问题谈到如何解决basedir限制: 我怎样才能放松PHP的open_basedir限制?

汤姆·海格的答案复制到这里:

您也可以使用Apache(假定这是您的Web服务器)配置文件(例如httpd.conf),以每个目录为基础轻松完成此操作。

<Directory /var/www/vhosts/domain.tld/httpdocs> PHP_admin_value open_basedir "/var/www/vhosts/domain.tld/httpdocs:/var/www/vhosts/domain.tld/zend" </Directory>

你也可以完全删除限制

<Directory /var/www/vhosts/domain.tld/httpdocs> PHP_admin_value open_basedir none </Directory>

我不是一个PHP程序员,但我认为你的问题是,当PHP尝试opendir时,它运行的是与apache拥有相同的用户ID,可能没有读取你的/ home目录的权限。

你可以通过修改/ home的权限,或者把apache的userid添加到拥有home的组所有权的组中。

可能这是你的Apache配置文件中的一个问题。 即使文件系统权限允许,你的httpd.conf文件也可能不允许访问/ home。 如果所有的HTML文件都在/ var / www中,通常情况就是这样。

httpd.conf可能被设置为允许从用户的主目录中提供文件在这种情况下,权限将被授予/ home中的目录,但不是/ home本身。

答案是在你的问题:这是一个权限问题。 很可能,运行Apache的进程没有权限读取/home目录(或者,如果在CLI中运行,则是您的usernamd)。 在终端中手动执行此操作:

ls -ld /home

并检查属性

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐