グルチャ

UbuntuにnginxをインストールしてWordPressを動かそう

AWS Amazon EC2 の micro インスタンスを使って、LAMP環境でWordPressを動かしていたんだけど、実に重かった。
んで、思い切ってApacheから巷で速いと噂のnginxに乗り換えてみた。
すると、見事爆速に動くようになった。
というわけで、nginxのインストール方法とphpへの対応、パーマリンクが使えるようにrewriteの設定などについて書く。

nginxのインストール

と言っても、下記のURLに全て書いてあるので参考にインストールする。
ただし、バーチャルホストの設定はここに書かれている内容から変えるので、あとから説明する。
VPS(Ubuntu 12.04)でWordPress環境(しかもnginx)を構築する。
 

バーチャルホストとrewriteの設定

バーチャルホストを設定していないデフォルトの状態のままだとHPにはWelcone to enginxと表示される。
nginxではデフォルトのルートが /usr/share/nginx/www になっているので、そこに入ってる内容を表示している。
そこにWordPressをインストールしても良いのだが、すでにWordPressはapache時代に/var/wwwにインストール済みなので/var/wwwを表示するようにしたい。
それにデフォルトのままではphpの表示やrewriteの設定も動いてないので、バーチャルホストを設定するのが良いだろう。
バーチャルホストの設定は下記の通り。(バーチャルホストの設定の中でrewriteの設定も行っている)
 
ここでは設定したいバーチャルホストのドメインをfoo.comだったとする。
まず、/etc/nginx/conf.d/ にバーチャルホスト用のファイルを追加する。
ubuntuのターミナルから下記を入力する。

sudo nano /etc/nginx/conf.d/foo.com.conf

nanoが立ち上がり、/etc/nginx/conf.d/ にfoo.com.confファイルが新規作成される。
 
続いて、foo.com.conf に下記の内容を書く。

server {
        listen        80;
        server_name   foo.com;
        access_log  /var/log/nginx/foo.com.access.log;
        error_log   /var/log/nginx/foo.com.error.log;

        root /var/www;
        index index.php index.html index.htm;
        charset utf-8;

        if (!-e $request_filename) {
                rewrite ^.+?($/-.*) $1 last;
                rewrite ^.+?(/.*\.php)$ $1 last;
                rewrite ^ /index.php last;
        }

        location ~* \.php$ {
                fastcgi_index   index.php;
                fastcgi_pass    127.0.0.1:9000;
                include         fastcgi_params;
                fastcgi_param   SCRIPT_FILENAME    $document_root$fastcgi_script_name;
        }

        location ~ /\.ht {
                deny  all;
        }
}

ctrl+Xでnanoを保存終了。
続いて、nginxをリロードする。

sudo service nginx reload

 
さらにnginxをリスタートする。

sudo service nginx restart

 
これで、foo.comにアクセスしたらWordPressが表示されて、パーマリンクの設定も動く。

※参考文献
VPS(Ubuntu 12.04)でWordPress環境(しかもnginx)を構築する。
nginxだけでWordPressを動かすための設定


Leave a reply

Your email address will not be published.

Time limit is exhausted. Please reload CAPTCHA.

You may use these HTML tags and attributes:

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>