rename()PHP函数找不到目录,即使它存在?

时间:2010-11-02 18:24:44

标签: php html linux security apache

我刚刚在我的服务器上创建了一个新文件夹,并设置了所有正确的权限,我很确定。

该文件夹在那里,但我的PHP无法找到实际的文件夹吗?

任何想法为什么?

我唯一能想到的是我的文件夹名称中包含特殊字符。

我用这个命令创建它:

   sudo mkdir "Textiler & Sybehör"

我有很多其他目录都有这些字符,它们工作正常。

这个似乎不起作用......

我被困住了!

PHP说无法找到目录...

更新:

在命令行工具中,我尝试像这样移动目录:

 mv "Textiler & Sybehör" images/"Textiler & Sybehör"

我收到此错误:

无法统计`Textiler& Sybeh \ 366r':没有这样的文件或目录

就好像字母“ö”没有被正确解释一样。

2 个答案:

答案 0 :(得分:2)

当您使用sudo创建目录时,表示它是以超级用户或root用户身份创建的。如果您的Web服务器使用suexec并以普通用户身份运行PHP,则PHP将无法访问其他用户拥有的文件夹和/或文件。

检查您的托管服务提供商或服务器是否正在使用suexec。

另一件事是确定您的文件夹是否真的需要由root用户拥有。如果没有,请使用以下命令更改所有者:sudo chown <regular_user>:<regular_user>其中<regular_user>是运行PHP的帐户。

答案 1 :(得分:1)

虽然可能是因为名字中的字符。文件夹结构怎么样?你有一个带有重写基集的.htaccess文件吗?代码片段会很棒。

还可以检查所有权权限(chown),然后chmod该文件夹,使其可写。