我正在运行 Ubuntu 8.04 LTS,它是我的网络服务器(LAMP)。
我的网络根目录是:
/var/www/website/trunk/html/
我创建了一个目录用于用户上传,位于:
/var/www/vault/
我做到了:
chown -R www-data /var/www/vault/
甚至勇敢地:(那是绝望的时刻)
chmod 777 -R /var/www/vault
我的 php 脚本无法在以下位置创建子目录:
/var/www/vault
我需要它,我很幸运地将文件上传到目录,但是,当它尝试创建目录时,我收到这样的错误......
Warning: mkdir() [function.mkdir]: Permission denied in /var/www/website/trunk/html/jquery.uploadify/uploadretro.php on line 149
File /var/www/website/trunk/html../../../../vault/4d4d3092c24be8a8dac2ec269e969446.jpg does not exist.
有人能帮助我或者提出一些建议吗?
我的 php INI 文件设置正确,允许上传,大小为 5m。
有任何想法吗?
更多信息 上述错误中第 149 行的命令是:
mkdir(str_replace('//','/',$targetPath), 777, true);
权限:
drwxrwxrwx 2 www-data root 4.0K Jun 3 06:04 vault
答案1
为了帮助调试访问,我建议您进入系统并运行如下命令sudo -i -u www-数据。这将为您提供与 Web 服务器具有相同权限的 shell。然后只需切换到 /var/www/vault 目录并查看您是否可以创建文件和目录。
如果您可以创建文件/目录,那么您的问题就不是权限问题,而是您的应用程序出了问题。
哦,顺便说一下,你的路径看起来坏了。
/var/www/website/trunk/html../../../../vault/
特别注意HTML..。 如果HTML..是正确的值,那么该路径将解析为/var/vault, 不是/var/www/vault。
答案2
重新启动 apache。