サポート » 使い方全般 » マルチサイトで追加したサイトに写真(メディア)を追加(表示)できな

  • lucky_sakuranbo

    (@lucky_sakuranbo)


    大変困っています。長文で冗長で申し訳ありませんが、ご教示ください。
    下記でマルチサイトの環境を試したく、ローカルPCに新規にWordPressをインストールしました。
    基本的に特に問題なくマルチサイト化でき、サイトネットワーク管理者の画面が表示されます。

    ・WordPress3.1.1
    ・XAMPP 1.7.4
      ・Apache 2.2.17
      ・MySQL 5.5.8
      ・PHP 5.3.5
    ・Windows XP Professional SP3
    ・Internet Explorer 8

    最初にインストールされたサイト(http://hogehoge.com/wordpress)は
    問題なく動作するのですが、追加したサイト(http://hogehoge.com/wordpress/test)
    の写真などのメディアが表示されず困っています。

    現状の症状は、http://hogehoge.com/wordpress/test にアクセスすると、

    ・デフォルトのテンプレート(Twenty Ten)も追加したテンプレートも表示される。
     トップのバナー写真も表示される。
    ・投稿も通常通りできる。
    ・メディアでの新規追加、投稿中に写真を追加などをしても、
     いずれも写真が表示されず、×(バツ)が表示される。
    ・アップロード中にエラーにはならないが、サムネール表示もされない。
     (ブラウザアップロダー、Flashローダーともに)
    ・ローカルPCの「C:\xampp\htdocs\wordpress\wp-content\blogs.dir\3\files\20114」
     にアップロードされたファイルがある。
    ・アップロード後に表示されるURLを、IEのアドレスに入れて表示させると×(バツ)が表示される。
     例:http://localhost/wordpress/test/files/2011/04/fig01.png
    ・存在しないファイルを指定すると、「Web ページがみつかりません」と表示される。
     例:http://localhost/wordpress/test/files/2011/04/fig99.png
    ・ファイルタイプはJPEG、GIF、PNGいずれでも同じ減少である。

    また、C:\xampp\htdocs\wordpressの「.htaccess」の中身は下記の通りで、もともと無かったので、
    新規に作成し、WordPressから追加するよう表示された下記を貼り付けただけです。
    ━━━━━━━
    RewriteEngine On
    RewriteBase /wordpress/
    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).*) $1 [L]
    RewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]
    ━━━━━━━
    ちなみに上記が記載された「.htaccess」がないと404エラーが発生します。

    あと、「C:\xampp\htdocs\wordpress\wp-content\blogs.dir」フォルダには、
    「IUSER」に変更権限を設定している。

    と、丸3日間 四苦八苦したのですが、「×」です。

    このフォーラムをはじめ、色々なサイトを調べましたが、有効な手立てが見付かりません。

    もし、解決方法をご存知の方、少しでもヒントとなるようなことを知っておられる方が折られましたら、教えてください。

    よろしくお願いいたします。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • モデレーター jim912

    (@jim912)

    lucky_sakuranboさん、こんにちは。

    アップロードされるディレクトリが、

    C:\xampp\htdocs\wordpress\wp-content\blogs.dir\3\files\20114

    となっていますが、これは間違いないですか?
    一般的には、

    C:\xampp\htdocs\wordpress\wp-content\blogs.dir\3\files\2011\04

    となるはずです。
    記述ミスであれば、なんらかの原因で、アップロードディレクトリだけが変更されて、ファイルが見つからないという状況かと思います。

    ※ 返信したあとに気が付きましたが、投稿時に\0が消える見たいですね。

    そうでないとなると、マルチサイトの場合、設置ディレクトリ直下のfilesというディレクトリへのリクエストがあると、wp-includes/ms-files.phpを通じて、画像を表示するようになっています。404が返る可能性があるのは、22行目と28行目になりますので、その直前の分岐に合致している原因を確認して下さい。

    ShinichiN

    (@shinichin)

    こんにちは。自分もまさに、今この問題に直面しています。
    3日前までできていて、サーバ周りの設定をいじっていたら、突然できなくなっていました。
    ファイルはアップロードされているにも関わらず、管理画面でもブログ画面でも表示されません。

    また、wp-content以下についてgroupの権限変更をしています。

    アップロードはできて、表示ができないということで権限が関係しているとは考えづらいのですが、共通の何かがあるのでしょうか。

    引き続き、調べてみます。

    ShinichiN

    (@shinichin)

    ちなみに、http://test03.example.jp/wp-content/blogs.dir/2/files/2011/04/sample_photo.jpgというふうにブラウザで直接打ち込むとちゃんと見ることができますね。

    画像が表示されます。
    .htaccessの何かなのかもしれないです。

    ShinichiN

    (@shinichin)

    僕は解決しました。友人に聞いたところ、
    .htaccessで、

    # uploaded files
    RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]

    という部分を、一つ目の

    RewriteEngine On

    の直後に書くべきということで、書きなおしたらちゃんと画像が表示されました。

    仕組みは理解出来ていないので、lucky_sakuranboさんの場合はどうなのか分かりませんが、試してみてください。

    トピック投稿者 lucky_sakuranbo

    (@lucky_sakuranbo)

    jim912様、ShinichiN様、

    アドバイスありがとうございます。
    でも、残念ながら解消しません。

    ShinichiN様、からいたただ気ました「.htaccess」の修正ですが、下記にしましたが、不具合は解消しません。

    RewriteEngine On
    # uploaded files
    RewriteRule ^([_0-9a-zA-Z-]+/)?files/(.+) wp-includes/ms-files.php?file=$2 [L]
    
    RewriteBase /wordpress/
    RewriteRule ^index\.php$ - [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).*) $1 [L]
    RewriteRule  ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]
    RewriteRule . index.php [L]

    また、アップロードディレクトリは下記で、投稿時に消えたようです。

    C:\xampp\htdocs\wordpress\wp-content\blogs.dir\3\files\20114

    あと、下記のように直接画像ファイルを指定してもバツ「バツ」になります。

    http://localhost/wordpress/test/files/2011/04/picture.jpg

    ファイルは下記に確かに保存されていますので、アップロードはできているかと思います。

    C:\xampp\htdocs\wordpress\wp-content\uploads\20114

    「ms-files」ですが、恥ずかしながらPHPの知識が皆無で、内容を見ても全くわかりません。
    21~30行目が下記の通りですが、これで何かわかるでしょうか。

    if ( $current_blog->archived == '1' || $current_blog->spam == '1' || $current_blog->deleted == '1' ) {
    	status_header( 404 );
    	die( '404 — File not found.' );
    }
    
    $file = BLOGUPLOADDIR . str_replace( '..', '', $_GET[ 'file' ] );
    if ( !is_file( $file ) ) {
    	status_header( 404 );
    	die( '404 — File not found.' );
    }

    ただ、画像ファイルがバツとなっており、404エラーが帰ってくるわけでありません。
    下記のようにアップロード先にないファイルを指定してみると、404エラーが帰ってきます。
    http://localhost/wordpress/test/files/2011/04/no-picture.jpg

    自分でもがんばって調べてみますが、何かおわかりでしたら教えてください。

    ShinichiN

    (@shinichin)

    直りませんでしたか。。

    参考までに、僕の.htaccessの情報を書きこんでおきます。

    # BEGIN WordPress
    <IfModule mod_rewrite.c>
    RewriteEngine On
    # uploaded files
    RewriteRule ^files/(.+) wp-includes/ms-files.php?file=$1 [L]
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteRule . /index.php [L]
    </IfModule>
    
    # END WordPress
    RewriteEngine On
    RewriteBase /
    RewriteRule ^index\.php$ - [L]
    
    RewriteCond %{REQUEST_FILENAME} -f [OR]
    RewriteCond %{REQUEST_FILENAME} -d
    RewriteRule ^ - [L]
    RewriteRule . index.php [L]

    僕はサブディレクトリではなく、サブドメイン型でやっているのでちょっと違うはずですが、参考にされてください。

    また何か分かりましたら書き込みします。

    shokun0803

    (@shokun0803)

    ファイルは下記に確かに保存されていますので、アップロードはできているかと思います。

    C:\xampp\htdocs\wordpress\wp-content\uploads\2011\04

    アップロード先が違うんじゃないっすかね?マルチサイトなら最初にjim912さんのおっしゃるように

    C:\xampp\htdocs\wordpress\wp-content\blogs.dir\3\files\2011\04

    にアップロードされていなければならないはずです。

    こんばんは。

    私も,Ver.3.2で同じような経験をしました。

    私の場合の解決策を書いておきます。私の場合の原因は,レンタルサーバのphpがセーフモードで動いていたことでした。

    ShinichiNさんが書かれていることプラス,以下のディレクティブを.htaccessに追加することで,使えるようになりました。どちらか一方だけでは,解決できませんでした。

    <Files ms-files.php>
    AddHandler application/x-httpd-phpcgi php
    </Files>

    もろん,shokun0803さんが書かれているようなことがあれば,話はそれ以前のことになります。

8件の返信を表示中 - 1 - 8件目 (全8件中)
  • トピック「マルチサイトで追加したサイトに写真(メディア)を追加(表示)できな」には新たに返信することはできません。