うちの環境はこんな感じです。
- Arch: amd64
- OS(userland): NetBSD 6.1
- kernel: NetBSD 6.1
- nginx: 1.4.1
- PHP: 5.5.0
- MariaDB: 5.5.31
まずはバックアップをとります。
$ tar zcvf foobar-backup.tar.gz /home/htdocs/foobar
$ mysqldump -u serendipityuser -p serendipitydb > foobar-backup.db
serendipityのgithubから最新版を持ってきて上書きします。
今回使用したのは、commit 33a649d624f0fd8cfe6d249ef0461dc824a4f769 です。
$ git clone http://github.com/s9y/Serendipity serendipity
$ cd serendipity
$ su
# tar cf - . | ( cd /home/htdocs/foobar; tar xvBpf -)
# chown -R www.www /home/htdocs/foobar
コンテンツに表示する日付のフォーマットを変更します。
bbcode pluginを少し変更します。
- code中の改行がそれなりに表示できるように
- code表示時にCODEというタイトルが表示されないように
- code表示時に、幅と高さの最大のサイズを決めてそれ以上の場合はスライドバーを表示
PHP 5.5でエラーとなるのでnl2brプラグインを修正します。
つぎにnginxの設定です。
以下のように設定しています。
/usr/local/nginx/conf/www.example.net.conf
server {
listen 80;
server_name www.example.net;
charset utf-8;
access_log logs/www.example.net/access.log;
error_log logs/www.example.net/error.log notice;
root /home/somewhere/htdocs;
location / {
index index.php;
try_files $uri $uri/ @rewrite;
}
location @rewrite {
rewrite ^/archives([/A-Za-z0-9]+)\.html /index.php?url=/archives/$1.html;
rewrite ^/([0-9]+)[_\-][0-9a-z_\-]*\.html /index.php?url=$1-article.html;
rewrite ^/feeds/(.*) /index.php?url=/feeds/$1;
rewrite ^/unsubscribe/(.*)/([0-9]+) /index.php?url=/unsubscribe/$1/$2;
rewrite ^/approve/(.*)/(.*)/([0-9]+) /index.php?url=approve/$1/$2/$3;
rewrite ^/delete/(.*)/(.*)/([0-9]+) /index.php?url=delete/$1/$2/$3;
rewrite ^/(admin|entries)(/.+)? /index.php?url=admin/;
rewrite ^/archive$ /index.php?url=/archive;
rewrite ^/categories/([0-9]+) /index.php?url=/categories/$1;
rewrite ^/plugin/(.*) /index.php?url=plugin/$1;
rewrite ^/search/(.*) /index.php?url=/search/$1;
rewrite ^/authors/([0-9]+) /index.php?url=/authors/$1;
rewrite ^/(.*\.html?)$ /index.php?url=/$1;
rewrite ^/(serendipity\.css|serendipity_admin\.css)$ /index.php?url=/$1;
rewrite ^/(index|atom|rss|b2rss|b2rdf).(rss|rdf|rss2|xml)$ /rss.php?file=$1&ext=$2;
}
location ~ \.php$ {
fastcgi_connect_timeout 60;
fastcgi_send_timeout 180;
fastcgi_read_timeout 180;
fastcgi_buffer_size 128k;
fastcgi_buffers 4 256k;
fastcgi_busy_buffers_size 256k;
fastcgi_temp_file_write_size 256k;
fastcgi_intercept_errors on;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
location ~ (\.tpl\.php|\.tpl|\.sql|\.inc\.php|\.db)$ {
deny all;
}
error_page 404 /index.php;
}
/usr/local/nginx/conf/nginx.conf
.
.
http {
.
.
include www.example.net.conf;
}
つぎにブラウザでblogトップにアクセスします。データベースをアップしてくださいといわれるので指示にしたがってデータベースをアップデートします。
以上でPHP5.5対応のserendipityが動作するようになります。