このサイトではFlaskも利用しているため、Gravは /pages 配下で動かすことにしました。Gravのインストーラを展開すると webserver-configs/nginx.conf として設定サンプルがありますが、サブフォルダで動かすための説明は3行しかありません。また、php関連の設定は環境にも依存することから、メモとして設定内容を残しておきます。
Environment
- Ubuntu 22.04 LTS
- nginx 1.18.0
- PHP 8.1.2
nginx
server {
.. snip ..
location /pages/ {
root /foo/var;
try_files $uri $uri/ /pages/index.php?$query_string;
location ~* /(\.git|cache|bin|logs|backup|tests)/.*$ { return 403; }
location ~* /(system|vendor)/.*\.(txt|xml|md|html|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~* /user/.*\.(txt|md|yaml|yml|php|pl|py|cgi|twig|sh|bat)$ { return 403; }
location ~ /(LICENSE\.txt|composer\.lock|composer\.json|nginx\.conf|web\.config|htaccess\.txt|\.htaccess) { return 403; }
location ~ \.php$ {
fastcgi_pass unix:/run/php/php8.1-fpm.sock;
include snippets/fastcgi-php.conf;
}
}
.. snip ..
}