PHP: move_uploaded_file(): Unable to move '/

17

我在一个新建的服务器上不断出现这个错误

[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权限并创建了一个uploads目录,但错误仍然存在。我如何找到需要更正或创建的路径?

5个回答

21

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


5
chown -R www-data:www-data folder 这对我起作用了! - d-_-b
chown -R <username> <folder> - Mr_Green

10

看起来它不知道upload/在哪里。确保你的语句中有完整路径。例如,如果上传目录实际位于/var/upload,那么请确保该路径包含在你的语句中,而不仅仅是upload/。


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的代码行。


在检查拼写时,也要检查大小写是否相同。Linux 对文件和目录名称区分大小写。 - Mike

3
假设没有拼写错误,请将您的上传目录(仅该目录)授予所有用户权限sudo chmod a+rwx /path/to/folder,这应该很容易地解决问题。
有关在Ubuntu中设置权限的更多信息,请查看此处

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接