我们的内容类型包含两个 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文件。
答案 0 :(得分:4)
file.inc中的代码想要更新/创建files目录中的.htaccess
文件(在您的情况下为'sites / default / files')。它失败可能意味着您的Web服务器进程根本没有文件目录中的写权限(不太可能,因为这会在后端产生更明显的错误),或者已经存在.htaccess
文件该目录设置为只读(更有可能,在迁移时可能发生,很容易被忽略,因为默认情况下隐藏文件)。