2012-10-02 47 views
0

我正在使用下面的PHP代码创建动态xml文件。如果目录权限设置0777,似乎在0755失败,我对这个世界执行权限会带来安全风险,在许多网站阅读创建文件并设置目录权限

... 
$file_name = ""; 
$rss_feed_dir = $_SERVER['DOCUMENT_ROOT'] . '/xml/'; 

chmod($rss_feed_dir, 0777); 

$file = $rss_feed_dir . $file_name . '.xml'; 

$file_handle = fopen($file, "w"); 
fwrite($file_handle, $xml); 
fclose($file_handle); 

文件将被创建。

我应该在这个脚本的末尾chmod回0755吗?

有没有更好的方法来设置目录权限?

回答

1

我怀疑这是因为无论您rss_feed_dir指向哪个目录,都是由另一个用户拥有的目录 - 除了用于运行脚本的用户之外。

因此,如果您的脚本未与指定的组或用户一起运行,则755权限将排除您对目录的写入访问权限。这就解释了为什么你不能写文件命令成功时的权限是755,但在成功时777

如果这个PHP文件是在服务器上,并从网上被称为,尝试修改目录的所有权本身:

chown -R YOUR_USER:www-data YOUR_RSS_DIRECTORY_HERE 

然后chmod到775

希望帮助!

+0

如何判断PHP脚本属于哪个组?我想知道如果一个快速解决方案是将组更改为任何人? – rrrfusco

+0

对不起,我更新了我的答案。您可能需要的是确保正确的组权限位于目录中。 775是你可能要找的。 – chinnychinchin