在 CentOS 7 上部署 Typecho 博客完整指南

举报
Chocola 发表于 2026/09/23 09:34:19 2026/09/23
【摘要】 Typecho 是一款轻量、高效、原生支持 Markdown 的动态博客程序,代码量不到 400KB,仅依赖 7 张数据表即可运行,非常适合追求简洁、高性能的个人博客场景。本教程将带你从零开始,在 CentOS 7 服务器上搭建完整的 LNMP(Linux + Nginx + MySQL + PHP)环境,并部署 Typecho 博客。 一、环境准备本教程基于全新安装的 CentOS 7 系...

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 安装

  1. 在浏览器中访问 http://your_domain.com/install.php
  2. 按照安装向导填写:
    • 数据库适配器:MySQL
    • 数据库地址:localhost
    • 数据库端口:3306
    • 数据库用户名:typecho
    • 数据库密码:你设置的密码
    • 数据库名:typecho
    • 数据库前缀:typecho_(默认即可)
  3. 设置管理员账号、密码和邮箱
  4. 点击「确认,开始安装」

安装成功后,系统会生成 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 编辑,后台简洁易用,配合丰富的主题和插件生态,可以快速搭建出个性化的个人博客。

【声明】本内容来自华为云开发者社区博主,不代表华为云及华为云开发者社区的观点和立场。转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息,否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0)

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。