2核2G阿里云ECS装Flarum?别踩坑!Ubuntu22.04/Debian12双系统双教程+Docker裸机全攻略 - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

2核2G阿里云ECS装Flarum?别踩坑!Ubuntu22.04/Debian12双系统双教程+Docker裸机全攻略

手里只有一台阿里云ECS 2核2G,却想跑个Flarum论坛?别急着哭,这篇干货一次给你两份作业:

① Docker懒人包,一杯奶茶时间搞定;

② Ubuntu 22.04 / Debian 12 裸机版,拒绝黑箱,调优到底。

顺带把数据库、Nginx、PHP按在地上摩擦优化,专治低配服务器各种不服,国内镜像源也安排得明明白白。


目录

  1. Docker版:3条命令起飞
  2. 裸机版:Ubuntu 22.04 / Debian 12一步到位
  3. 2核2G极限压榨优化
  4. 常见问题吐槽大会

🐳Docker版:Ubuntu/Debian通用,3条命令起飞

1. 先更新系统(别嫌老套)

sudo apt update && sudo apt upgrade -y

2. 一键装Docker + 阿里云镜像加速

curl -fsSL https://get.docker.com | sudo bash
sudo mkdir -p /etc/docker
echo '{"registry-mirrors": ["https://<你的ID>.mirror.aliyuncs.com"]}' | \
  sudo tee /etc/docker/daemon.json
sudo systemctl restart docker

3. 启动Flarum全家桶

# Flarum本体
docker run -d --name flarum \
  -p 8080:80 \
  -e FORUM_URL=https://你的域名 \
  -v /opt/flarum/assets:/flarum/app/public/assets \
  -v /opt/flarum/extensions:/flarum/app/extensions \
  crazymax/flarum:latest

# MariaDB
docker run -d --name db \
  -e MYSQL_ROOT_PASSWORD=你的密码 \
  -e MYSQL_DATABASE=flarum \
  -v /opt/mysql:/var/lib/mysql \
  mariadb:10.11 --character-set-server=utf8mb4

# Redis缓存
docker run -d --name redis redis:7-alpine

剩下就是Nginx反向代理+Let’s Encrypt证书,照抄下面裸机版Nginx配置即可。


🖥裸机版:Ubuntu 22.04 / Debian 12 原汁原味

0. 系统更新

sudo apt update && sudo apt upgrade -y

1. 安装LNMP全家桶(Ubuntu/Debian通用)

# Nginx
sudo apt install nginx -y

# MariaDB
sudo apt install mariadb-server -y
sudo mysql_secure_installation

# PHP8.2(Ubuntu 22.04/Debian12官方源已带)
sudo apt install php8.2-fpm php8.2-{mysql,mbstring,xml,gd,curl,zip,opcache,bcmath,tokenizer} -y

2. 建库+授权

sudo mysql -u root -p
CREATE DATABASE flarum DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'flarumuser'@'localhost' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON flarum.* TO 'flarumuser'@'localhost';
FLUSH PRIVILEGES;
EXIT;

3. 装Composer & 下Flarum

curl -sS https://getcomposer.org/installer | php
sudo mv composer.phar /usr/local/bin/composer
cd /var/www
sudo composer create-project flarum/flarum . --stability=beta
sudo chown -R www-data:www-data /var/www

4. Nginx虚拟主机(Ubuntu/Debian通用)

sudo nano /etc/nginx/sites-available/flarum
server {
    listen 80;
    server_name 你的域名;
    root /var/www/public;
    index index.php;

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

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
    }

    location ~ /\.ht {
        deny all;
    }
}
sudo ln -s /etc/nginx/sites-available/flarum /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx

5. 免费HTTPS(Ubuntu/Debian通用)

sudo apt install certbot python3-certbot-nginx -y
sudo certbot --nginx -d 你的域名

🔥2核2G极限压榨优化(Ubuntu/Debian通用)

1. MariaDB内存瘦身

sudo nano /etc/mysql/mariadb.conf.d/50-flarum.cnf
[mysqld]
innodb_buffer_pool_size = 256M
key_buffer_size = 32M
max_connections = 30
query_cache_type = 0
performance_schema = OFF
sudo systemctl restart mariadb

2. PHP-FPM省内存

sudo nano /etc/php/8.2/fpm/pool.d/www.conf
pm = ondemand
pm.max_children = 8
pm.process_idle_timeout = 10s
; OPcache
opcache.enable=1
opcache.memory_consumption=64
opcache.max_accelerated_files=4000
sudo systemctl restart php8.2-fpm

3. Nginx加速套餐

sudo nano /etc/nginx/conf.d/flarum-optimize.conf
# 开启gzip+缓存
gzip_vary on;
gzip_types text/plain text/css application/json application/javascript;
# 静态文件长期缓存
location ~* \.(jpg|jpeg|png|gif|ico|svg|woff2)$ {
    expires 1y;
    add_header Cache-Control "public, immutable";
}
sudo nginx -t && sudo systemctl reload nginx

4. 国内镜像源(Ubuntu/Debian通用)

# Composer
composer config -g repo.packagist composer https://mirrors.aliyun.com/composer/

# APT(Ubuntu示例)
sudo sed -i 's@http://.*.ubuntu.com@https://mirrors.aliyun.com@g' /etc/apt/sources.list
sudo apt update

🤯常见问题吐槽大会

Q1:Composer内存不足?

2G内存直接炸,临时加swap:
sudo fallocate -l 2G /swapfile && sudo chmod 600 /swapfile && sudo mkswap /swapfile && sudo swapon /swapfile

Q2:502 Bad Gateway?

90%是php8.2-fpm没启动或者socket路径不对:
sudo systemctl restart php8.2-fpm,再检查/var/run/php/php8.2-fpm.sock是否存在。

Q3:上传头像413?

Nginx里加一行:
client_max_body_size 10M;,别忘了sudo systemctl reload nginx


照着做完,2核2G的阿里云ECS跑Flarum也能丝滑冲浪,
日均几千PV毫无压力。
如果访问量再涨,升级配置或者把OSS+CDN安排上就行。
祝各位早日薅秃阿里云羊毛,论坛红红火火!

请登录后发表评论

    没有回复内容

万事屋新帖