本站就是用这套流程搭起来的。从一台只有 SSH 权限的空机器,到域名能正常访问,整理成可复用的步骤。
环境准备
# 更新系统并装齐组件
apt update && apt upgrade -y
apt install -y nginx mysql-server php8.2-fpm php8.2-mysql \
php8.2-curl php8.2-gd php8.2-mbstring php8.2-xml unzipTypecho 对 PHP 版本要求不苛刻,但 mbstring 和 gd 是硬依赖,漏装会在后台报错。
数据库
mysql -uroot -pCREATE DATABASE it365 CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'it365'@'localhost' IDENTIFIED BY '换成你自己的强密码';
GRANT ALL PRIVILEGES ON it365.* TO 'it365'@'localhost';
FLUSH PRIVILEGES;字符集一定用 utf8mb4。utf8 在 MySQL 里是每字符最多 3 字节,存不了 emoji,改起来很麻烦。
部署站点文件
cd /var/www
wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip
unzip typecho.zip -d it365
chown -R www-data:www-data it365
chmod -R 755 it365Nginx 配置
server {
listen 80;
server_name it365.wang;
root /var/www/it365;
index index.php index.html;
access_log /var/log/nginx/it365.access.log;
error_log /var/log/nginx/it365.error.log;
location / {
try_files $uri $uri/ /index.php$is_args$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;
}
location ~ /\.ht { deny all; }
# 静态资源长缓存
location ~* \.(css|js|png|jpg|svg|webp|woff2)$ {
expires 30d;
access_log off;
}
}try_files 那行是 Typecho 的伪静态基础,写错了会出现除首页外全部 404。
完成安装
浏览器访问域名,按向导填写数据库信息即可。装完先做三件事:
- 删掉
install.php(Typecho 通常会提示,但确认一下更稳妥)。 - 后台 → 设置 → 永久链接,启用伪静态并选择喜欢的路径格式。
- 配好备份,别等到出问题才想起来。
上线检查清单
- [ ] HTTPS 证书已配置且自动续期正常
- [ ]
install.php已移除 - [ ] 数据库账号只授权本站库,不用 root
- [ ] 附件目录
usr/uploads可写 - [ ] 备份脚本已加入 crontab 并验证过恢复
小结
整套流程并不复杂,容易出问题的都是细节:字符集选 utf8mb4、try_files 别写错、装完删安装文件、上线前确认备份可用。把这四件事做对,站点就能长期稳定运行。