画像スタイルはアクセス拒否を返します


22

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


media_flickrモジュールもインストールしましたが、インストール後に画像スタイルが機能していたと思います。私は間違っている可能性があります。
エヴァンジョンソン

回答:


32

更新が現在の機能の一部を壊さないように、更新する前に新しいリリースのリリースノートを読むことを常にお勧めします。

Drupal 7.20リリースノートには次のことが記載されています。

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

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

$conf['image_allow_insecure_derivatives'] = TRUE;

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

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

更新:

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


2
ドッ!はい、リリースノートを読むのは良いことです。「druup up drupal」と入力するだけの悪い習慣があります。ありがとうございました!!!
エヴァンジョンソン

パッチ#1923554を働いた私の問題
レミー

@rémy編集をご覧ください。
AjitS

安全でない派生物を許可したくありません。奇妙なことは、画像スタイル内から画像を作成しようとすると、URLとセキュリティトークンは提供されますが、アクセスは拒否されたままであることです。何か案は?
アレックス

3
この問題は、イメージパスを生成するためにimage_style_path()を呼び出していたコードのどこかでも持続します。トークンを正しく生成するには、これをimage_style_url()に変更する必要があります。
マスターチーフ

3

価値があるのは、アップグレードしてキャッシュをクリアした後、どういうわけか自分の画像スタイルのディレクトリが正しい権限を設定しなくなったこともわかったからです。

ルートスタイル/ [あなたのスタイル]とスタイル/ [あなたのスタイル] / publicは、物を正しくロードするために755でなければなりません。

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


1

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

私の設定は次のとおりです。

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

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

一時ディレクトリ: / tmp

デフォルトのダウンロード方法 (選択)Webサーバーが提供するパブリックローカルファイル。


1

この編集を実行しても問題は修正されず、エラーが発生しました。

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が、それでも画像スタイルのプレビューを適切に動作させることはできません。

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


0

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);

4
これを使用すると、子猫は死にます。(決してコアをハックしないでください)。
-stefgosselin
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.