在 CentOS 7 上部署 Typecho 博客完整指南
Typecho 是一款轻量、高效、原生支持 Markdown 的动态博客程序,代码量不到 400KB,仅依赖 7 张数据表即可运行,非常适合追求简洁、高性能的个人博客场景。
本教程将带你从零开始,在 CentOS 7 服务器上搭建完整的 LNMP(Linux + Nginx + MySQL + PHP)环境,并部署 Typecho 博客。
一、环境准备
本教程基于全新安装的 CentOS 7 系统,建议服务器内存 ≥ 1GB。
1. 更新系统并关闭 SELinux
# 更新系统包
sudo yum update -y
# 临时关闭 SELinux
sudo setenforce 0
# 永久关闭 SELinux(重启后生效)
sudo sed -i 's/SELINUX=enforcing/SELINUX=disabled/g' /etc/selinux/config
2. 配置防火墙
# 启动防火墙
sudo systemctl start firewalld
sudo systemctl enable firewalld
# 开放 HTTP 和 HTTPS 端口
sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload
二、安装 Nginx
# 添加 Nginx 官方源
sudo rpm -ivh http://nginx.org/packages/centos/7/x86_64/RPMS/nginx-1.18.0-1.el7.ngx.x86_64.rpm
# 安装 Nginx
sudo yum install -y nginx
# 启动并设置开机自启
sudo systemctl start nginx
sudo systemctl enable nginx
在浏览器中访问服务器 IP,看到 Welcome to nginx! 即表示安装成功。
三、安装 MySQL(MariaDB)
CentOS 7 默认使用 MariaDB 替代 MySQL,它是 MySQL 的开源分支,完全兼容。
# 安装 MariaDB
sudo yum install -y mariadb mariadb-server
# 启动并设置开机自启
sudo systemctl start mariadb
sudo systemctl enable mariadb
# 安全初始化(设置 root 密码等)
sudo mysql_secure_installation
初始化过程中按提示操作,建议:
- 设置 root 密码
- 移除匿名用户
- 禁止 root 远程登录
- 删除测试数据库
为 Typecho 创建数据库和用户:
mysql -u root -p
登录后执行以下 SQL 命令(将 your_password 替换为实际密码):
CREATE DATABASE typecho DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
CREATE USER 'typecho'@'localhost' IDENTIFIED BY 'your_password';
GRANT ALL PRIVILEGES ON typecho.* TO 'typecho'@'localhost';
FLUSH PRIVILEGES;
EXIT;
四、安装 PHP 及扩展
Typecho 1.2+ 要求 PHP ≥ 7.2,需要安装必要的扩展。
# 安装 EPEL 源
sudo yum install -y epel-release
# 安装 Webtatic 源
sudo rpm -ivh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm
# 安装 PHP 7.4 及 Typecho 所需扩展
sudo yum install -y php74w php74w-fpm \
php74w-cli php74w-common php74w-mysqlnd \
php74w-gd php74w-mbstring php74w-xml \
php74w-opcache php74w-curl php74w-json
# 启动 PHP-FPM 并设置开机自启
sudo systemctl start php-fpm
sudo systemctl enable php-fpm
修改 PHP-FPM 运行用户为 nginx:
sudo vim /etc/php-fpm.d/www.conf
找到并修改以下两行:
user = nginx
group = nginx
保存后重启 PHP-FPM:
sudo systemctl restart php-fpm
五、下载并部署 Typecho
# 创建网站根目录
sudo mkdir -p /var/www/typecho
# 下载 Typecho 最新稳定版(1.2.1)
cd /tmp
wget https://github.com/typecho/typecho/releases/download/v1.2.1/1.2.1-release.tar.gz
# 解压
tar -zxvf 1.2.1-release.tar.gz
# 将文件复制到网站根目录
sudo cp -rf build/* /var/www/typecho/
# 设置目录权限
sudo chown -R nginx:nginx /var/www/typecho
sudo chmod -R 755 /var/www/typecho
六、配置 Nginx 虚拟主机
sudo vim /etc/nginx/conf.d/typecho.conf
写入以下配置(将 your_domain.com 替换为你的域名或服务器 IP):
server {
listen 80;
server_name your_domain.com;
root /var/www/typecho;
index index.php index.html;
# Typecho 伪静态规则
location / {
try_files $uri $uri/ /index.php?$args;
}
# PHP 处理
location ~ \.php$ {
fastcgi_pass unix:/run/php-fpm/www.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
# 禁止访问隐藏文件
location ~ /\. {
deny all;
}
}
验证配置并重启 Nginx:
# 检查配置语法
sudo nginx -t
# 重启 Nginx
sudo systemctl restart nginx
七、完成 Typecho 安装
- 在浏览器中访问
http://your_domain.com/install.php - 按照安装向导填写:
- 数据库适配器:MySQL
- 数据库地址:localhost
- 数据库端口:3306
- 数据库用户名:typecho
- 数据库密码:你设置的密码
- 数据库名:typecho
- 数据库前缀:typecho_(默认即可)
- 设置管理员账号、密码和邮箱
- 点击「确认,开始安装」
安装成功后,系统会生成
config.inc.php配置文件。如果安装过程中提示无法自动写入,请手动创建该文件:
sudo vim /var/www/typecho/config.inc.php
将安装页面提供的配置内容粘贴进去即可。
八、HTTPS 配置(可选)
如果启用了 HTTPS,需要在 config.inc.php 中添加安全配置,防止登录后跳转异常:
define('__TYPECHO_SECURE__', true);
使用 Let’s Encrypt 免费证书可借助 certbot:
sudo yum install -y certbot python2-certbot-nginx
sudo certbot --nginx -d your_domain.com
九、常见问题排查
| 问题 | 解决方案 |
|---|---|
| Access denied | 检查 PHP-FPM 用户是否为 nginx,目录权限是否正确 |
| 404 页面 | 确认 Nginx 伪静态规则已正确配置 |
| 数据库连接失败 | 检查数据库名、用户名、密码是否正确 |
| 后台白屏 | 检查 PHP 扩展是否完整,尤其是 mbstring 和 pdo_mysql |
| 主题 CSS/JS 加载异常 | HTTPS 站点需在 Nginx 配置中添加 CSP 头 |
十、性能优化建议
- 启用 Nginx Gzip 压缩:在 Nginx 配置中添加
gzip on;及相关配置 - 关闭 Typecho 调试模式:确保
config.inc.php中define('__TYPECHO_DEBUG__', false); - 启用 PHP OPcache:提升 PHP 执行效率
- 调整 MySQL 缓冲区:内存充足时将
innodb_buffer_pool_size设为 512M
至此,你的 Typecho 博客已经成功部署!Typecho 原生支持 Markdown 编辑,后台简洁易用,配合丰富的主题和插件生态,可以快速搭建出个性化的个人博客。
- 点赞
- 收藏
- 关注作者
评论(0)