0

我正在使用下面的 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 吗?

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

4

1 回答 1

1

我怀疑这是因为您的 rss_feed_dir 指向的目录是另一个用户拥有的目录 - 而不是用于运行您的脚本的用户。

因此,如果您的脚本未使用指定的组或用户运行,则 755 权限将使您无法对目录进行写访问。这就解释了为什么当权限为 755 时无法成功执行写入文件命令,但在 777 时成功。

如果此 php 文件位于服务器上并从 Web 调用,请尝试修改您的目录所有权本身:

chown -R YOUR_USER:www-data YOUR_RSS_DIRECTORY_HERE

然后 chmod 到 775

希望有帮助!

于 2012-10-02T00:37:31.477 回答