前に書いたローカルに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に飛ばされる

上の設定にしたら行ける。公式の設定をコピペしても上手く行かない。