1. 首页 > 技术教程 > 正文

Typecho 极简博客:轻量化、高性能建站完整流程

Typecho 极简博客:轻量化、高性能建站完整流程

如果你正在寻找一套比 WordPress 更轻、比 Hexo 更易维护的建站方案,Typecho 极简博客是值得一试的选择。主机选的 Linux 教程里,这套流程已经帮不少运维朋友从臃肿的 PHP 站点中解脱出来。本文直接给出从环境配置到上线优化的完整步骤,适合手头有 VPS 或云服务器的朋友,全程可操作,不废话。

Typecho 极简博客:轻量化、高性能建站完整流程的图片

环境准备:LNMP 一键部署与 PHP 版本选择

Typecho 对 PHP 版本要求不高,7.4 到 8.2 都能跑。但为了性能和兼容性,建议用 PHP 8.0 或 8.1。别用太老的 PHP 5.x,万一报错你会很头疼。

安装 Nginx + MySQL + PHP 8.1

直接上 LNMP 一键脚本,省去手动编译的麻烦。这里用官方的 `lnmp1.9` 版本,稳定且支持常见发行版。

下载并执行 LNMP 安装脚本

wget http://soft.vpser.net/lnmp/lnmp1.9.tar.gz -O lnmp1.9.tar.gz
tar -zxvf lnmp1.9.tar.gz
cd lnmp1.9

执行安装,选择 PHP 8.1,MySQL 8.0,其他默认

./install.sh lnmp

执行过程中会交互式选择 PHP 版本,选 8.1 就行。安装时间取决于机器性能,VPS 上大概 15-30 分钟。期间不要中断 SSH,否则得重新来。

配置 PHP-FPM 优化

Typecho 本身轻量,但 PHP-FPM 默认配置可能太保守。调整一下能让并发更好。

编辑 PHP-FPM 配置

vim /usr/local/php/etc/php-fpm.conf

找到 `pm.max_children` 和 `pm.start_servers`,改成适合你 VPS 内存的值。比如 1G 内存的机器:

ini
pm.max_children = 20
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 10

改完重启 PHP-FPM:

/etc/init.d/php-fpm restart

下载与部署 Typecho 程序

Typecho 官方提供稳定版压缩包,直接下载到网站根目录。这里用 `/home/wwwroot/typecho` 作为示例。

创建网站目录

mkdir -p /home/wwwroot/typecho
cd /home/wwwroot/typecho

下载最新版 Typecho

wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip

解压

unzip typecho.zip

删除压缩包

rm -f typecho.zip

解压后目录结构应该是 `usr/`、`var/`、`index.php` 等。如果解压后多了一层文件夹,记得把文件移到根目录。

设置目录权限

Typecho 需要写入 `usr/` 目录下的配置文件和插件缓存。权限不对会导致安装页面空白。

设置目录所有者为 www 用户(LNMP 默认用户)

chown -R www:www /home/wwwroot/typecho

设置目录权限为 755

find /home/wwwroot/typecho -type d -exec chmod 755 {} \;

设置文件权限为 644

find /home/wwwroot/typecho -type f -exec chmod 644 {} \;

确保 usr 目录可写

chmod -R 777 /home/wwwroot/typecho/usr

> 老鸟叮嘱:`usr` 目录权限不要给 777 长期使用,安装完以后可以改成 755 或 750,只在需要更新插件或主题时临时放开。

Nginx 配置与伪静态规则

Typecho 的 URL 美化需要 Nginx 伪静态支持。不配置的话,默认 URL 是 `/?p=123` 这种,对 SEO 不友好。

创建 Nginx 虚拟主机配置

在 `/usr/local/nginx/conf/vhost/` 下新建一个配置文件,比如 `typecho.conf`。

