阿里云ECS 2核2G内存极限压榨:Docker与非Docker双方案Flarum安装+优化全记录(含中文全文搜索) - 技术宅银魂 - 科技改变生活 - 万事屋 | 生活·动漫·娱乐综合社区-银魂同好聚集地

阿里云ECS 2核2G内存极限压榨:Docker与非Docker双方案Flarum安装+优化全记录(含中文全文搜索)

作为一个常年在阿里云薅羊毛的穷站长,今天必须吐槽一下:2核2G的ECS装Flarum简直像在螺蛳壳里做道场!但偏偏这配置便宜得真香(38元/年真香警告⚠️)。经过我三天三夜的踩坑,终于总结出两套能跑的方案,现在把血泪经验打包奉上。

目录

  1. Docker版安装(30分钟速成)
  2. 原生安装(古典派折腾)
  3. 2核2G极限优化骚操作
  4. 常见问题吐槽大会

🐳 Docker版(30分钟速成)

1. 准备工作

# 先给系统换源(国内服务器必做)
sudo sed -i 's@http://.*.aliyun.com@https://mirrors.ustc.edu.cn@g' /etc/apt/sources.list
sudo apt update && sudo apt install docker.io docker-compose -y

# 设置镜像加速(阿里云用)
sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
  "registry-mirrors": ["https://uyah70su.mirror.aliyuncs.com"]
}
EOF
sudo systemctl daemon-reload && sudo systemctl restart docker

2. 一键启动

mkdir flarum && cd flarum
cat > docker-compose.yml << EOF
version: '3'
services:
  flarum:
    image: mondedie/flarum:stable
    container_name: flarum
    ports:
      - "8080:8888"
    environment:
      FORUM_URL: http://你的域名.com
      DB_HOST: mysql
      DB_NAME: flarum
      DB_USER: root
      DB_PASS: 123456
      FLARUM_ADMIN_USER: admin
      FLARUM_ADMIN_PASS: admin123
      FLARUM_TITLE: "我的吐槽论坛"
    volumes:
      - ./assets:/flarum/app/public/assets
      - ./extensions:/flarum/app/extensions
    depends_on:
      - mysql
  mysql:
    image: mysql:8.0
    container_name: mysql
    command: --default-authentication-plugin=mysql_native_password
    environment:
      MYSQL_ROOT_PASSWORD: 123456
      MYSQL_DATABASE: flarum
    volumes:
      - ./mysql:/var/lib/mysql
EOF

# 启动!
docker-compose up -d

访问 http://你的域名.com:8080 初始化,默认账号密码就是上面设置的。

🐧 原生安装(古典派折腾)

1. 系统环境

# Ubuntu 20.04实测
sudo apt update && sudo apt upgrade -y
sudo apt install nginx mysql-server php8.1-fpm php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring php8.1-xml php8.1-zip -y

2. 配置Nginx

sudo nano /etc/nginx/sites-available/flarum
# 粘贴以下内容:
server {
    listen 80;
    server_name 你的域名.com;
    root /var/www/flarum/public;
    index index.php;
    
    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {
        fastcgi_pass unix:/var/run/php/php8.1-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
    
    # 静态资源缓存
    location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
        expires 1y;
        add_header Cache-Control "public, immutable";
    }
}

3. 安装Flarum

cd /var/www
composer create-project flarum/flarum . --stability=beta
chown -R www-data:www-data /var/www/flarum

🚀 2核2G极限优化骚操作

1. 数据库优化

# MySQL 8.0配置(/etc/mysql/mysql.conf.d/custom.cnf)
[mysqld]
innodb_buffer_pool_size = 512M  # 内存25%
max_connections = 50            # 够用就行
innodb_log_file_size = 64M      # 减少磁盘IO
query_cache_type = 0            # 8.0已废弃
performance_schema = OFF        # 省内存

# 重启生效
sudo systemctl restart mysql

2. PHP-FPM优化

# 编辑 /etc/php/8.1/fpm/pool.d/www.conf
pm = ondemand
pm.max_children = 10
pm.process_idle_timeout = 10s
pm.max_requests = 500

3. Nginx压缩黑科技

gzip on;
gzip_types text/plain application/javascript application/x-javascript text/javascript text/xml text/css;
gzip_vary on;
gzip_comp_level 6;

4. 国内服务器加速

  • 静态资源全扔阿里云OSS+CDN(每月9块9的CDN包真香)
  • 启用Brotli压缩(比gzip再省30%流量)
  • 数据库每晚2点自动optimize table(crontab -e添加:0 2 * * * mysqlcheck -o flarum)

5. 中文全文搜索

# 进入MySQL
mysql -uroot -p
USE flarum;

-- 安装ngram解析器
ALTER TABLE flarum_posts ADD FULLTEXT(content) WITH PARSER ngram;
ALTER TABLE flarum_discussions ADD FULLTEXT(title) WITH PARSER ngram;

🤔 常见问题吐槽大会

Q:安装后页面空白?

A:九成是FORUM_URL写错了!Docker版检查环境变量,原生版检查config.php里的url。改完记得php flarum cache:clear

Q:2G内存跑不动?

A:把MySQL的buffer_pool砍到256M,PHP开opcache(php.ini里opcache.enable=1),瞬间省出200M内存。

Q:国内访问卡成PPT?

A:把/flarum/public/assets目录扔CDN,再装个Cloudflare免费套餐,瞬间从绿皮车变高铁。


最后的碎碎念:2核2G装Flarum就像用五菱宏光跑秋名山,虽然能跑但得会漂移。这套方案实测能扛日均1000PV(峰值同时在线50人),再往上就得上4G内存了。记得每天看一次htop,崩了别赖我!

觉得有用的话,欢迎万事屋博客留言吐槽→ https://www.rei3.com

请登录后发表评论

    没有回复内容

万事屋新帖