2026/10/20(火)adiaryのローカル開発環境をnginxで構築する方法
投稿日:
ローカルにadiaryの開発環境を作るがApache2前提だったので、そのnginx版。
常駐させると開発に支障があるためFCGIモードではなく、普通のCGIとして動かす。
確認環境
| Env | Ver |
|---|---|
| adiary | 3.52b |
| fcgiwrap | 1.1.0 |
| nginx | 1.24.0 |
リポジトリのクローンと設置
/var/www/に展開すると仮定する。
git clone git@github.com:nabe-abk/adiary.git
cd adiary
cp adiary.conf.cgi.sample adiary.conf.cgi
sudo chown -R www-data:www-data .
設定例
IPv6でSSL化済の設定。fcgiwrapはデーモンとして動いているものとする。
server {
listen [::]:443 ssl;
server_name adiary.example.com;
ssl_certificate /path/to/fullchain.pem;
ssl_certificate_key /path/to/privkey.pem;
client_max_body_size 100M;
root /var/www/adiary;
# adiaryが.htaccessで保護しているディレクトリ・ファイルを拒否
location ~ ^/(data|lib|plugin|skel|skel\.local|info|__cache|\.git|\.github)(/|$) {
deny all;
}
location ~ \.(cgi|fcgi|pl)$ {
deny all;
}
# 実在するファイルはそのまま返し、なければadiaryへ
location / {
try_files $uri @adiary;
}
location @adiary {
fastcgi_pass unix:/var/run/fcgiwrap.socket;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root/adiary.cgi;
fastcgi_param QUERY_STRING $query_string;
fastcgi_param HTTPS on;
fastcgi_param SERVER_PORT 443;
fastcgi_param ModRewrite 1;
fastcgi_param Basepath /;
}
}
トラブルシュート
ログイン時にhttps://hogeに飛ばされる
上の設定にしたら行ける。公式の設定をコピペしても上手く行かない。