本文へスキップ
ドキュメント

ユーザーガイド

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 nginx

nginx -t が ok を出力する必要があります。問題がある場合は /var/log/nginx/error.log を確認してください。

セキュリティ遮断ルール

zittme-nginx.conf には、テンプレート・設定・キャッシュファイルへの Web からの直接アクセスを防ぐルールが含まれています。自分で設定を組む場合も、この遮断ルールは必ず含めてください。抜けていると、テンプレートの原本や内部ファイルが外部に公開されるおそれがあります。