忘れないうちに書いておこうと思う。予め言っておきますが、自分でやったことを全て一気に思い出すのは難しいので、後で書き忘れに気づいたら追記するかもです。
あと、どうでもいいことですが、普段はEmacs使ってますが、サーバの設定ファイルの編集はVim使ってますよ!
基本情報
DTIのVPSコースで運営してます。サーバ(仮想マシン)一台借りていて、ブログとかは手動設定です。
OSはDebian(6.0.8, 64bit)、ウェブサーバはnginx(0.7.67)、それの上でFastCGI(php-fpm)でWordpress動かしてます。
インストール
phpとnginxは普通にapt-getしましたが、php-fpmはDebian6.0では標準では入っていないようで、ここらへんを参考にしながら/etc/apt/aource.listに以下を追記。
deb http://packages.dotdeb.org squeeze all
あとはこんな感じ
apt-get install nginx php-pear php5 php5-cli php5-common php5-curl php5-fpm php5-gd php5-mcrypt php5-mysql ph5-suhosin
WordPress単体ならphp5-curlはなくても動きましたが、あとでプラグインを入れるときに必要になったはず。
apacheはいらないので、とはいってもphp5が依存しているようなのでアンインストールするわけにもいかず、起動スクリプトから消しておきます。
update-rc.d -f apache2 remove
各種設定
/etc/nginx/sites-available/mysettingはこんな感じ
server {
listen 80;
listen [::]:80 default ipv6only=on;
server_name hamukazu.com;
access_log /var/log/nginx/hamukazu.access.log;
error_log /var/log/nginx/hamukazu.error.log;
root /var/www/wp;
location / {
index index.php;
if (-f $request_filename) {
expires 30d;
break;
}
if (!-e $request_filename) {
rewrite ^.*(/wp-.*) $1 last;
rewrite ^(.*) /index.php?q=1 last;
}
}
location ~ \.css {
add_header Content-Type text/css;
}
rewrite /wp-admin$ $scheme://$host$uri/ permanent;
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
if (!-e $request_filename) {…}のあたりは、パーマリンクを日付にするのに必要なようです。ここを参考にしました。
そしてこのファイルを/etc/nginx/sites-enabledにシンボリックリンクして、/etc/nginx/sites-enabledにあったdefaultを消去。
あと、/etc/php5/fpm/pool.d/www.confもいじるんですが、オリジナルとのdiffの結果を書いておきます。
# diff www.conf www.conf.orig
33c33
< listen = /var/run/php5-fpm.sock
---
> listen = 127.0.0.1:9000
358c358
< security.limit_extensions = .php .php3 .php4 .php5 .html .png .js .css .gif .jpeg .jpg
---
> ;security.limit_extensions = .php .php3 .php4 .php5
以上。
サーバいじり楽しいなあ。らんらんるー♪