IT Office Nishimiyahara

個人用スマホから商用プログラミングまでなんでもお任せ下さい

「nginx + WordPress + multisite」で、アップロードしたファイルをちゃんと表示できるようになった

      2014/02/23

「nginx + WordPress + multisite」で、アップロードしたファイルをちゃんと表示できるようになったので、簡単に記録しておきます。

ぶち当たった問題

  • 画像をアップロードして記事に埋め込んだが、画像が表示されない(404エラー)

原因

  • nginxの設定

解決方法

  1. WordPressで「nginx-helper」というプラグインを入れて、適切に設定する
  2. nginxの設定ファイルを適切に設定する。

参考になったページ

細かいこと

参考にしたページの設定は、「nginx-helper」というプラグインを利用するのが前提になっているようなので、忘れずに入れて設定しておきます。

プラグイン設定方法は、以下のとおりです。

  1. 「nginx-helper」をインストールする。
  2. 画面左側のメニューから「設定」→「Nginx Helper」とクリックして設定画面を出す。
  3. 「Enable Nginx Map.」にチェックを入れて「Save」します。

プラグインについては以上です。

ただし、このプラグインの情報にしたがって、nginxの設定を書きなおす必要があります。

必要な情報は以下のとおりです。

  1. 「save」した後、「Nginx Map」という設定が出てくるので、その中の「Nginx Map path to include in nginx settings」の右側の文字列をコピーして貼り付けます。

マルチサイトにした場合、サイト(ブログ)をごとに$blogidが割り振られますが、サイトのホスト名とIDを紐付けておくことで、nginxで画像を処理できるようになります。

この設定は、PHPの起動回数を減らすことにつながるので、サーバーの負荷を減らしたり、高速化を目指す場合は必須です。

で、問題は、この「WPMU Files」の設定なのですが、他の静的なファイルの設定は、この設定よりも前には書かないほうがよさそうです。

confファイル

最後に、ヴァーチャルホストの設定ファイルを晒しておきます。

継ぎ接ぎだらけですが、何かのお役に立てば幸いです。

respo

respo link

ZenBackWidget

 - 情報技術について ,