跳转到主要内容
木棉 提交于 12 October 2012

 

原文链接:http://drupal.org/node/394704

大部分情况下,Drupal将为你创建文件目录。如果Drupal不能创建目录。根据下面的说明进行创建。

安装Drupal之后,你要确保目录文件能够被你的Web server使用。如果没有正确的权限你可能会得到一个错误的消息以"sites/default/files does not exist..."开始

这里有方法:

1.在目录site/default创建一个新的目录称为files。

2.给新建的目录授予读,写和可执行到Web服务器的权限。

大多数FTP程序允许你创建新的目录设置它的权限。

一旦你完成了这些步骤确认适当的权限分配给Administer->Reports->Status报告。滚动到标签,"File system"并确认你的设置正确。

Apache Web服务器的故障排除

如果Web服务器没有文件目录的权限有两种方式进行。这些说明假设你的shell可以访问web服务器。如果没有shell访问请联系你的主机提供商提供额外的支持。

理论上你可能会改变目录文件的所有者去匹配web服务器。对于Unix或是Linux服务器你可以通过以下命令核实web服务器的运行者:

$ ps aux  |grep apache # for Apache 2.x

$ ps aux  |grep httpd # for Apache 1.x

你的web服务器会返回以下的一系列指令:

www-data 13612  0.1  0.9  50640 20340 ? S 12:29   0:08 /usr/sbin/apache2 -k start

返回指令的第一列是你web服务器的操作者。在这个例子中使用者是www-data。为了使你的文件目录可写你需要用以下指令指定它的所有者:

$ chown -R www-data sites/default/files

$ chmod -R 0700 sites/default/files

如果你没有足够的权限改变文件夹的所有者,另一个办法是使用以下指令提供group-write访问给文件夹:

$ chmod -R 0770 sites/default/files

你也应该能够按照上边的方法使用FTP程序调整文件目录。

一旦你完成了这些步骤确认适当的权限分配给Administer->Reports->Status报告。滚动到标签,"File system"并确认你的设置正确。

警告

最危险最不安全的选择是把写的权限分配给每用户。这种状况应该尽可能的避免。如果按照以上的步骤配置后仍旧没有工作,请考虑适当调整你的主机配置(例如添加你的web服务器到适当的组)代替给予每个用户写的权限。

Unix和FileZilla文件权限

我们的程序员假设你知道。如果你不知道这里有结果。

在计算机上每个用户有一个账户。如果计算机不同,你的账户可能会有所不同。事实上一些程序像Mysql和Drupal有它们独立的用户权限系统你的用户名和密码可能完全不同。这一章是关于Unix系统上的账号的。用于连接你Unix服务器上的文件的。

计算机上也有用户,就像是部门或是教室或排或等级。这种方式使权限的分配变得很方便。

现在有三个主要的用户:你,web服务器和其他人。通常情况下web服务器的账户是www或是_www或是nobody或是daemon或是apache。每件Drupal和PHP做的事,作为用户。通常在www下没有真人日志,他被服务器保留,不可思议的使服务器呈现www用户的身份。即便Atilla the Hun来访问你的web服务器,它做什么都与www文件有关。

所以你需要确定你能做的你需要做的:

你可能需要能够在你做的网站中读和写文件

www(drupal)需要你读所有的文件,需要能够在文件目录里写。

其他人可能不允许访问。

每个文件,每个目录,有权限说明哪个用户组可以修改它,方法如下:

r表示读的权限,你可以读取内容。对于目录,意味着你可以看到文件的内容。你可能不需要权限读取文件,但至少你能看到名字,知道你有哪些权限。

w表示写的权限,你可以改变它的数据。对于目录,这意味着你可以添加、删除和重命名文件。如果你不能删除文件,这不是因为你不能写文件而是不能写目录。

x表示可执行的权限。对于目录,这意味着你能够使用它得到里边的目录。即便你不能读!如果你知道文件名,你有可执行的权限,你可以使用那个文件或是目录。

每个文件记住三种人可以修改它:

用户是特殊用户,通常是创建者,‘所有者’。

组是一些组,你能改变它如果你是用户。(如果你即使用户又是组中成员那你只有组的权限)

其他的普通用户。

它不总是方便的;有时你只需要三个不同的用户访问它,或是两组,或是其他,但是在1980年之前这种方法是无效的。通常,你可以找出一种方法使它为你和服务器工作。

所以如果你看到以下这种权限:

rwx rwx rwx nancy staff

意味着用户Nancy有读、写和执行的权限,组名是Staff,其他的也是如此。

然而:

rwx --- --- nancy staff

意味着Nancy什么都可以做,但是其他人不能。特有的。

rw- r-- --- nancy staff

意味着Nancy可读可写,staff只能读其他是被锁着的。程序员通常用3个数字表示它:

r=4

w=2

x=1

你把它们相加得到一个数,rw- r-- ---等价于640.很简洁但是如果你不习惯可能会困惑。你将看到一般的形式:

rw=6

rx=5

rwx=7

所以有时可能你会需要你和你的服务器能得到但是其他人被锁的情况。记得你能通过移出x的权限禁止其他人访问-你不需要改变任何的文件。