web-dev-qa-db-ja.com

画像スタイルがアクセス拒否を返す

Insertモジュールを使用して、ユーザーが特定の画像スタイルの画像をページに挿入できるようにしています。 Drupal 7.20にアップグレードした後、画像はfiles/stylesフォルダ、および画像のURLは403(アクセス拒否)エラーを返します。フォルダのアクセス許可を確認したところ、すべて777に設定されています。

21
Evan Johnson

アップデートによって現在の機能の一部が損なわれないことを確認するために、アップデートする前に新しいリリースのリリースノートを読むことを常にお勧めします。

Drupal 7.2 のリリースノートには、次のように記載されています。

このリリースのセキュリティ修正により、Drupalによって生成されるすべての画像派生URLが変更され、トークンがクエリ文字列として追加されます(例として、以前は http ://example.com/sites/default/files/styles/thumbnail/public/field/image/example.pnghttp://example.com/sites/のようなURLを指すようになりますdefault/files/styles/thumbnail/public/field/image/example.png?itok = zD_VaCaD 。)

次の行をsettings.phpに追加して、サイトの画像を機能させることができます。

$conf['image_allow_insecure_derivatives'] = TRUE;

しかし、コアを更新し、更新を使用しないのと同じくらい良いでしょう;-)

ページからの便利なリンク:

UPDATE:

リリースノート Drupal 7.21から、アップデートにはDrupal 7.20セキュリティリリースのみで導入された非互換性の修正が含まれています。したがって、バージョン7.20のセキュリティ修正を使用するには、最新バージョン、つまり7.21に更新することをお勧めします。

32
AjitS

また、アップグレード後にキャッシュをクリアすると、どういうわけか私のイメージスタイルのディレクトリに正しい権限が設定されなくなったこともわかりました。

それらがroot styles/[your style]およびstyles/[your style]/publicは、物が適切にロードされるように755でなければなりません。

それらをすべて変更すると、画像が再び適切に表示されます。

3
shaneonabike

この編集を行っても問題は解決せず、エラーが発生しました:

modules/image/image.admin.incの775行目にパッチが必要です...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);

(私の評判が低いので、その個別の回答ではまだコメントできません)

私はこの方法で実装し、その問題が最初に発生したときに多くのことを修正しました。

$conf['image_allow_insecure_derivatives'] = TRUE;

すべての変更も実装しました+FollowSymLinksから+SymLinksIfOwnerMatchしかし、それでも画像スタイルのプレビューを正しく機能させることができません。

次の最後のオプションは、サーバーサイズのユーザー権限を変更することです。私はそれを修正するか、すべて壊します。

1
deanflory

ファイルシステムを修正します:/ admin/config/media/file-system

これが私の設定です:

パブリックシステムパスを設定します:sites/default/files

プライベートファイルシステムのパスは空です。

一時ディレクトリ:/ tmp

デフォルトのダウンロード方法(選択)ウェブサーバーによって提供されるパブリックローカルファイル。

1
Fahim A.

modules/image/image.admin.incの775行目にパッチが必要です...

775> - $preview_file = image_style_path($style['name'], $original_path);
775> + $preview_file = image_style_url($style['name'], $original_path);
0
Michael Hurley