サポート » マルチサイト » マルチサイトの子サイトでアップした画像が見えない

  • 解決済 gardenlab

    (@gardenlab)


    はじめまして。
    WordPress3.0.1でマルチサイト機能でサイト構築を行っております。
    自社のテストサーバでは問題なかったのですが、本番のサーバで動作しなくなったので投稿させていただきます。

    フォーラム内で同じような現象の方の相談のトピック

    [解決済み] 画像のアップロードができない

    がありましたが、こちらを見ても解決しなかったのでご相談させてください。

    • マルチサイトの親サイトではエディタのアップローダーで問題なく画像をアップできる
    • 子サイトで画像をアップするとサーバにデータはアップされるが画面に表示されない。リライトされた画像のURLに直接ブラウザからアクセスすると画像が表示されず画面上にファイルのURLが表示される(WinFirefox)

    ■ページからソースを表示させて見た画像の位置
    http://***.co.jp/***/files/2010/08/***.jpg
    ↑何かしらのファイルがある感じだが画像は見れず

    ■リライトされる前の画像の位置
    http://***.co.jp/wp-content/blogs.dir/2/files/2010/08/***.jpg
    ↑ちゃんと表示される

    「blogs.dir」のパーミッションを変更してみても表示されません。
    多分 mod_rewrite の設定が影響してるのではと思うのですが…

    因みにレンタルサーバの設定情報の中でFTPに関する項目で
    ———-
    WWW転送用ディレクトリ : /home/***/***/www/
    (FTPソフト上での表示 : /www/
    ———-
    と書かれていた箇所があったのが気になったのですが、
    何か関係していそうでしょうか。

    どなたか何卒宜しくお願い致します!

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • 何かしらのファイルがある感じだが画像は見れず

    具体的にご説明いただくといいと思います。

    多分 mod_rewrite の設定が影響してるのではと思うのですが…

    htaccessを提示してみればいかがでしょう?

    現象だけがひたすら書かれていて、解決に必要な要件が一切提示されていないように思います。

    トピック投稿者 gardenlab

    (@gardenlab)

    nobita様
    説明不足で申し訳ありません。

    何かしらのファイルがある感じだが画像は見れず

    こちらについてですが、アップローダーを使うと、途中でエラーメッセージは出ず、実際にサーバをFTPソフト等で確認すると
    /wp-content/blogs.dir/
    以下の該当箇所にファイルはアップされています。

    そのファイルをFTPソフトでローカルにDLしなおしてプレビューすると、普通に見れるのでファイル自体が壊れているという事では無さそうです。

    また、メディアライブラリにもファイルが追加され、ファイルの「代替テキスト」「キャプション」等の編集や投稿への埋め込みも可能です。
    ただ、左上の画像のプレビュー部分に何も表示されず、「画像を編集」ボタンがあるだけの状況です。

    画像を貼りつけた記事を見ると画像は表示されず、imgタグで書かれた画像のアドレス(/子サイト/files/2010/08/***.jpg)をブラウザで直接アクセスすると、Firefoxだとその画像へのパスが表示され、IEだと画像が無い時の「×」印がでた状態です。
    本当にファイルがない場合は「404 — File not found.」という表示になるため、前回の投稿で「ファイルがある感じだが画像は見れず 」といった説明になりました。

    トピック投稿者 gardenlab

    (@gardenlab)

    shokun0803様
    .htaccessの中身です。
    管理画面 > ツール > ネットワーク の
    「3) .htaccess ファイルに次を追加し、ほかの WordPress のルールを置き換えてください。」
    にて書かれている内容になります。

    # BEGIN WordPress
    
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    # uploaded files
    RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
    
    # add a trailing slash to /wp-admin
    RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule  ^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*) $2 [L]
    RewriteRule  ^([_0-9a-zA-Z-]+/)?(.*\.php)$ $2 [L]
    RewriteRule . index.php [L]
    
    # END WordPress

    いやいや、確かにhtaccessを提示してみては?とは言いましたが、意図が伝わらなかったようですねぇ。

    自社のテストサーバでは問題なかったのですが、本番のサーバで動作しなくなったので

    サーバー情報とか一切提示されていませんよね?質問ルールなどはちゃんとお読みになっていますか?該当の本番サーバーとテストサーバーとの違いはちゃんと把握されていますか?そもそもmod_rewriteなどは有効ですか?

    情報を小出しにしないで必要な要件をきちんと提示しましょう。書き込みだけが増えて解決が遅くなるだけですよ;)

    ms-files.phpは、
    画像ファイルにヘッダーをつけて、画像を書き出すという作業を行っているファイルです。

    ファイルタイプをチェックして、mimetype や last-modified 等のヘッダー情報を付加して、あとは、実際の画像を読み出しているだけなので、

    このファイルが、他のヘッダーをつけてきたような場合はエラーになります。
    (例:ファイルは正常に動作していても、CGIとして動作している場合、強制的にtext/htmlヘッダをつけてくることなどがあります。)

    このため、リダイレクト先の、(files/…)画像ファイルにアクセスして、どんなヘッダーが付いているのかチェックをすすめるのはこのためです。

    jpgもpngも.phpという拡張子で送信していますから、そのあたり、サーバの設定大丈夫ですか?

    mod_rewriteが使える環境になっているかチェックするには、

    未検証スニペット

    function apache_is_module_loaded($mod_name){
        $modules = apache_get_modules();
    
        return in_array($mod_name, $modules);
     }
    
    if(apache_is_module_loaded('mod_rewrite')){
      echo "だいじょうぶみたいだよ";
    }

    トピック投稿者 gardenlab

    (@gardenlab)

    shokun0803様、nobita様
    何度も手間を取らせてしまい申し訳ありません。

    その後教えていただいた mod_rewrite 検証を試したり、サーバ会社に問い合わせしたりした結果、結局「wp-config.php」ファイルに設定を移す際に空行が入ってしまっていたのが原因だと先程判明致しました。

    素人がトラブルで完全にテンパってしまい皆様にご迷惑をおかけ致しました。 m(_ _)m

7件の返信を表示中 - 1 - 7件目 (全7件中)
  • トピック「マルチサイトの子サイトでアップした画像が見えない」には新たに返信することはできません。