nginx の設定
nginx で Zittme を動かすための設定をご案内します。Apache を使っている場合、このドキュメントは必要ありません。配布版の .htaccess が自動で処理します。
いちばん簡単な方法:設定ヘルパー
Zittme には nginx の設定を作ってくれるヘルパーがあります。次のうち使いやすいものをお使いください。
- インストールウィザードの環境確認画面:短縮 URL(rewrite)が設定されていない場合、サーバー環境を検出して、それに合った設定と適用コマンドを作ってくれます。コピーして貼り付ければ完了です。
- 管理者 > システム設定の短縮 URL ヘルパー:インストール後も同じ機能を使えます。
- 一度に適用するスクリプト:配布版の
common/scripts/setup-nginx.sh
自分で設定する場合は、以下を参考にしてください。
設定ファイルの場所
| ディストリビューション | サイト設定 |
|---|---|
| Ubuntu / Debian | /etc/nginx/sites-available/(シンボリックリンクで sites-enabled/ に有効化) |
| CentOS / RHEL | /etc/nginx/conf.d/ |
server ブロックの例
配布版の common/manual/server_config/zittme-nginx.conf にすべてのルールが入っています。骨組みは次のとおりです。
server {
listen 80;
server_name example.com;
root /var/www/mysite;
index index.php index.html;
client_max_body_size 32m;
# 여기에 zittme-nginx.conf 의 규칙(차단·rewrite)을 넣거나 include 합니다
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
}
}rootは Zittme のインストールパスで、indexには必ずindex.phpが含まれている必要があります。client_max_body_sizeはアップロードの許容サイズです。添付ファイルのサイズに合わせて調整してください。- PHP-FPM のソケットパスはサーバーごとに異なります。
ls /run/php/で確認するか、ポート方式(fastcgi_pass 127.0.0.1:9000;)を使うこともできます。
ルールの順序に注意
Zittme の rewrite ルールには location / { try_files ... } ブロックがすでに含まれています。同じブロックをサイト設定に重複して入れるとエラーになります。遮断ルール(location ブロック群)は PHP 処理ブロックより前に置いてください。
適用と確認
nginx -t
systemctl reload nginxnginx -t が ok を出力する必要があります。問題がある場合は /var/log/nginx/error.log を確認してください。
セキュリティ遮断ルール
zittme-nginx.conf には、テンプレート・設定・キャッシュファイルへの Web からの直接アクセスを防ぐルールが含まれています。自分で設定を組む場合も、この遮断ルールは必ず含めてください。抜けていると、テンプレートの原本や内部ファイルが外部に公開されるおそれがあります。