1. 背景
服务器内存资源有限(2GB),原Halo博客基于Java技术栈,运行时内存占用超过1GB,占据了服务器总内存一半以上。而博客本身属于低频使用服务,这样的资源占用于其实际使用频率严重不匹配。
更关键的是,剩余内存不足以支撑其他必要应用服务的部署,服务器资源的有效利用率极低。Typecho内存占用远低于Halo,替换后可将博客服务的资源消耗降至最低,为其他必要应用腾出部署空间。
2. 前置说明
| 内容 | 说明 |
|---|---|
| 使用场景 | Centos 7, 已部署Nginx,域名已解析 |
| 技术栈 | Nginx(已有)/php/Sqlite |
| 预期结果 | 通过已有域名访问Typecho博客 |
| 前置条件 | Nginx正常运行,域名正常解析,具备root或sudo权限 |
-
为了方便,本文所有命令均root账户执行。
3. 安装过程
3.1 安装php环境
安装php所需内容
# 1. 安装必须配置 yum install -y php php-fpm php-gd php-mbstring php-xml php-curl php-zip php-sqlite3 # 2. 启动开机自启 systemctl enable --now php-fpm更改php-fpm运行用户【防止出现权限问题】,
9000默认端口被占用改成19000编辑配置
vim /etc/php-fpm.d/www.conf找到并修改
listen = 127.0.0.1:19000 user = nginx group = nginx listen.owner = nginx listen.group = nginx listen.mode = 0660
保存,重启php-fpm
systemctl restart php-fpm
3.2 安装Typecho
- 下载Typecho1.3.0,官网地址,点击跳转
https://typecho.org/download - 上传文件到服务器中
创建网站目录并授权
【由于我准备使用的域名是blog.caihn.cc,因此后面目录也是如此】# 1. 创建目录 mkdir -p /var/www/blog.caihn.cc # 2. 进入目录 cd /var/www/blog.caihn.cc # 3. 将文件放到当前目录解压 unzip typecho.zip # 4. 授权文件给nginx用户,由于我的nginx是nginx用户启动的,因此这里授权 chown -R nginx:nginx /var/www/blog.caihn.cc chmod -R 770 /var/www/blog.caihn.cc/usr
3.3 配置Nginx站点
nginx中的证书都是通用的,并且已经将所有请求都跳转到https中,以下是nginx的跳转配置
server { listen 80; listen [::]:80; server_name caihn.cc *.caihn.cc; rewrite ^(.*)$ https://$host$1; } server { listen 80 default_server; listen 443 ssl default_server; server_name _; ssl_certificate /etc/nginx/ssl/caihn.cc/caihn.cc.pem; ssl_certificate_key /etc/nginx/ssl/caihn.cc/caihn.cc.key; return 404; }
配置blog对应的配置
server { listen 443 ssl; server_name caihn.cc blog.caihn.cc www.caihn.cc; root /var/www/blog.caihn.cc; index index.php index.html; ssl_certificate /etc/nginx/ssl/caihn.cc/caihn.cc.pem; ssl_certificate_key /etc/nginx/ssl/caihn.cc/caihn.cc.key; # Typecho 伪静态规则 location / { try_files $uri $uri/ /index.php$is_args$args; } # PHP解析,确认你php-fpm端口为19000 location ~ \.php$ { fastcgi_pass 127.0.0.1:19000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } # 禁止访问 .ht 隐藏文件 location ~ /\.ht { deny all; } }nginx语法验证并重载
# 1. 语法验证 nginx -t # 2. 重载 nginx -s reload
4. 验证结果
- 浏览器打开
https://blog.caihn.cc,这里打开的已经是我换了主题的页面
- 后台页面
https://blog.caihn.cc/admin
5. 后续内容
- 主题选择:挑选了很久,我这里选择的主题是
PureLoveForTypecho
但是这个主题和其他插件有很多不合适的地方,需要多多注意,为了保持这个主题,我就用最原始的内容 特别点:
备案更换,站点信息主题之前替换会丢失之前的内容归档页需要自己创建
6. 总结
本次迁移的核心目标是释放服务器内存资源。在 2GB 内存限制下,原 Halo 博客(Java + MySQL)占用超过一半内存,导致其他必要服务无法部署。替换为 Typecho(PHP + SQLite)后,博客服务的内存占用从 1GB+ 降至极低水平,服务器资源得以重新分配。
部署过程顺利完成,站点已通过 https://blog.caihn.cc 正常访问,后台管理功能可用。后续主题与插件的适配属于个人化调整,不影响本次迁移的核心成果。
至此,博客服务不再是服务器资源的“负担”,服务器也具备了承载更多应用的能力。