WordPressでNginxを使う時の設定(英語版のWordPressCodexの設定例の解説)

Nginxについて調べ、このブログに来る方が多いようなのでNginxのWordPressでの設定例を紹介。

WordPressの英語版Codexに掲載されているものです。2013/05/03現在、日本語版とは設定の仕方が違うようなので解説を入れてみようかと思います。

 

Main (generic) startup file

まずは、メインファイル(nginx.conf)です。

 

Per Site configuration

WordPressのサイト用設定ファイルです。”sites-available”というディレクトリを作ってそこに入れてね。
複数用意すればバーチャルドメインもできるよ。

 

Global restrictions file

アクセスを制限する設定のファイルです。”global”というディレクトリを作ってその中に”restrictions.conf”という名前でファイル作成しよう。

 

General WordPress rules

WordPress用の設定ファイルです。これはシングル(通常の)インストールの場合。
“global”ディレクトリの中に”wordpress.conf”というファイル名で作成しよう。

シングルインストールの場合はここまででOK。次ページはマルチサイト(サブディレクトリ型)の場合ね。

 

Nginxで設定するとパーマリンク設定でindex.phpが出てしまう。これが気になる人は以下のコードをfunctions.phpに入れよう。

ちなみにNginx用のプラグインNginxHelperNginxCacheControllerなどを使えば追記しなくてもOKですよ。

 

WordPress Multisite Subdirectory rules

サブディレクトリ型マルチサイトの場合の設定ファイル。
“global”ディレクトリの中に”wordpress-ms-sudir.conf”としてファイル作成しましょう。

 

Better Performance for Static Files in Multisite

パフォーマンスを少しでも上げるために静的ファイルの設定を最適化しましょう。$blog_idの説明もここにあるよ。

WordPressのサイトごとの設定ファイルのserverディレクションに上のようなコードを追加。
サイトのドメイン・URLとWordPressのサイトIDをマッピングする。
サイトを増やしたらURLとサイトIDをその都度追加していく。

 

これはめんどくさいのでプラグインを使っちゃいましょう。先ほども紹介したNginxHelperには、このマップを作ってくれる機能がついています。

これを使えば設定ファイルはこんな感じに

/path/to/の部分はNginxHelperのプラグインディレクトリを指定してね。

 

ここまでやってマルチサイトの設定終わり。( ´ー`)フゥー...

次はFastcgiCache

 

Nginx fastcgi_cache

Nginxは独自でキャッシュを取る機能がついています。リバースプロキシで取る方法と、このFastcgiキャッシュと使う方法があります。
どちらでもいいですが、こっちのほうが設定が若干楽かな?

ロードバランシングとかをしたいと思ったらリバースプロキシを使ったほうがいいでしょう。
キャッシュの削除にはCachePurgeModuleを組み込む必要があるので注意。

 

Nginxの設定ファイルに追加

 

サイトごとの設定ファイルのserverブロックに追加

 

PHPの設定箇所を変更

PHP周りの設定変更。

 

キャッシュをパージするための設定

NginxCachePurgeModuleが必要です。入れないと、手動でキャッシュファイル削除する羽目になりますよ。

 

以上。簡単な解説付きの設定ファイルでした。
読みにくいと思うけど、ごめんちゃm(__)m