在 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 的安装向导页面,按以下步骤操作:
-
数据库配置:
- 数据库适配器:选择
Mysqli - 数据库地址:
localhost - 数据库名:
typecho - 数据库用户名:
typecho - 数据库密码:你之前设置的密码
- 数据库前缀:保持默认
typecho_即可
- 数据库适配器:选择
-
站点设置:填写站点名称、管理员用户名、密码和邮箱。
-
点击"完成安装",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而非apt或dnf - 服务管理:使用
rc-service和rc-update而非systemctl - 运行用户:Nginx 默认用户是
nginx而非www-data - 配置路径:Nginx 站点配置在
/etc/nginx/http.d/,PHP 配置在/etc/php83/
Alpine + Typecho 的组合极其轻量,非常适合低配 VPS 或个人云服务器。部署完成后,你就可以专注于写作本身了。祝博客之旅愉快!
- 点赞
- 收藏
- 关注作者
评论(0)