在 Alpine Linux 上手动部署 Typecho 完全指南

举报
Chocola 发表于 2026/09/03 00:09:44 2026/09/03
【摘要】 在 Alpine Linux 上手动部署 Typecho 完全指南Alpine Linux 以其极致的轻量和安全性著称,搭配同样以轻量高效闻名的 Typecho 博客系统,可以说是"天作之合"——整个系统运行起来占用的内存可以控制在 100MB 以内。本文将手把手教你从零开始在 Alpine Linux 上手动部署 Typecho。 一、环境要求在开始之前,请确认你的服务器满足以下条件:系...

在 Alpine Linux 上手动部署 Typecho 完全指南

Alpine Linux 以其极致的轻量和安全性著称,搭配同样以轻量高效闻名的 Typecho 博客系统,可以说是"天作之合"——整个系统运行起来占用的内存可以控制在 100MB 以内。本文将手把手教你从零开始在 Alpine Linux 上手动部署 Typecho。


一、环境要求

在开始之前,请确认你的服务器满足以下条件:

  • 系统:Alpine Linux(3.18 及以上版本推荐)
  • 硬件:最低 1 核 CPU、512MB 内存、5GB 硬盘
  • 网络:已开放 80(HTTP)和 443(HTTPS)端口
  • 域名(可选):已解析到服务器公网 IP

二、更新系统并安装基础环境

Alpine 使用 apk 作为包管理器,服务管理使用 OpenRC(而非 systemd),这是与其他主流发行版最大的区别。

首先更新软件源索引并升级系统:

apk update && apk upgrade

接下来安装 Nginx、PHP 8.x、PHP-FPM、MariaDB 以及 Typecho 所需的 PHP 扩展:

apk add --no-cache nginx php83 php83-fpm php83-mysqli php83-mbstring \
  php83-gd php83-curl php83-json php83-xml php83-zip php83-opcache \
  php83-pdo php83-pdo_mysql mariadb mariadb-client unzip wget

提示:Alpine 的 PHP 包名通常带有版本号前缀(如 php83),你可以通过 apk search php 查看当前可用的 PHP 版本,选择适合的版本安装。


三、配置 PHP-FPM

Alpine 中 PHP-FPM 的配置文件路径与 Debian/Ubuntu 不同,通常位于 /etc/php83/php-fpm.d/www.conf

编辑该文件,确认以下关键配置:

vi /etc/php83/php-fpm.d/www.conf

确保监听方式设置为 Unix Socket:

listen = /run/php-fpm83/php-fpm.sock
listen.owner = nginx
listen.group = nginx
user = nginx
group = nginx

注意:Alpine 中 Nginx 的运行用户是 nginx,而非 Debian 系的 www-data,这一点非常关键,配置错误会导致 502 Bad Gateway。


四、配置并启动 MariaDB

启动 MariaDB 服务并设置开机自启:

rc-update add mariadb default
rc-service mariadb start

运行安全初始化脚本,设置 root 密码并移除不安全的默认配置:

mysql_secure_installation

按提示操作,建议全部选择 Y

然后登录 MariaDB,为 Typecho 创建专用数据库和用户:

mysql -u root -p

在 MariaDB 交互界面中执行:

CREATE DATABASE typecho DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'typecho'@'localhost' IDENTIFIED BY '你的强密码';
GRANT ALL PRIVILEGES ON typecho.* TO 'typecho'@'localhost';
FLUSH PRIVILEGES;
EXIT;

五、下载并部署 Typecho

创建网站根目录并下载 Typecho 最新稳定版:

mkdir -p /var/www/typecho
cd /var/www/typecho

# 从 GitHub 下载最新版本(请根据实际版本号调整)
wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip
unzip typecho.zip -d /var/www/typecho
rm typecho.zip

设置目录权限,确保 Nginx 用户有写入权限:

chown -R nginx:nginx /var/www/typecho
chmod -R 755 /var/www/typecho

