将Drupal站点迁移到新服务器后,我无法上传文件

时间:2010-05-10 17:31:51

标签: drupal drupal-6 drupal-files

我们的内容类型包含两个 imagefield / filefield 字段,在将我们的网站迁移到新服务器后,我们遇到以下问题:

当我们为此内容类型提交新项目时,这些字段有两个图片,drupal会给我们以下错误并且不会上传图片:

  

警告:   的fopen(网站/默认/文件/的.htaccess)   [function.fopen]:无法打开   stream:权限被拒绝   /websites/sitename/data/sites/all/modules/filefield/field_file.inc   在第349行。警告:   的fopen(网站/默认/文件/的.htaccess)   [function.fopen]:无法打开   stream:权限被拒绝   /websites/sitename/data/sites/all/modules/filefield/field_file.inc   在线349.图像缩略图是   无法创建。警告:   的fopen(网站/默认/文件/的.htaccess)   [function.fopen]:无法打开   stream:权限被拒绝   /websites/sitename/data/sites/all/modules/filefield/field_file.inc   在第349行。警告:   的fopen(网站/默认/文件/的.htaccess)   [function.fopen]:无法打开   stream:权限被拒绝   /websites/sitename/data/sites/all/modules/filefield/field_file.inc   在线349.图像缩略图是   无法创建。

我知道这是一个权限错误,但我不清楚我在哪里需要更改权限。 file.inc的第349行包含以下代码:

  if (($fp = fopen("$directory/.htaccess", 'w')) && fputs($fp, $htaccess_lines)) {
      fclose($fp);
      chmod($directory .'/.htaccess', 0664);
    }
    else {
      $repl = array('%directory' => $directory, '!htaccess' => nl2br(check_plain($htaccess_lines)));
      form_set_error($form_item, t("Security warning: Couldn't write .htaccess file. Please create a .htaccess file in your %directory directory which contains the following lines:<br /><code>!htaccess</code>", $repl));

*编辑:已解决,问题是由于某种原因,drupal需要在sites / default / files文件夹中写入权限才能创建.htaccess文件。

1 个答案:

答案 0 :(得分:4)

file.inc中的代码想要更新/创建files目录中的.htaccess文件(在您的情况下为'sites / default / files')。它失败可能意味着您的Web服务器进程根本没有文件目录中的写权限(不太可能,因为这会在后端产生更明显的错误),或者已经存在.htaccess文件该目录设置为只读(更有可能,在迁移时可能发生,很容易被忽略,因为默认情况下隐藏文件)。