2 つのimagefield / filefieldフィールドを持つコンテンツ タイプがあり、サイトを新しいサーバーに移行した後、次の問題が発生しました。
これらのフィールドに 2 つの画像を使用して、このコンテンツ タイプの新しいアイテムを送信すると、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));
*編集: 解決しました。問題は、.htaccess ファイルを作成するために、何らかの理由で drupal が sites/default/files フォルダーに書き込み権限を必要とすることでした。