在Wordpress中上传媒体

时间:2012-07-27 04:27:16

标签: image wordpress upload media

我正在尝试将图片或任何其他媒体类型上传到我的wordpress应用程序,但我收到此错误:

Unable to create directory /home/admin/video/wp-content/uploads/2012/07. Is its parent directory writable by the server?

即使我确定父目录是可写的。它实际上有777权限。可能是什么问题?

谢谢。

1 个答案:

答案 0 :(得分:1)

问题是......谁可以写什么?您可能需要使PHP(a.k.a.Web服务器)可以写入整个“上传”目录。通常,apache和其他服务器默认使用用户组www-data,但它可能不同。检查您的apache或lighttpd(或其他)配置文件,以查看它运行的用户和用户组。这些通常在/etc/apache/etc/lighttpd 等等。然后,将uploads目录以递归方式写入该组。

使用777权限是一个非常糟糕的主意。您总是希望尽可能少地访问任何给定目录。所以,这是一篇关于文件权限的简短论述....

drwxrwxrwx   20  connermcd     staff    680 Jul 25 20:38  img
-rw-r--r--    1      admin  www-data  18530 Jul 26 21:46  example

权限字符串的第一个字符表示类型。在这种情况下,img是一个目录,example是一个文件。对于符号链接(以及其他内容),这也可以是l。字符串的其余字符(rwxrwxrwx)定义权限。正如您所看到的,它是“读,写,执行”的重复三元组​​。第一个三元组表示文件或目录所有者的权限。所有者显示在第三列中(例如,对于img和admin来说)。第二个三元组表示对文件或目录组的许可(例如,img和www-data的工作人员)。最后一个三元组表示任何人的权限(即使是您临时访问服务器或黑客的人,提示提示)。

每个“读,写,执行”三元组都可以用数字表示。我很容易将rwxrwxrwx视为421421421。这是唯一的方法,如果这有助于你,两个的倍数可以加起来7。因此,4表示读取,2表示写入,1表示执行。如果将这些添加在一起,则可以表示具有三个数字的三元组。那么chmod 777 img真正在做的是给每个人提供“读,写和执行”权限。它也只是为该目录设置这些权限,而不是为其下的目录设置权限。要以递归方式执行此操作,您可以使用-R标记 - chmod -R

在您的情况下,您只想让uploads文件夹及其所有子目录可供服务器运行的用户组使用。在大多数情况下都是www-data,所以我将以此为例。您可能希望将项目文件设置为用户拥有,以便更容易移动,编辑等。因此,假设您是文件的所有者(使用chown进行设置)并且它们属于www-data组(使用chgrp设置)。在这种情况下,我们希望赋予所有者完全权限以及组读取和写入权限,我们希望以递归方式执行此操作。因此,请转到uploads文件夹的父目录,然后执行chmod -R 760 uploads