Apache或PHP的问题?

这是我的问题。 对不起,如果主题之前讨论过,但我没有find它。 另外,如果我的问题的地方不在这里,对不起。

我有一个使用Apache 2.04和PHP 5的服务器上的网站。在网站导航,脚本创build一个.xml文件与755权利和Apache:Apache所有者。 问题是无法从不同的浏览器窗口访问.swf文件创build的这个文件 – 试图直接通过键入它的绝对path来访问它。

我发现,将所有者更改为root:根,即可在两种情况下访问.xml文件。 尝试使用PHP函数更改所有者或权限,不会发生变化。

请帮助我,告诉我怎样才能解决这个问题。 这是一个PHPconfiguration?

先谢谢你。

这不是一个PHPconfiguration问题或Apache的问题。 只是一个编程陷阱。

使用PHP上传或创build新文件时,它总是使用默认的“umask”。 如果你没有提供正确的umask或文件的CHMOD,它可能无法访问其他应用程序甚至apache。 (因为它是由您的代码)

这里是umask&chmod的链接。
http://php.net/manual/en/function.umask.php
http://www.php.net/manual/en/function.chmod.php

尝试解决与PHP代码的问题。 就像:刚刚上传或创build新文件之后,更改文件的chmod。

  chmod(“/ somedir / somefile”,0644); 

这种方式更好,高效,兼容。

也许xml文件的完整path中的一个目录不能被apache用户读取。

检查xmlpath文件的每个目录的权限,可以尝试读取目录的内容:

sudo -u apache ls -l / GRAPHICS /

sudo -u apache ls -l / GRAPHICS / video /

sudo -u apache ls -l / GRAPHICS / video / files /

也许你应该把Apache用户添加到适当的组中,但是这取决于你在这个目录上的用户权限。

假设它给出了一个Internal Server Error ,可能你的服务器权限需要644 PHP脚本