将 Flarum 安装到现有网站中有两种常见方法:子目录安装和子域名安装。以下是详细步骤和注意事项:

一、子目录安装法(推荐)

1. 准备工作

  • 确保现有网站服务器支持多应用共存(如 Nginx/Apache)。
  • 已安装 PHP 7.4 + 及必要扩展(见前文)。
  • 为 Flarum 创建独立数据库(如flarum_db)。

2. 创建 Flarum 目录

cd /var/www/html  # 进入网站根目录
mkdir forum        # 创建论坛目录
cd forum
composer create-project flarum/flarum . --stability=beta

3. 配置 Web 服务器(以 Nginx 为例)

修改现有网站配置文件(如/etc/nginx/sites-available/example.com):

server {
    listen 80;
    server_name example.com;
    root /var/www/html;

    # 现有网站规则
    location / {
        try_files $uri $uri/ /index.php?$query_string;  # 现有网站处理逻辑
    }

    # Flarum论坛规则(关键配置)
    location ^~ /forum/ {
        alias /var/www/html/forum/public/;
        try_files $uri $uri/ /forum/index.php?$query_string;

        # PHP处理
        location ~ \.php$ {
            fastcgi_pass unix:/run/php/php8.1-fpm.sock;  # 根据实际PHP版本调整
            fastcgi_param SCRIPT_FILENAME $request_filename;
            include fastcgi_params;
        }
    }
}

4. 配置 Apache(如果使用)

在网站根目录的.htaccess中添加:

# Flarum论坛规则
RewriteRule ^forum(/.*)?$ /forum/public$1 [L]

5. 完成安装

  • 访问 https://example.com/forum/,按向导填写数据库信息和管理员账户。
  • 注意 URL 设置:安装时需填写完整 URL(如https://example.com/forum/)。

二、子域名安装法

1. 创建子域名 DNS 记录

在域名管理面板添加 A 记录:

forum.example.com  →  服务器IP地址

2. 配置虚拟主机(Nginx)

server {
    listen 80;
    server_name forum.example.com;
    root /var/www/html/forum/public;  # 直接指向Flarum的public目录

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

    location ~ \.php$ {
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

3. 完成安装

  • 访问 https://forum.example.com/ 进行安装。

三、关键注意事项

  • 文件权限:确保 Flarum 目录可写:
chown -R www-data:www-data /var/www/html/forum
chmod -R 755 /var/www/html/forum
chmod -R 775 /var/www/html/forum/storage
  • 数据库隔离:
    为 Flarum 创建独立数据库,避免与现有网站冲突。
  • 路由冲突:
    确保现有网站的 URL 路径不与/forum/重叠。
  • HTTPS 配置:
    推荐为子域名或主域名启用 HTTPS(通过 Let’s Encrypt)。

四、故障排除

  • 404 错误:检查 Nginx/Apache 配置,确保伪静态规则正确。
  • CSS/JS 加载失败:确认安装时填写的 URL 正确,且目录权限允许写入。
  • 白屏错误:检查storage/logs/flarum.log获取详细错误信息。

通过以上方法,可将 Flarum 安全集成到现有网站中,同时保持两者的独立性。安装后,你可以通过开发自定义扩展或修改主题 CSS 来实现更深层次的集成(如共享用户登录状态)。