WordPress高速化: Debian 6.0 (squeeze)にnginxを導入する その2

高速化

前回はDebian 6.0(squeeze)にnginxをインストールして、静的なWebサイト(WordPressでないページ)を構築しました。

ゴールはWordpressもApacheからnginxに引っ越すことなのですが、今回はその前段階としてnginxでphpが動作するようにします。

なお、ApacheでWebサイトを運用中のため、今回はnginxはポート8080に対して応答するように設定しています。すべてが完了したらApacheを停止して、nginxにポート80を任せる予定です。

全体の設定

まずはnginxとphpを処理するphp-fpmの接続関係を設定しておきます。

これはWebサイトで共通な設定なので/etc/nginx/conf.dにphp-fpm.confという名前で次の内容のファイルを作成します。

upstream php {
    server 127.0.0.1:9000;
}

テスト用Webサイトの作成

とりあえず一時的にテストするためにtest.scratcpad.jpというサイトを作ることにします。

まずは/etc/nginx/sites-availableにtestという名前で下記のファイルを作成します。

server {
    listen 8080;
    server_name test.scratchpad.jp;
    root /www/test;
    index index.php index.html index.htm;

    error_log /var/log/nginx/test-error.log warn;
    access_log /var/log/nginx/test-access.log combined;

# deny access to .htaccess files, if Apache's document root
# concurs with nginx's one
#
    location ~ /\.ht {
        deny all;
    }

    location ~ .php$ {
        fastcgi_pass   php;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME /www/test/$fastcgi_script_name;
        include fastcgi_params;
    }
}

17行目から22行目がphpを処理するための記述です。

次にWebサイトのファイルを用意します。

/www/testにindex.phpという名前で次のファイルを作成します。

< ?php phpinfo(); ?>

/www/test以下のファイルの所有者をwww-dataに変更しておきます。

sudo chown www-data.www-data –R /www/test

あとは設定ファイルを有効にし、問題ないかどうかを確認し、新しく作った設定をnginxに読み込ませます。

sudo ngxensite test
Site test installed; run invoke-rc.d nginx reload to enable.
nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
/etc/init.d/nginx reload
Reloading nginx configuration: nginx.

テスト

それでは作成したテスト用Webサイトを表示してみましょう。Webブラウザのアドレスバーにテスト用サイトのURI(例: http://test.scratchpad.jp:8080/)を入力して下記のような画面が表示されれば成功です。

テスト用Webサイトの表示

これでnginx経由でphpが動作することがわかったので、テスト用Webサイトは無効にしておきます。

sudo ngxdissite test
Site test disabled; run invoke-rc.d nginx reload to fully disable.
sudo /etc/init.d/nginx reload
Reloading nginx configuration: nginx.
sudo rm /etc/nginx/sites-available/test

まとめ

今回はnginxを用いて構築したWebサイトでphpが使用できるようにしました。これでようやくWordpressを引っ越す準備ができたという状況です。

次回はいよいよnginx上でWordpressを動かします。