安装Flarum时,Web服务器的配置至关重要,它决定了Flarum能否正常运行。下面分别介绍Apache和Nginx两种服务器的详细配置方法。

Apache配置方法

  1. 启用相关模块
    sudo a2enmod rewrite
    sudo a2enmod headers
    sudo systemctl restart apache2
    
  2. 创建虚拟主机配置文件
    sudo nano /etc/apache2/sites-available/flarum.conf
    

在打开的文件中添加以下内容:
```apache
<VirtualHost *:80>
ServerName yourdomain.com
ServerAlias www.yourdomain.com
DocumentRoot /var/www/flarum/public

    <Directory /var/www/flarum/public>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/flarum_error.log
    CustomLog ${APACHE_LOG_DIR}/flarum_access.log combined
</VirtualHost>
```
请将`yourdomain.com`替换为你的实际域名,将`/var/www/flarum`替换为Flarum的实际安装路径。
  1. 启用虚拟主机并重启Apache
    sudo a2ensite flarum.conf
    sudo systemctl reload apache2
    

Nginx配置方法

创建Nginx配置文件:

sudo nano /etc/nginx/sites-available/flarum

在打开的文件中添加以下内容:

server {
    listen 80;
    server_name yourdomain.com www.yourdomain.com;
    root /var/www/flarum/public;
    index index.php index.html;

    # 日志设置
    access_log /var/log/nginx/flarum_access.log;
    error_log /var/log/nginx/flarum_error.log;

    # 静态文件缓存
    location ~* \.(js|css|png|jpg|jpeg|gif|ico|svg)$ {
        expires max;
        log_not_found off;
        access_log off;
    }

    # PHP处理
    location ~ \.php$ {
        fastcgi_split_path_info ^(.+\.php)(/.+)$;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
        fastcgi_index index.php;
        include fastcgi_params;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        fastcgi_param HTTP_PROXY "";
        fastcgi_buffer_size 16k;
        fastcgi_buffers 4 16k;
        fastcgi_connect_timeout 300;
        fastcgi_send_timeout 300;
        fastcgi_read_timeout 300;
    }

    # Flarum伪静态规则
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

    # 防止敏感文件被访问
    location ~ /(config|storage|vendor)/ {
        deny all;
    }
}

请将yourdomain.com替换为你的实际域名,将/var/www/flarum替换为Flarum的实际安装路径,php8.1-fpm.sock根据你的PHP版本进行相应调整。

配置完成后的验证

配置完成后,可以通过以下方法验证配置是否成功:

  • Apache:使用命令sudo apache2ctl configtest检查配置文件语法是否正确。
  • Nginx:使用命令sudo nginx -t检查配置文件语法是否正确。

如果验证过程中出现错误,系统会提示具体的错误位置和原因,你可以根据提示对配置文件进行相应修改。