nginx
server {
listen 80;
server_name yourdomain.com; # 替换成你的域名
root /home/wwwroot/typecho;
index index.php index.html;

# Typecho 伪静态规则
location / {
if (!-e $request_filename) {
rewrite ^(.*)$ /index.php$1 last;
}
}

location ~ \.php$ {
fastcgi_pass unix:/tmp/php-cgi.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

# 禁止访问敏感目录
location ~* /(\.git|\.svn|vendor|runtime) {
deny all;
}

# 缓存静态资源
location ~* \.(jpg|jpeg|png|gif|ico|css|js)$ {
expires 30d;
add_header Cache-Control “public, immutable”;
}
}

配置完成后,检查语法并重载 Nginx:

/usr/local/nginx/sbin/nginx -t

如果输出 syntax is ok,则重载

/usr/local/nginx/sbin/nginx -s reload

常见排障

如果访问域名出现 404 或 502,先检查伪静态规则是否生效。可以临时改成 `try_files $uri $uri/ /index.php?$args;` 这种写法,Typecho 也支持。

万一报错“No input file specified”,十有八九是 `fastcgi_param SCRIPT_FILENAME` 路径写错了,检查 `$document_root` 是否指向正确的根目录。

数据库创建与安装向导

Typecho 支持 MySQL 和 SQLite。对极简博客来说,SQLite 更轻量,但 MySQL 在并发和扩展上更稳。这里用 MySQL。

创建数据库和用户

登录 MySQL

mysql -u root -p

创建数据库

CREATE DATABASE typecho DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

创建用户并授权

CREATE USER ‘typecho_user’@’localhost’ IDENTIFIED BY ‘YourStrongPassword’;
GRANT ALL PRIVILEGES ON typecho.* TO ‘typecho_user’@’localhost’;
FLUSH PRIVILEGES;
EXIT;

数据库名和用户名随意,但密码别用太简单的,否则容易被扫到。

运行安装页面

浏览器访问 `http://yourdomain.com/install.php`,按向导填写数据库信息。安装过程极快,1 分钟搞定。安装完成后,记得删除 `install.php` 文件:

rm -f /home/wwwroot/typecho/install.php

性能优化:页面缓存与 PHP 加速

Typecho 原生性能已经很好,但加上缓存和加速,可以扛住更高的并发。

启用 OPCache

PHP 8.1 默认自带 OPCache,但没开启。编辑 `php.ini`:

vim /usr/local/php/etc/php.ini

找到 `[opcache]` 部分,改成:

ini
opcache.enable=1
opcache.memory_consumption=128
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=60

改完重启 PHP-FPM:

/etc/init.d/php-fpm restart

使用 Nginx FastCGI Cache

Nginx 可以缓存 PHP 动态页面,对 Typecho 这类内容站效果明显。在 `http` 块或虚拟主机配置中添加:

nginx

在 server 块外定义缓存路径

fastcgi_cache_path /tmp/nginx-cache levels=1:2 keys_zone=typecho_cache:10m inactive=60m;

server {
# …
location ~ \.php$ {
fastcgi_cache typecho_cache;
fastcgi_cache_valid 200 60m;
fastcgi_cache_use_stale error timeout updating;
add_header X-Cache $upstream_cache_status;
# 其他 fastcgi 参数不变
}
}

重载 Nginx 后,访问页面查看响应头,如果看到 `X-Cache: HIT`,说明缓存生效了。

> 老鸟叮嘱:开启 FastCGI 缓存后,插件或主题更新可能不会立即生效。建议在后台更新后,手动清空缓存:`rm -rf /tmp/nginx-cache/*`,然后重载 Nginx。

老鸟叮嘱:Typecho 升级与备份

Typecho 虽然稳定,但安全更新还是要跟上。升级流程很简单:备份 `usr/` 目录下的 `config.inc.php` 和 `themes/`、`plugins/`,然后覆盖新版程序文件。千万别直接删掉 `usr/` 目录,否则配置和插件全没了。

备份命令示例:

备份配置和用户数据

tar -czvf typecho_backup_$(date +%Y%m%d).tar.gz /home/wwwroot/typecho/usr/config.inc.php /home/wwwroot/typecho/usr/themes /home/wwwroot/typecho/usr/plugins

FAQ

Typecho 极简博客适合新手吗?

适合。Typecho 安装过程比 WordPress 简单得多,不需要复杂的数据库配置。只要会基本的 Linux 命令和 Nginx 配置,按本文流程走一遍就能上线。

Typecho 和 WordPress 哪个更轻量?

Typecho 明显更轻。WordPress 单页面请求可能触发几十个数据库查询,Typecho 通常只有 3-5 个,内存占用也低得多。1G 内存的 VPS 跑 Typecho 绰绰有余。

Typecho 安装后页面空白怎么办?

大概率是目录权限问题。检查 `usr/` 目录是否可写,PHP-FPM 是否正常运行。可以查看 Nginx 错误日志:`tail -f /usr/local/nginx/logs/error.log`。

Typecho 支持 Markdown 吗?

原生支持。Typecho 的编辑器默认就是 Markdown,发布文章时直接写 Markdown 语法,预览和前端渲染都很干净。

Typecho 伪静态 404 怎么解决?

确认 Nginx 配置中的伪静态规则是否正确。如果用了宝塔或其他面板,检查面板里的伪静态设置。可以临时关闭伪静态,用默认 URL 访问,排除程序本身问题。

Typecho 能扛住高并发吗?

能。配合 OPCache 和 Nginx FastCGI 缓存,Typecho 在 2G 内存的 VPS 上可以轻松应对几千并发。如果流量更大,可以考虑加一层 CDN。

转载请注明出处:https://www.zhujixuan.com/jishujiaocheng/9475.html 商家投稿邮箱:zhujixuanblog@qq.com