Drupal 7文件系统错误:目录sites / default / files存在但不可写,无法写入

时间:2011-04-24 02:56:41

标签: drupal drupal-7

我正在将Drupal 7安装从一台机器复制到另一台机器。两台机器都是Mac OSX,运行当前版本的MAMP。程序如下:

  1. 创建sql转储文件
  2. rsync -ar path/to/source path/to/destination
  3. chmod -R 755 destination/sites/default/files
  4. chown -R username destination
  5. import sql dumpfile
  6. 调整settings.php(实际上,它们在不同环境中保持不变,但只检查数据库连接信息和$ base_url。)
  7. 此处的所有内容都在目标端,除了sites / default / files目录不能写入[sic]。目录树中的某些内容和/或权限正在发生变化,但我无法弄清楚是什么/如何。是什么给了什么?

2 个答案:

答案 0 :(得分:14)

sites / default / files需要Web用户可写,或者所有用户都可写。

所有用户:

chmod -R a + w destination / sites / default / files

或者,让apache(或您的网络用户是谁)拥有者

chown -R apache:apache destination / sites / default / files

注意:755和777将所有内容设置为可执行文件。 777会起作用,这是不恰当的。目录需要可执行权限,但除非需要,否则文件通常不应该是可执行的。

我个人更喜欢让apache成为files目录的所有者以及里面的所有内容,因为无论如何当Drupal写文件时会发生这种情况。

答案 1 :(得分:0)

您可能需要在目录上运行restorecon,例如:

restorecon -rv default/