我有2个文件夹: /var/www/vhosts/mydomain.com/httpdocs/ 和 /var/www/vhosts/mydomain.com/httpdocs/duh /
两个文件夹都有完全相同的烫发,群组,所有者,一切。
如果我将$ path设置为第一个,没有问题,我会回显文件名中包含'html'的文件列表。
如果我将$ path设置为第二个,它会在opendir()上死掉。但是,它在命令行中工作正常,而不是浏览器。
有什么想法吗?
这是我非常简单的代码:
<?php
$path = "/var/www/vhosts/mydomain.com/httpdocs/duh/";
$img_folder = opendir($path) or die("Unable to open $path");
while (false !== ($file = readdir($img_folder))){
if (eregi("html", $file)){
echo $file;
}
}
?>
答案 0 :(得分:0)
duh
文件夹有哪些权限?请记住,网络服务器将使用与您的shell帐户不同的用户ID运行。确保dir的模式为0755,以便所有用户都可以读取。
oops,只是您对错误消息的评论。所以,是的,权限错误。 duh
由用户ID 10012拥有,而您的Web服务器以root身份运行。安全模式不允许这样。 'chown'由root拥有的目录......
当然,为什么网络服务器以root身份运行?那是非常不安全的。
答案 1 :(得分:0)
现在你知道答案了:它的SAFE_MODE是最丑陋的PHP功能之一
有一些解决方法,但其中最好的是尽可能快地从这台主机运行!
或找到一种方法来禁用它。
答案 2 :(得分:0)
我明白了。我正在处理的服务器具有每个vhost的本地配置文件。 safe_mode设置为on为本地conf。
感谢那些让我走上正轨的人。