マニュアル

インストール手順

インストール手順

v1.0.0以上

GeckoFlagはご自身のサーバーにインストールしていただく、セルフホスト型のソフトウェアです。専用のインストーラー画面に沿って進めることで、どなたでも簡単にセットアップいただけます。

インストール前の準備

  • 動作環境を満たしているかご確認ください。Composerは必須ではありません。配布パッケージには依存ライブラリ(vendorフォルダ)が同梱されているため、Composerを実行できない環境でもそのままインストール可能です。
  • データベースの接続情報をご準備ください(新しいデータベース、または既存の空のデータベース)。他のアプリケーションと同じデータベースを共用することはお勧めしません。
  • HTTPSは必須ではありませんが、ログイン情報や個人情報を扱うため、HTTPS環境でのご利用を強く推奨します。
  • ファイルをアップロードしたら、すぐにインストールを完了してください。インストールが終わるまでは、URLを知っている人なら誰でもインストーラーを開けます。
  • Nginxをお使いの場合は、事前に下の「Nginxをお使いの場合」の設定を行ってください。

インストール手順

  1. 1GeckoFlagのファイルをFTP/SFTPまたはご利用のホスティングの管理画面から、サーバーにアップロードし、展開します。サーバー上に展開されたGeckoFlagのファイル・フォルダを表示するファイルマネージャー
  2. 2ブラウザでインストーラーを開きます。PHPバージョンや必要な拡張機能、フォルダの書き込み権限など、サーバー環境が自動でチェックされ、チェックリストが表示されます。PHPバージョン・必要な拡張機能・フォルダの権限がすべて合格しているGeckoFlag Setup Step 1: Environment Check
  3. 3データベース接続情報(ホスト・ポート・データベース名・ユーザー名・パスワード)を入力し、次へ進みます。DBホスト・ポート・データベース名・ユーザー名・パスワードの入力欄があるGeckoFlag Setup Step 2: Database Connection
  4. 4実行するボタンをクリックしてデータベースを初期化します。GeckoFlagに必要なテーブルが作成されます。Runボタンがある GeckoFlag Setup Step 3: Initialize the Database
  5. 5名前・メールアドレス・パスワードを入力して管理者アカウントを作成します。名前・メールアドレス・パスワードの入力欄があるGeckoFlag Setup Step 4: Create Administrator Account
  6. 6ライセンスキーを入力して認証します。ライセンスキーの入力欄があるGeckoFlag Setup Step 5: License Verification
  7. 7ライセンスが認証されたら準備完了です。作成した管理者アカウントでログインし、プロジェクトの設定を始めます。ライセンスキーの認証成功を示すGeckoFlag Setup Step 5: License Verification

ホスティングに関する注意事項

GeckoFlagは多くの一般的なレンタルサーバーで動作確認しております。ただし、ホストによってはPHPのupload_max_filesizeなどの設定により、アップロード機能に制限がかかる場合があります。

Nginxをお使いの場合

Apacheでは、GeckoFlagに同梱の .htaccess によって、設定ファイルやログなどへの直接アクセスが自動で拒否されます。Nginxでは .htaccess が使われないため、サーバーの設定に次の内容を追加してください。追加しないと、設定ファイルやアップロードしたファイルが外部から見える場合があります。

NginxとApacheを組み合わせたレンタルサーバー(Nginxが受け付けたアクセスをApacheが処理する構成)では、.htaccess が有効なため、この設定は不要です。.htaccess が使えるかどうかは、ご利用のサーバー会社のマニュアルでご確認ください。

  • 公開フォルダー(ドキュメントルート)は、GeckoFlagのフォルダーではなく、その中の webroot フォルダーにしてください。
  • server_name(ドメイン)、root(GeckoFlagを置いた場所)、fastcgi_pass(PHP-FPMの接続先)は、お使いの環境に合わせて書き換えてください。
  • HTTPSの設定(listen 443 ssl と証明書の指定)は、お使いの環境の設定方法に従って追加してください。
server {
    listen 80;
    server_name pm.example.com;

    # 公開フォルダー(ドキュメントルート)は GeckoFlag の webroot フォルダー
    root /var/www/geckoflag/webroot;
    index index.php;

    # フォルダーの中身の一覧を表示しない
    autoindex off;

    # アップデート・バックアップの ZIP をアップロードできるように
    # (Nginx の初期値は 1MB)。PHP の upload_max_filesize と
    # post_max_size も同じ以上にしてください
    client_max_body_size 100m;

    # 隠しファイル(.htaccess、.git など)は配信しない
    location ~ /\.(?!well-known/) {
        deny all;
    }

    # アップロードされた画像のフォルダーからは画像だけを配信する
    location ~ ^/img/(avatars|project_thumbnails|branding)/ {
        location ~* \.(jpe?g|jfif|png|gif|webp|ico)$ {
            add_header X-Content-Type-Options "nosniff" always;
            try_files $uri =404;
        }
        # SVG 画像は表示専用(スクリプトは実行させない)
        location ~* \.svg$ {
            add_header X-Content-Type-Options "nosniff" always;
            add_header Content-Security-Policy "default-src 'none'; img-src data:; style-src 'unsafe-inline'; sandbox" always;
            try_files $uri =404;
        }
        return 403;
    }

    # files フォルダーは直接配信しない
    location ^~ /files/ {
        return 404;
    }

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    # PHP として実行するのは index.php だけ
    location = /index.php {
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root/index.php;
        fastcgi_pass unix:/run/php/php8.3-fpm.sock;
    }
    location ~ \.php$ {
        return 404;
    }
}

設定を変更したら nginx -t で書式を確認し、Nginxを再読み込みしてください。

CDN・リバースプロキシ(Cloudflareなど)を経由する場合

GeckoFlagは、サーバーが受け取った接続元のIPアドレスを使って、ログインの失敗回数の制限やアクセス制限(IPアドレス)を行います。CDNやリバースプロキシを経由すると、すべての利用者がプロキシのIPアドレスからのアクセスに見えるため、次のようなことが起こります。

  • 誰かがログインに何度か失敗すると、ほかの利用者もしばらくログインできなくなることがあります。
  • アクセス制限(IPアドレス)は正しく動作しません。

このような構成では、Webサーバー側で本来の接続元IPアドレスを受け取る設定(Apacheの mod_remoteip、Nginxの real_ip モジュール、Cloudflareの場合は同社が公開しているIPアドレス一覧の登録など)を行ってください。設定方法はご利用のサーバー会社・CDNのマニュアルをご確認ください。