我正在使用下面的PHP代码创建动态xml文件。
...
$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);
如果目录权限设置为0777,则会创建该文件,并且似乎在0755处失败。我在许多网站上阅读过世界执行权限可能会带来安全风险。
我应该在这个脚本的末尾chmod回到0755吗?
是否有更好的方法来设置目录权限?
答案 0 :(得分:1)
我怀疑这是因为你的rss_feed_dir所指向的目录是另一个用户所拥有的目录 - 除了用于运行你的脚本的用户之外。
因此,如果您的脚本未使用指定的组或用户运行,那么755权限将排除您对目录的写访问权。这解释了为什么在权限为755时无法成功执行写文件命令,但在777时成功。
如果此php文件位于服务器上并从Web调用,请尝试修改目录所有权:
chown -R YOUR_USER:www-data YOUR_RSS_DIRECTORY_HERE
然后chmod到775
希望有所帮助!