手里只有一台阿里云ECS 2核2G,却想跑个Flarum论坛?别急着哭,这篇干货一次给你两份作业:
① Docker懒人包,一杯奶茶时间搞定;
② Ubuntu 22.04 / Debian 12 裸机版,拒绝黑箱,调优到底。
顺带把数据库、Nginx、PHP按在地上摩擦优化,专治低配服务器各种不服,国内镜像源也安排得明明白白。
目录
🐳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安排上就行。
祝各位早日薅秃阿里云羊毛,论坛红红火火!
没有回复内容