2013年6月13日木曜日

PukiWiki Adv. を nginx で動かす

以下環境で PukiWiki Adv. を動かすためのメモ。
  • CentOS 6.4(さくらの VPS)
  • nginx 1.4.1
  • PHP 5.4.16
  • PukiWiki Adv. 1.0.3

なぜ Apache でなく nginx か

最初は PukiWiki Adv. を Apache httpd で動かそうと考えていましたが、.htaccess の設定がうまく読込めず、mod_rewrite を利用しての静的URL表現ができなかったため、nginx を試してみました。特にトラフィックが〜などの動機ではありませんので、性能面に関しての言及はありません。すんません。

nginx のインストール

今回の PukiWIki Adv. のために追加で必要そうなモジュールがいまいちよくわからなかったので、yum を使ってインストールしました。

# rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
# vim /etc/yum.repos.d/nginx.repo
enabled の値を 0 に変更
# yum -y install nginx --enablerepo=nginx

チューニングなどはよしなに。

[参考]
CentOS-6へ最新版のnginxを3分でインストールする方法

PHP関連パッケージのインストール

現在、以下のパッケージがインストールされています。
remi や rpmforge、epel などのレポジトリを追加しておくと良いと思います。

# rpm -qa | grep php
php-common-5.4.16-1.el6.remi.x86_64
php-gd-5.4.16-1.el6.remi.x86_64
php-cli-5.4.16-1.el6.remi.x86_64
php-devel-5.4.16-1.el6.remi.x86_64
php-mbstring-5.4.16-1.el6.remi.x86_64
php-fpm-5.4.16-1.el6.remi.x86_64
php-5.4.16-1.el6.remi.x86_64

PHP-FPM のチューニング、がんばりましょう。

PukiWiki Adv. のインストール

# cd /var/www/html
# tar Jxvf /path/to/PukiWiki\ Adv.\ 1.0.3.tar.xz
# mv webroot pukiwiki
# mkdir misc
# mv COPYING.txt README.txt doc tools misc
# ls -l | awk '{ print $10 }'
misc
pukiwiki
wiki-common
wiki-data

PHP-FPM にプロキシさせる nginx の設定

/etc/nginx/conf.d/pukiwiki.conf を以下の内容で新規作成しました。
yourdomain は皆様のドメイン名に変更してください。

server {
    listen              80;
    server_name  yourdomain;
    root                /var/www/html/pukiwiki;
    index               index.php;

    location / {
        error_page      404 = @pukiwiki;
        log_not_found   off;
    }

    location @pukiwiki {
        rewrite ^/(.+)$         /index.php?$1   last;
        break;
    }

    location ~ \.php$ {
        include         fastcgi_params;

        fastcgi_pass    127.0.0.1:9000;
        fastcgi_index   index.php;
        fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;
    }
}

[参考]
Rewriteを用いたサーチエンジン最適化 - nginx

nginx と PHP-FPM の起動

# /etc/init.d/php-fpm start
# /etc/init.d/nginx start

感想

自分は nginx を今日初めて触りましたが、設定書式がプログラムチックなためか非常に直感的で、ほとんど悩まずに設定することができました。Apache も別に詳しくなく、PHP に至ってはほとんどよくわかってないのですが、とりあえず公開する所までの敷居は低いと思います。

参考URL・書籍

感想でえらそうにいってましたが、スムーズに構築できたのは下記ページや書籍のおかげです。ありがとうございます。

  • nginx
    • nginx 本家
  • WEB+DB PRESS Vol.72
    • nginx の設定内容から PHP アプリケーションとの連携までわかりやすく解説されています。


0 件のコメント:

コメントを投稿