PHP:move_uploaded_file():无法移动'/

时间:2011-02-16 22:52:30

标签: php file permissions upload

我在刚设置的新服务器上一直收到此错误

[Wed Feb 16 22:46:51 2011] [error] [client 71.1.236.114] PHP Warning:  
move_uploaded_file(upload/110216104651_00134_smooth_1440x900.jpg): 
failed to open stream: Permission denied in /var/www/admin/_application/models/Roles.model on line 1757, 
referer: http://nacc.biz/admin/admin/modifyarticle.php?roleid=4
[Wed Feb 16 22:46:51 2011] [error] [client 71.1.236.114] PHP Warning:  move_uploaded_file():
Unable to move '/tmp/php6wlOg1' to    'upload/110216104651_00134_smooth_1440x900.jpg' 
in /var/www/admin/_application/models/Roles.model on line 1757, referer:
http://nacc.biz/admin/admin/modifyarticle.php?roleid=4
[Wed Feb 16 22:46:51 2011] [error] [client 71.1.236.114] PHP Notice:  
Upload Error: Error moving from temp dir in /var/www/admin/_application/models/Roles.model on line 1759,
referer: http://nacc.biz/admin/admin/modifyarticle.php?roleid=4

我添加了777并创建了一个上传目录,但错误仍然存​​在。如何找到需要更正或创建的路径?

5 个答案:

答案 0 :(得分:19)

upload/的所有者更改为www-data:www-data,并将chmod更改为755

答案 1 :(得分:10)

看起来它不知道upload/在哪里。确保您的声明中包含完整路径。例如,如果上传目录实际位于/var/upload,那么请确保它在您的对帐单中,而不仅仅是upload /。

答案 2 :(得分:8)

登录您的ftp并确认以下内容:

  • 文件夹存在,检查拼写
  • 检查文件夹的属性,并确保权限已读取+写入0666
  • 确保该文件位于您的公共html根目录中,否则请仔细检查该文件的所有者,并确保PHP具有对其的读/写权限。

查看日志:

Unable to move '/tmp/php6wlOg1' to    'upload/110216104651_00134_smooth_1440x900.jpg' 

在我看来,它在upload/110216....的根目录中应该是path.to/public_html/upload/110216....

如果上述方法均无效,请发布包含move_uploaded_file的代码行。

答案 3 :(得分:3)

它正在尝试将文件移动到upload/而不是uploads/,确保该目录存在且可写。

答案 4 :(得分:3)

提供,没有拼写错误,给您的上载目录(仅该目录)所有用户权限sudo chmod a+rwx /path/to/folder,可以轻松解决问题。
要快速进一步了解Ubuntu中的权限,请检查here