2010-08-30 57 views
0

我有2个文件夹: /var/www/vhosts/mydomain.com/httpdocs/ 和 /var/www/vhosts/mydomain.com/httpdocs/duh/PHP:为什么readdir在命令行中为我工作,但不是浏览器?

两个文件夹具有完全相同的烫发,组,所有者,一切。

如果我设置$路径,第一个,没有问题,我赞同的文件与文件名中的“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; 
      } 
     } 
    ?> 
+2

起飞@你至少会看到什么样的错误它给,如果你不知道@抑制错误报告,这就是为什么你不知道什么原因 – 2010-08-30 16:57:10

+0

对不起,我应该采取关闭。我正在测试一些东西,它在这里。我现在不使用它,我将编辑。 – k00k 2010-08-30 17:01:29

+0

它给了什么错误呢? (除了“无法打开$路径”) – 2010-08-30 17:02:07

回答

0

我想通了。我正在使用的服务器具有每个虚拟主机的本地配置文件。本地conf的safe_mode被设置为on。

感谢那些引导我走下去的路。

0

什么都在duh文件夹的权限?请记住,网络服务器将使用与您的shell帐户不同的用户ID运行。确保目录的模式为0755,以便所有用户均可读取。

哎呀,只是您的意见与错误消息。所以,是的,权限错误。 duh由用户标识10012拥有,而您的Web服务器以root身份运行。安全模式不会允许这样做。 'chown'该目录归根部所有...

当然,为什么webserver以root身份运行?这是非常不安全的。

+0

Perms是755,我甚至将文件夹的所有者设置为网络服务器的uid。 – k00k 2010-08-30 17:06:47

+0

Webserver以apache运行。是什么让你认为它以root身份运行? – k00k 2010-08-30 17:11:48

0

那么现在你知道答案了:它的SAFE_MODE是最丑陋的PHP特性之一。
有一些解决方法,但其中最好的是尽快从该主机运行!
或找到一种方法来禁用它。

相关问题