安装
v1.0.0+GeckoFlag 是安装在您自己服务器上的自托管软件;专用安装程序会引导您完成整个过程,让任何人都能轻松完成配置。
开始之前
- 确认您的服务器满足系统要求。无需 Composer:发布包已包含其依赖项(vendor 文件夹),因此在无法运行 Composer 的环境中同样可以使用。
- 准备好数据库连接信息:一个新的数据库,或一个已有的空数据库。我们不建议与其他应用共用同一个数据库。
- HTTPS 并非严格必需,但由于 GeckoFlag 会处理登录凭据和个人数据,我们强烈建议使用 HTTPS 运行。
- 上传文件后,请立即完成安装。在安装完成之前,任何知道该 URL 的人都可以打开安装程序。
- 如果您使用 Nginx,请事先完成下方“使用 Nginx 时”中的设置。
安装步骤
- 1通过 FTP/SFTP 或主机控制面板将 GeckoFlag 文件上传到您的服务器并解压。

- 2在浏览器中打开安装程序。它会检查您的服务器环境(PHP 版本、所需扩展和文件夹权限),并显示检查清单。

- 3输入数据库连接信息(主机、端口、数据库名称、用户名和密码),然后继续。

- 4点击 运行 初始化数据库;这会创建 GeckoFlag 所需的数据表。

- 5使用姓名、电子邮箱和密码创建您的管理员账号。

- 6输入您的许可证密钥进行验证。

- 7许可证验证通过后即大功告成:使用新的管理员账号登录,开始配置您的项目。

关于主机的说明
已确认 GeckoFlag 可在许多常见的共享主机服务商上运行。根据 PHP 配置(如 upload_max_filesize),部分服务商上的文件上传功能可能会受到限制。
使用 Nginx 时
在 Apache 上,GeckoFlag 附带的 .htaccess 会自动拒绝对配置文件、日志等的直接访问。Nginx 不使用 .htaccess,因此请将以下内容添加到服务器配置中。如果不添加,配置文件和上传的文件可能会被外部看到。
在组合使用 Nginx 和 Apache 的共享主机上(由 Apache 处理 Nginx 所接收访问的配置),.htaccess 是有效的,因此无需此设置。能否使用 .htaccess,请查阅您所用主机服务商的手册。
- 请将公开文件夹(文档根目录)设为 GeckoFlag 文件夹内的
webroot文件夹,而不是 GeckoFlag 文件夹本身。 - 请根据您的环境修改
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;
}
# 仅将 index.php 作为 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 的手册。