web-dev-qa-db-ja.com

サムネイル、中、大画像の作成に失敗しました

Drupal 7.10の新規インストールを使用する場合、公開アップロード用のディレクトリをsites/uploadsに設定しました。

次に、コンテンツインスタンスに画像を追加すると、元の画像がsites/example.org/files/imagename.pngに期待どおりにアップロードされます。ただし、他の画像(サムネイル、中、大)はsites/example.org/styles/*で作成されません。

このディレクトリは、PHP5-FPMユーザーが読み取りおよび書き込み可能であるため、賢明な問題の権限があってはなりません。

なぜこれが起こるのですか?どうすれば修正できますか?

10
jvc26

答えは、実際、私が思っていたよりも少し微妙です。 D7のimagecacheの置き換えには、nginx仮想ホストでの注意が必要であることがわかります。 Drupal)に404が送信されない場合、画像は作成されません。画像はアップロード時に作成されたと想定していたため、最初は気付かなかったものです。

location @rewrite {
    rewrite ^/(.*)$ /index.php?q=$1;
}

location ~ ^/sites/.*/files/styles/ {
    try_files $uri @rewrite;
}

サーバー定義に追加する必要があり、ロールする準備ができているはずです。明らかに、パスは設定に応じて変更する必要があるかもしれませんが、私の場合はそうでした。

13
jvc26

必ず、admin/config/media/file-systemでパブリックファイルシステムパスと一時パスの両方を確認してください。

これらのフォルダーの両方に適切なアクセス許可を設定すると、ファイルを保存するとサブフォルダーが自動的に作成され、画像が保存され、エラーメッセージが消えます:-)

2
sheldonkreger

私の場合、画像がhttpsを使用してフェッチされたため、問題が発生していました。

安全なページ設定に次の行を追加して、ファイルパス上のhttpsを無視しました。

*/files/*

これが誰かを助けることを願っています。 :)

2
shrish

Letharionの回答を完了するために、サムネイル、中程度の画像スタイルを作成するために使用した方法を以下に示します。

上記のすべてのポイントを最初にチェックしたが、結果は出なかった。

次に(Linux OSの場合)、/ usr/local/etc/suphp.confを編集して、phpのumaskをに変更しましたそのため、最大755のアクセス許可を持つファイルとディレクトリを作成できます(最大744でした)。

そして、これは間違いなく問題を解決しました。 :)

1
Kojo

権限を確認したとおっしゃっていますが、私が頻繁にこの問題を抱えていたので、ここから始めます。ほとんどalwaysが権限の問題でした。

一般的なアドバイス:まず最初に、admin/config/media/file-systemに移動し、[設定を保存]をクリックします。これにより、Drupalは設定されたディレクトリの権限を再評価し、問題が見つかった場合はエラーメッセージを表示します。

次に、phpユーザーではなく、Webサーバーを所有するApache、www-data、またはその他のユーザーがいると思いますか? LinuxまたはMacシステムでは、そのユーザーにSudoを実行します。ファイルを書き込もうとする適切なユーザーとしては、適切なアクセス許可を確実に得る最善の方法です。 sites/domain.com/files /に移動し、「echo data> new_file; cat new_file;」を呼び出します。ターミナルで。これにより、実際に書き込みディレクトリに書き込むことができることが確認されます。 tmp dirでも同じようにします。うまくいけば、他の誰かがWindowsのようなシステムで同じアクションを実行する方法を提案できます。

3番目:ディレクトリのアクセス許可を除外するには、ファイルディレクトリを再帰的に適用します。あなたは後でより健全な権限を復元することができます

find . -type d -print0 | xargs -0 chmod 755
find . -type f -print0 | xargs -0 chmod 644

4番目:完全な権限を持つtmpディレクトリーがあることを確認します。

5番目:今までにコードを理解している場合は、コードのデバッグを開始する必要があるかもしれません。

1
Letharion

私はDrupal 8.0.3です。
私の場合、このフォルダはインストール時に生成されません。

sites/default/files/field/image

だから私は古いバージョンのDrupalインストールからコピーしてそれを置いた。
サムネイル、中、大を含むすべての画像が表示されるようになりました。

0
Chetabahana

GPコードライブラリサーバーに大きなサイズの画像をアップロードするときに、phpでサムネイル画像を作成します。アップロードされた大きな画像は、ウェブページへの読み込みに時間がかかるため、小さなサイズの画像をウェブページに表示する必要があります。画像サムネイルは、アップロードされた画像のサムネイルを生成して、当社のWebサイトに必要なサイズの画像を表示するためのソリューションです。 http://codelibrary.googleplus.co.in/create-thumbnail-image-by-php/

0
user2275071