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

age*_*eto 3 drupal drupal-6 drupal-files

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

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

警告:fopen(sites/default/files/.htaccess) [function.fopen]:无法打开流:第 349 行的 /websites/sitename/data/sites/all/modules/filefield/field_file.inc 中的权限被拒绝。警告: fopen(sites/default/files/.htaccess) [function.fopen]: 无法打开流:第 349 行的 /websites/sitename/data/sites/all/modules/filefield/field_file.inc 中的权限被拒绝。图像无法创建缩略图。警告:fopen(sites/default/files/.htaccess) [function.fopen]:无法打开流:第 349 行的 /websites/sitename/data/sites/all/modules/filefield/field_file.inc 中的权限被拒绝。警告: fopen(sites/default/files/.htaccess) [function.fopen]: 无法打开流:第 349 行的 /websites/sitename/data/sites/all/modules/filefield/field_file.inc 中的权限被拒绝。

我知道这是一个权限错误,但我不清楚我必须在哪里更改权限。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));
Run Code Online (Sandbox Code Playgroud)

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

Hen*_*pel 6

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