六、配置 Nginx

创建 Typecho 的 Nginx 站点配置文件:

vi /etc/nginx/http.d/typecho.conf

注意:Alpine 的 Nginx 站点配置默认放在 /etc/nginx/http.d/ 目录下,而非 Debian 系的 sites-available/sites-enabled

写入以下配置内容(请将 your_domain.com 替换为你的域名或服务器 IP):

server {
    listen 80;
    server_name your_domain.com;

    root /var/www/typecho;
    index index.php index.html;

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

    # PHP 解析
    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm83/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    }

    # 禁止访问隐藏文件
    location ~ /\. {
        deny all;
        access_log off;
        log_not_found off;
    }

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

    access_log /var/log/nginx/typecho_access.log;
    error_log /var/log/nginx/typecho_error.log;
}

测试配置是否正确:

nginx -t

七、启动所有服务

使用 Alpine 的 OpenRC 启动各服务并设置开机自启:

# 启动 PHP-FPM
rc-update add php-fpm83 default
rc-service php-fpm83 start

# 启动 Nginx
rc-update add nginx default
rc-service nginx start

确认所有服务正常运行:

rc-service nginx status
rc-service php-fpm83 status
rc-service mariadb status

八、通过浏览器完成安装

打开浏览器,访问你的域名或服务器 IP:

http://your_domain.com/install.php

你将看到 Typecho 的安装向导页面,按以下步骤操作:

  1. 数据库配置

    • 数据库适配器:选择 Mysqli
    • 数据库地址:localhost
    • 数据库名:typecho
    • 数据库用户名:typecho
    • 数据库密码:你之前设置的密码
    • 数据库前缀:保持默认 typecho_ 即可
  2. 站点设置:填写站点名称、管理员用户名、密码和邮箱。

  3. 点击"完成安装",Typecho 会自动生成 config.inc.php 配置文件。


九、安装后优化(可选但推荐)

1. 配置防火墙

Alpine 默认使用 iptables,建议仅开放必要端口:

apk add --no-cache iptables
# 开放 80 和 443 端口
iptables -A INPUT -p tcp --dport 80 -j ACCEPT
iptables -A INPUT -p tcp --dport 443 -j ACCEPT

2. 配置 HTTPS

如果你已绑定域名,可以使用 certbot 申请免费的 Let’s Encrypt 证书:

apk add --no-cache certbot certbot-nginx
certbot --nginx -d your_domain.com

3. 开启 PHP OPcache

编辑 /etc/php83/php.ini,找到 [opcache] 部分,取消注释并调整:

opcache.enable=1
opcache.memory_consumption=128
opcache.max_accelerated_files=10000

重启 PHP-FPM 使配置生效:

rc-service php-fpm83 restart

十、常见问题排查

问题 可能原因 解决方案
502 Bad Gateway PHP-FPM Socket 路径不匹配 检查 Nginx 配置中的 fastcgi_pass 路径是否与 PHP-FPM 配置一致
无法写入配置文件 目录权限不足 执行 chown -R nginx:nginx /var/www/typecho
数据库连接失败 MariaDB 未启动或密码错误 检查 MariaDB 服务状态和用户凭据
伪静态不生效 Nginx rewrite 规则缺失 确认 Nginx 配置中包含 Typecho 的 rewrite 规则

总结

在 Alpine Linux 上部署 Typecho 的核心要点:

  • 包管理器:使用 apk 而非 aptdnf
  • 服务管理:使用 rc-servicerc-update 而非 systemctl
  • 运行用户:Nginx 默认用户是 nginx 而非 www-data
  • 配置路径:Nginx 站点配置在 /etc/nginx/http.d/,PHP 配置在 /etc/php83/

Alpine + Typecho 的组合极其轻量,非常适合低配 VPS 或个人云服务器。部署完成后,你就可以专注于写作本身了。祝博客之旅愉快!

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

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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