前端之家收集整理的这篇文章主要介绍了
function.fopen:无法打开流:PHP中的权限被拒绝,
前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试从我的PHP应用程序为我的网站创建XML站点地图.我们的想法是创建一个新文件或覆盖现有文件.当我调用fopen时,我收到以下错误:
[function.fopen]: Failed to open stream: Permission denied
我正在尝试写入webroot,其权限是:755.这意味着所有者拥有写入权限,对吧?我需要做什么才能使我的脚本能够写入此文件夹? 777会是一件坏事,对吗?我能以某种方式运行我的脚本作为所有者吗?
谢谢.
最佳答案
是的,正如你所说,使用777可能是一个巨大的
错误. Web服务器不会与您用于创建
文件和
文件夹的
用户一起运行.
你有一些选择:
>使用具有写入权限的用户(除了apache用户之外),将站点地图创建作为cronjob运行.
>将站点地图放在另一个目录中,然后设置302重定向或符号链接.在这种情况下,如果您遇到安全问题让某人编写您的sitemap.xml,至少他们将无法创建具有更危险扩展名的其他文件(如PHP,这可能会导致网站入侵).
>制作重写规则,将任何匹配重定向到sitemap.xml,再输出到输出相应XML的PHP脚本.
祝好运!