皆様のお知恵を拝借いたしたく、投稿します。
画像をimage fieldでアップロードしてもサムネイル表示がされず、他の画像サイズも生成されない現象が発生しました(https://www.drupal.org/node/1146904)。リンク先を参照に、.htaccessをいろいろいじってみました(セキュリティリスクはあるのでしょうが)が、どうにも動くようにはなりません。それどころか、いじる度に何か状況が微妙に変わっているような気がするので、致命的なことになってしまわないうちに、どう対処するのが最善なのかお知恵をお借りしたいのです。
状況は、Drupal7.34で、マルチサイト化して二つのサイトを運営しています。外部ドメイン使用で、サブドメインには、前にen.をつけています。そのうち、本サイトの方だけで、この症状が発生しています。そもそもの原因は、私の記憶する範囲では、おそらく同じファイル名の画像をアップロードしようとして起きたのではないか、と思っているのですが、正確なところはわかりません。全てのコンテンツタイプにおいて、また全てのイメージフィールドで起こっているので、本サイト全部で画像のアップロードに問題が発生しているのだと把握しています。画像がらみのモジュールを全部外しても状況は変わらなかったので、コアのイメージのところで起こっているのかとも思ったのですが、サブドメインの方は動いているので、よくわかりません。問題は、おそらくsites/default/files/stylesの中にそれぞれの画像が保存できない状況になっているということで、その原因がApacheの脆弱性に対処するためのpatchが作り出す.htaccessにあるのだろう、ということまでは理解しましたが、ではいったいどうすればよいのか、というところで困ってしまっています。状況が変わっていると感じたのは、最初は.htaccessを削除して画像のアップロードをすると、また.htaccessを再生成していたのですが、今はそうならなくなってしまったからです。
困っているのは、.htaccessがサブドメインと本ドメインで全く一緒なのに、本ドメインの方だけで問題が発生しているというのをどう理解していいのかがわからないところです。バックアップから戻してもよいのですが、.htaccessが一緒でも問題が発生しているのだとしたら、バックアップから戻しても一緒なのではないか、と思っているのです。やってみればよいのですが、もっと状況が悪化するのも怖いので、皆様のご意見を伺ってから最善のやり方をとりたいと思っています。
なお、サーバーに関する知識はほとんどないので、その.htaccessの意味するところはあまり理解できていません。だから、管理者に何か問い合わせるにしても、何を問い合わせたらよいのかも全くわからない状況です。
うまく状況を伝えられているのかわかりませんが、何とかお助けいただければ、と思います。
Comments
なるほど。マルチサイトのうちひとつのサイトのみ画像のアップ
なるほど。マルチサイトのうちひとつのサイトのみ画像のアップロードができない、とのことですね。 .htaccess などは問題のないサイトと同じで、また、画像周りの特殊なモジュールも入れていない、とのことですね。「以前は問題は発生していなくて、いつかの時点から急に発生し始めた」という認識でよろしいでしょうか。
・・・パッと直接の解決策はお出しできないのですが、、問題を切り分けると解決しやすくなるかと思いますので以下ご参考まで。
あとは、気づかないうちにコアのどこかを書き換えてしまったということなどはございませんでしょうか?もしその可能性がある場合は Drupal 7.34 をまた別に落としてきて
git diffなどで比較されるとちがいがチェックできるかなと思います。可能性があるのであればよろしければお試しください。あとは、サイトをローカルにコピーしてきてサッと試せるのであればローカルでも発生するのかどうかお試しになると問題の原因の特定につながるかもしれません。
ほぼ解決です。
hgotoさま
問題を丁寧に切り分けていただいてありがとうございました。解決、とは行きませんが、ほぼ目処が付きました。
*アップロードはできますが、サムネイル等の生成がされませんでした。
*画像、と書きましたが、正確には拡張子がjpgのファイルだけでした。pngも、gifも、そして驚いたことに、jpegすらも問題なくサムネイル生成されました。
*パーミッション関連は全て問題ありませんでした。
*コアに関しては、ちょうど7.35が出たところなので更新してみましたが、やはり状況は変わりませんでした。
*ローカルに落としてみたところ、jpgでもサムネイル生成がされました。
以上のことから、原因はよくわからないまでも、とりあえず拡張子をjpegにしてこのままサイトを維持して行くのが一番良いのではないか、と考えています。
ただ、できることならば、拡張子を変えるのもやはり一手間だし、何よりも理由がよくわからないというのが不安なので、この症状から何か見るべき所についてのさらなるアドバイスなどございましたら、いただけたら幸いです。
ひとまずは、どうもありがとうございました。
ご丁寧にご返信いただきありがとうございます。 ほぼ解決、と
ご丁寧にご返信いただきありがとうございます。
ほぼ解決、とのことでまずは何よりです。
状況を詳しくご共有くださりありがとうございます。そのような現象が起こるものなんですね。。 jpeg は大丈夫なのに jpg はムリというのは変な感じがしますね。。
同様の事例がないか検索してみたところ PHP の GD ライブラリで jpg がサポートされてないことが原因になっていたケースなどがあるようですが、今回は jpeg は大丈夫とのことですし、違うようですね。。
それと、ご案内する順序が逆になってしまいましたが、サイトのステータスレポートや dblog の一覧にエラーなどは残っていないでしょうか? そちらをご確認いただくとより解決に近づけるのではないかと思いますのでぜひご確認されてみてください(それぞれ以下のパスからご確認いただけます)。
原因はますます闇の中
新たなアドバイス、どうもありがとうございます。
ますますよくわからない感じになってきたので、とりあえずご報告だけさせていただきます。
レポートを見たところ、とりあえずアクセス権の再構築をしていなかったことに気づき、それをやってみました。そうすると、サムネイルが出るようになったので、解決か?と思ったのですが、よくわからないことに、そのフィールドの、一番最初にアップロードしたjpgの、サムネイル画像のみが生成されるようになっただけでした。つまり、MediumとかLargeとかは相変わらず生成されず、同じフィールドで複数枚アップロードしてもそれらについてはサムネイルも生成されず、さらには、他のフィールドで試してみてもサムネイルも生成されないという状況になりました。
これは完全に私の理解を超えているのですが、何となくCDNがらみでjsがうまく動かなくなっているのではないか、という気がしています。よく理解もしていないうちにCDNなどを入れてしまっているので(別に今回入れたわけではないですが)、これを理解して原因を探るにはちょっと時間がかかりそうです。
実務的にはjpegで対応して、原因は気長に探って行こうと思います。また完全解決したらご報告させていただきたいと思います。簡単には解決しそうもないですが。
どうもいろいろありがとうございました。