前に書いたローカルにadiaryの開発環境を作るがApache2前提だったので、そのnginx版。
常駐させると開発に支障がある*1ため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;
# 実在するファイルはそのまま返し、なければ404
location /pub/ { try_files $uri =404; }
location /pub-dist/ { try_files $uri =404; }
location /index.html { try_files $uri =404; }
# favicon
# システム設定があればそちらを優先、なければデフォルト
location = /favicon.ico { try_files /pub/lycolia/image/@system/sys-iconfile.png /pub-dist/default-icon.png =404; }
# adiaryに飛ばす用
# /でCGI、/index.htmlでセットアップページに飛ばすための分岐を実現するために、こうしている
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に飛ばされる
上の設定にしたら行ける。公式の設定をコピペしても上手く行かない。