WordPress を CentOS + Nginx で動作させたくなったので、思い立ってやってみました。
EPEL からのパッケージ導入
CentOS なので、アプリケーションは yum でまとめて管理したいと思います。本来ならば、CentOS のオフィシャルに存在しないパッケージは RPM を自前で作ったほうがよいのかも知れませんが、EPEL に stable (けど少し古い) のパッケージがあるのでこれを利用します。
1
2
| $ wget http://download.fedora.redhat.com/pub/epel/5/x86_64/epel-release-5-4.noarch.rpm
$ sudo rpm -ivh epel-release-5-4.noarch.rpm
|
今回は x86_64 の環境であるため、他のアーキテクチャのパッケージが入らないように yum.conf に設定をしてしまいます。
1
| $ echo "exclude=*.i686 *.i386" >> /etc/yum.conf
|
必要となるパッケージをまとめてインストールします。
1
| $ sudo yum install nginx spawn-fcgi mysql mysql-server php53 php53-mysql php53-mbstring
|
そしてこれらがインストールされました。(依存パッケージは割愛してます)
- nginx-0.8.53-1.el5
- spawn-fcgi-1.6.3-1.el5
- mysql-5.0.77-4.el5_5.5
- mysql-server-5.0.77-4.el5_5.5
- php53-5.3.3-1.el5_6.1
- php53-mysql-5.3.3-1.el5_6.1
- php53-mbstring-5.3.3-1.el5_6.1
spawn-fcgi 設定
spawn-fcgi はポートを指定して起動する方式を利用します。 起動引数を設定できるので、ここで pid ファイルや起動ユーザなどと一緒に指定します。
/etc/sysconfig/spawn-fcgi1
| OPTIONS="-u nginx -g nginx -a 127.0.0.1 -p 8080 -S -M 0600 -C 5 -F 1 -P /var/run/spawn-fcgi.pid -- /usr/bin/php-cgi
|
daemon が起動してエラーが出なければ問題ありません。
1
2
| $ sudo /sbin/service spawn-fcgi start
$ sudo /sbin/chkconfig spawn-fcgi on
|
Nginx 設定
設定ファイルに WordPress 公開のための Location を追加します。 うまく起動しない場合、
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
| server {
listen 80;
server_name blog.example.com;
location / {
root /var/www/wordpress;
index index.html index.htm index.php;
if (-f $request_filename) {
expires 14d;
break;
}
if (!-e $request_filename) {
rewrite ^(.+)$ /index.php?q=$1 last;
}
}
location ~ .php$ {
root html;
fastcgi_pass 127.0.0.1:8080;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/wordpress/$fastcgi_script_name;
include fastcgi_params;
}
}
|
そして、Nginx を起動します。
1
2
| $ sudo /sbin/service nginx start
$ sudo /sbin/chkconfig nginx on
|
MySQL 設定
daemon を起動して初期化します。
1
2
3
| $ sudo /sbin/service mysqld start
$ sudo /sbin/chkconfig mysqld on
$ sudo mysql_install_db
|
1
2
3
| CREATE DATABASE wordpress;
GRANT ALL PRIVILEGES ON wordpress.* TO `wordpress`@'localhost' IDENTIFIED BY "password";
FLUSH PRIVILEGES;
|
実際に接続できるか、ローカル上で動作テストを行います。 ログインできれば問題ありません。
1
| $ mysql -u wordpress -p wordpress
|
WordPress インストール
今回は /var/www/wordpress 以下に日本語版をそのままインストールします。
1
2
3
| $ wget http://ja.wordpress.org/wordpress-3.1.2-ja.tar.gz
$ sudo mkdir /var/www/wordpress
$ sudo tar zxvf ~/wordpress-3.1.2.tar.gz
|
あとは流れにあわせ、WordPress のインストール手順 に沿って設定を行うと利用可能となります。