WordPress 太重,Hexo 要编译,Ghost 要 Node。如果你只是想写文章、有个能访问的博客,Typecho 是最省心的选择:PHP 单文件安装、数据库可选 SQLite、后台简洁、资源占用极低。
这篇带你从一台空白云服务器开始,装好 LNMP(Linux + Nginx + MySQL + PHP),部署 Typecho,配上 HTTPS,完整走一遍。
财富云计算 的云服务器很适合跑 Typecho,1 核 2G 就能流畅运行。做内网服务、测试环境、游戏服务端可选 NAT 型(无独立公网 IP,价格比独立 IP 机型省一半以上)。
一、为什么选 Typecho
| 对比 | Typecho | WordPress | Hexo |
|---|---|---|---|
| 语言 | PHP | PHP | Node(静态生成) |
| 数据库 | MySQL/SQLite/PostgreSQL | MySQL | 无 |
| 安装 | 上传即用 | 五分钟安装向导 | 需本地生成再部署 |
| 资源占用 | 极低(1核1G 可跑) | 中(建议 2核2G+) | 静态,几乎为零 |
| 动态功能(评论/搜索) | 有 | 有 | 需第三方 |
| 主题插件生态 | 一般 | 极丰富 | 丰富 |
| 适合 | 个人博客、文档站 | 各类网站 | 纯静态博客 |
结论:想快速有个能写、能评论、能搜索的动态博客,且服务器配置不高——Typecho 是最佳选择。本站就是 Typecho 搭建的。
二、环境准备
以下以 Ubuntu 22.04 / Debian 12 为例(CentOS 命令会标注差异)。
1)更新系统
apt update && apt upgrade -y2)安装 Nginx
apt install nginx -y
systemctl enable --now nginx3)安装 PHP 及扩展
apt install php-fpm php-mysql php-gd php-curl php-mbstring php-xml php-zip -y
php -v
systemctl enable --now php8.2-fpm # 版本号按实际CentOS:
yum install epel-release -y
yum install https://rpms.remirepo.net/enterprise/remi-release-8.rpm -y
yum module enable php:8.2 -y
yum install php php-fpm php-mysqlnd php-gd php-curl php-mbstring php-xml php-zip -y
systemctl enable --now php-fpm4)安装数据库(二选一)
方案 A:SQLite(最简单,推荐小博客)
apt install php-sqlite3 -y不需要装数据库服务,Typecho 会把数据存成一个文件。备份直接拷文件。
方案 B:MySQL/MariaDB(并发更好)
apt install mariadb-server -y
systemctl enable --now mariadb
mysql_secure_installation # 按提示设 root 密码、删匿名用户等建库:
mysql -u root -pCREATE DATABASE typecho DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'typecho'@'localhost' IDENTIFIED BY '强密码';
GRANT ALL PRIVILEGES ON typecho.* TO 'typecho'@'localhost';
FLUSH PRIVILEGES;
EXIT;三、下载并部署 Typecho
1)下载
cd /tmp
wget https://typecho.org/downloads/1.2.1-release.tar.gz
# 或官方 GitHub
# wget https://github.com/typecho/typecho/releases/download/v1.2.1/v1.2.1-release.tar.gz
mkdir -p /var/www/blog
tar -xzf 1.2.1-release.tar.gz -C /var/www/blog --strip-components=1版本号以官网为准,建议去 typecho.org 看最新版。
2)设置权限
chown -R www-data:www-data /var/www/blog # CentOS 是 nginx:nginx
find /var/www/blog -type d -exec chmod 755 {} \;
find /var/www/blog -type f -exec chmod 644 {} \;
chmod 755 /var/www/blog/usr/uploads # 上传目录需要可写四、配置 Nginx
nano /etc/nginx/sites-available/blogserver {
listen 80;
server_name blog.example.com; # 改成你的域名
root /var/www/blog;
index index.php index.html;
access_log /var/log/nginx/blog.access.log;
error_log /var/log/nginx/blog.error.log;
client_max_body_size 20m; # 上传限制
location / {
try_files $uri $uri/ /index.php?$args;
}
location ~ \.php$ {
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止访问敏感文件
location ~ /\. {
deny all;
}
location ~* \.(sql|bak|swp|old)$ {
deny all;
}
# 静态资源缓存
location ~* \.(jpg|jpeg|png|gif|ico|css|js|woff2)$ {
expires 30d;
access_log off;
}
}启用:
ln -s /etc/nginx/sites-available/blog /etc/nginx/sites-enabled/
nginx -t
systemctl reload nginxPHP-FPM socket 路径确认:
ls /run/php/
# php8.1-fpm.sock / php8.2-fpm.sock —— 配置里要一致五、Web 安装向导
浏览器访问 http://blog.example.com,进入安装页面。
- 确认环境检测通过
填数据库信息:
- SQLite:选 SQLite,设置数据库文件名(如
typecho.db) - MySQL:填数据库名
typecho、用户名typecho、密码、主机localhost、表前缀typecho_
- SQLite:选 SQLite,设置数据库文件名(如
- 创建管理员账号:用户名、密码、邮箱(别用 admin,容易被爆破)
- 完成安装
安装后务必:
# 安装程序只在首次使用,确认没问题后可删除
rm -f /var/www/blog/install.php六、配置 HTTPS
apt install certbot python3-certbot-nginx -y
certbot --nginx -d blog.example.com按提示选择"强制跳转 HTTPS",之后 Certbot 会自动改 Nginx 配置。
验证自动续期:
certbot renew --dry-run详见本站《免费 SSL 证书申请与 HTTPS 部署》。
七、伪静态(去掉 index.php)
Typecho 默认 URL 形如 https://xxx.com/index.php/archives/1/,去掉 index.php 更好看也更利于 SEO。
Nginx 层:上面的配置已经用 try_files $uri $uri/ /index.php?$args; 实现了。
后台开启:
- 登录后台 → 设置 → 永久链接
- 勾选"启用伪静态"
- 选择 URL 风格(推荐:
/archives/{cid}/或/{slug}.html) - 保存
如果保存后 404,检查 Nginx 配置是否正确、PHP-FPM 是否运行。
八、常用优化
1)启用 Gzip
在 /etc/nginx/nginx.conf 的 http 块:
gzip on;
gzip_comp_level 6;
gzip_min_length 1024;
gzip_types text/plain text/css application/json application/javascript
application/xml text/xml image/svg+xml;2)PHP 优化
nano /etc/php/8.2/fpm/php.inimemory_limit = 128M
upload_max_filesize = 20M
post_max_size = 22M
max_execution_time = 60
opcache.enable = 1
opcache.memory_consumption = 64systemctl restart php8.2-fpm开启 OPcache 收益明显,PHP 性能可提升数倍:
apt install php-opcache -y3)PHP-FPM 进程数(1核2G 参考)
nano /etc/php/8.2/fpm/pool.d/www.confpm = dynamic
pm.max_children = 10
pm.start_servers = 2
pm.min_spare_servers = 2
pm.max_spare_servers = 5配置低就调小,避免内存不够。
4)隐藏版本号
server_tokens off;nano /etc/php/8.2/fpm/php.ini
expose_php = Off九、备份策略
SQLite 方案(超简单):
#!/bin/bash
DATE=$(date +%F)
tar -czf /backup/blog-$DATE.tar.gz /var/www/blog
find /backup -name "blog-*.tar.gz" -mtime +30 -deleteMySQL 方案:
#!/bin/bash
DATE=$(date +%F)
mysqldump -u typecho -p'密码' typecho | gzip > /backup/typecho-$DATE.sql.gz
tar -czf /backup/blog-files-$DATE.tar.gz /var/www/blog/usr/uploads
find /backup -name "typecho-*" -mtime +30 -delete加进 crontab 每天跑,详见《服务器备份与快照策略》。
十、安全加固
1)改后台路径
默认后台是 /admin/,容易被扫。可以在 config.inc.php 里改:
/** 后台路径 */
define('__TYPECHO_ADMIN_DIR__', '/mysecret-admin/');需要同时把 admin 目录改名:
mv /var/www/blog/admin /var/www/blog/mysecret-admin2)禁用文件编辑
后台"外观 → 编辑主题"可以直接改 PHP 文件,被入侵后是致命入口。建议关掉(部分版本可在 config.inc.php):
define('__TYPECHO_DISABLE_PLUGIN_EDITOR__', true);3)限制后台访问 IP(可选)
location ~ ^/(mysecret-admin|admin) {
allow 你的IP;
deny all;
include snippets/fastcgi-php.conf;
fastcgi_pass unix:/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}访问后台 location 也要正常解析 PHP,别只写 allow/deny。
4)其他
- 管理员账号不要叫 admin,密码强且唯一
- 装 fail2ban(见《fail2ban 防暴力破解实战配置》)
- 定期升级 Typecho 版本
- 删除不用的插件和主题
- 防火墙只开 80/443/SSH
十一、常见问题
| 问题 | 原因 / 解决 |
|---|---|
| 502 Bad Gateway | PHP-FPM 没启动,或 socket 路径不对 → systemctl status php8.2-fpm、ls /run/php/ |
| 安装页提示目录不可写 | chown -R www-data:www-data /var/www/blog |
| 上传图片失败 | client_max_body_size 太小、upload_max_filesize 太小、uploads 目录权限 |
| 伪静态 404 | Nginx 的 try_files 没配,或后台没开启伪静态 |
| 页面 500 | 看 /var/log/nginx/blog.error.log,多半是插件或权限 |
| 后台登录不了 | 检查 cookie 域名设置、HTTPS 混合内容 |
| 安装后无法登录 | 检查数据库表前缀、清浏览器 cookie |
| 主题显示错乱 | 静态资源 404,检查 root 路径和伪静态 |
看日志永远是第一步:
tail -f /var/log/nginx/blog.error.log
journalctl -u php8.2-fpm -f十二、进阶玩法
- 多站点:一台服务器跑多个 Typecho,用 Nginx 多 server 块(见《Nginx 反向代理与多站点配置》)
- CDN 加速:静态资源走 CDN,或整站接入
- 对象存储:图片上传走 OSS/COS,减轻服务器压力(Typecho 有对应插件)
- 邮件通知:配 SMTP 插件实现评论通知
- Markdown 编辑器:Typecho 原生支持 Markdown,装
EditorMD等插件体验更好 - 迁移:打包
/var/www/blog+ 导出数据库,在新机器还原,改config.inc.php
十三、成本建议
Typecho 非常轻量:
| 规模 | 建议配置 |
|---|---|
| 个人博客,日访问 < 1000 | 1 核 1G / 2G |
| 小型站点,日访问 1000~5000 | 2 核 2G / 4G |
| 图片较多 | 加对象存储 + CDN |
省钱技巧:
- 先买低配,资源不够再升级
- 图片放对象存储(比升级带宽便宜)
- 静态资源走 CDN
- 做内网/测试环境用 NAT 型,成本低一半以上
财富云计算 的云服务器适合部署 Typecho,1 核 2G 起步即可流畅运行,支持随时升级。如果只是在内网做文档站、测试环境,或跑游戏服务端,NAT 型云服务器(无独立公网 IP)价格比带独立 IP 的机型省一半以上,性价比非常高。
相关阅读:
- 《Nginx 安装与配置入门》
- 《免费 SSL 证书申请与 HTTPS 部署》
- 《服务器备份与快照策略》
- 《网站常见漏洞与基础防护》
延伸阅读
- 网站环境怎么选:LNMP 手动 / 宝塔面板 / Docker / 云开发
- 问卷表单系统搭建:SurveyKing / Formbricks,数据自己收
- 图床搭建:Lsky Pro / Lychee,自托管图片托管方案
- 邮件列表搭建:listmonk 自托管 Newsletter,把读者握在自己手里
- 文档站点搭建:MkDocs / VuePress / Docsify,产品文档与技术手册方案
- RSS 阅读器搭建:FreshRSS 自托管,把信息流拿回自己手里
- 短链接服务搭建:Shlink 自托管,链接数据自己掌握
- 网站状态监控页搭建:Uptime Kuma,服务器挂了第一时间知道

[...]Typecho 是国内最轻量的博客程序之一——安装包不到 500KB,跑在 1G 内存的小服务器上都毫无压力。但正因为轻,很多功能要靠主题和插件补。这篇盘点好用的 Typecho 主题和插件,讲清楚怎么装、怎么选、哪些坑要避开。本站(z0w.cn)本身就是 Typecho,下面提到的都是实测在用的方案。需要云服务器可以看看财富云计算:NAT 型无独立公网 IP,价格比独立 IP 机型省一半以上,一[...]
2026-10-13 回复
[...]MemoryMax=12G # 限额,保护其他服务个人网站(资源乞丐,但价值高)Typecho/WordPress/Halo 都行,LNMP 一套几百兆内存:数据库用 SQLite(更省)或 MySQL 小实例,选型见SQLite 与 MySQL 怎么选Typecho 搭建见用云服务器搭建 Typecho 博客Nginx 站点配置见Nginx 安装与配置入门网站和游戏服共用 N[...]
2026-10-18 回复
[...]4核16G照常有 公网IP:端口 才能进维度NAT 型独立 IPCPU / 内存 / 磁盘性能完全一致一致出站连接(你连别人)无限制无限制入站连接(别人连你)需端口映射IP 直连可映射端口数平台规则(通常 5-20)65535价格独立 IP 一半以下全价结论先行:对 90% 的个人用户场景,NAT 型和独立 IP 的体验差距只在「配置端口映射」这一步。二、完全无感的场景:映射[...]
2026-10-18 回复
[...]选购页面永远摆着两类机器:轻量应用服务器(便宜、模板多)和标准云服务器(贵、弹性大)。名字听着像「同一个东西的两种大小」,实际是两种产品逻辑。这篇说清差别,以及游戏开服该买哪种。本文基于 财富云计算 NAT 型云服务器(无独立公网 IP,价格比独立 IP 机型省一半以上)的开服实践。结论先行:开服用标准云服务器,轻量留给网站和纯新手练手。一、两类机器的本质差别维度轻量应用服务器标准云服务器定位开箱[...]
2026-10-18 回复
[...]# 用 Nginx 指向 public 目录即可适合:爱写东西、爱折腾主题、不想维护数据库的人。安全方面几乎零负担——没有数据库可拖,没有后台可爆破。方案 B:Typecho(动态,轻量 PHP)国产轻量博客程序,PHP + SQLite/MySQL,几百兆内存搞定,后台体验好。完整教程:用云服务器搭建 Typecho 博客主题插件:Typecho 主题选择与插件推荐数据库用 SQLite 还是 [...]
2026-10-18 回复
[...]└→ SQLite 起步,出现下面三个信号再迁三、三个真实场景的答案场景一:Typecho/WordPress 个人博客答案:SQLite。Typecho 原生支持 SQLite,选它连数据库服务都不用装:内存省 400M+备份 = 打包一个 .db 文件(备份方案现成)日 IP 几千以内的博客,SQLite 性能毫无压力想换机器?文件拷走即迁移教程见用云服务器搭建 Typecho 博客,SQLi[...]
2026-10-18 回复
[...]docker system prune -f --volumes六、扩展:往这套里加什么需求加什么自己的博客Typecho 容器(Typecho 搭建)数据库MySQL/PostgreSQL 容器(SQLite 与 MySQL 怎么选先想清楚)游戏服用容器跑也行(Docker 部署游戏服务器),但注意性能和存档位置密码管理Vaultwarden(Bitwarden 自建)RSS 阅读FreshRS[...]
2026-10-18 回复
[...]netsh advfirewall firewall add rule name="GameRange" dir=in action=allow protocol=UDP localport=26901-26903完整的 Windows 环境准备(远程桌面连接、运行库安装、SteamCMD 用法、开机自启、8 个常见坑)见:《Windows 云服务器开服通用前置教程》→ htt[...]
2026-10-18 回复