从零开始搭建typecho

118 阅读4分钟

系统:Rocky Linux 9.5 (Blue Onyx)

image.png

在 Rocky Linux 上,安装 PHP‑FPM 与扩展,以及配置 Nginx 和 SELinux,大致步骤如下。


1. 启用 EPEL 和 Remi 源

默认 Rocky 源里的 PHP 版本可能偏旧,推荐使用 Remi 源来安装 PHP 7.4+。

# 安装 EPEL
sudo dnf install -y epel-release

# 安装 Remi 源仓库
sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-9.rpm

# 启用 Remi PHP 8.3 槽(也可改成 remi-8.0、remi-8.1)
sudo dnf module reset -y php
sudo dnf module enable -y php:remi-7.3

image.png

image.png

image.png

image.png

2. 安装 PHP-FPM 及必要扩展

sudo dnf install -y php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl

# 启动并设为开机自启
sudo systemctl enable --now php-fpm

检查服务状态:

systemctl status php-fpm

image.png

image.png

3. 下载并部署 Typecho

cd /var/www/html 
wget https://github.com/typecho/typecho/releases/latest/download/typecho.zip 
dnf install unzip -y 
unzip typecho.zip 
chown -R www-data:www-data /var/www/typecho/ 
chmod -R 755 /var/www/typecho/ 
chmod -R 777 /var/www/typecho/usr/uploads

这里因为云服务网络问题,所以使用我的Windows电脑从typecho官网地址下载安装包上传到云服务器里。

image.png

image.png

4. 设置 SELinux 上下文

Rocky Linux 默认启用 SELinux,需要给 Typecho 的上传目录打标签,否则会被阻止写入。

# 给 uploads 目录及其子目录设置可写权限类型
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/typecho/usr/uploads(/.*)?'
sudo restorecon -Rv /var/www/typecho/usr/uploads

如果你还未安装 policycoreutils-python-utils,请先:

sudo dnf install -y policycoreutils-python-utils

5. 创建数据库

假设使用 MariaDB/MySQL:

sudo dnf install -y mariadb-server
sudo systemctl enable --now mariadb

# 安全配置(可交互)
sudo mysql_secure_installation

# 登录并创建库
mysql -u root -p <<SQL
CREATE DATABASE typecho_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'typecho_user'@'localhost' IDENTIFIED BY 'StrongPassword';
GRANT ALL ON typecho_db.* TO 'typecho_user'@'localhost';
FLUSH PRIVILEGES;
SQL

6. 修改 Nginx 配置

因为我的域名已经使用,所以我采用新增一个local块,在原来 server 块里(处理 seekersferry.com 的部分),添加 /blog/ 段:

# 处理 /blog/ 下的静态和 try_files
location /blog/ {
    root /var/www/typecho;
    index index.php index.html;
    # 有文件就直接给文件,没文件才转给 index.php
    try_files $uri $uri/ /blog/index.php?$args;
}

# 专门处理 /blog/ 下的 PHP
location ~ ^/blog/.*\.php$ {
    root /var/www/typecho;
    include fastcgi.conf;                       # 推荐比 fastcgi_params 完整
    fastcgi_pass   unix:/run/php-fpm/www.sock;
    fastcgi_index  index.php;
    # 告诉 PHP-FPM 真正的脚本位置
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}

注意

  • root /var/www/typecho; 与 URL 前缀 /blog/ 一起,会把 /blog/index.php 映射到 /var/www/typecho/index.php
  • PHP-FPM 的 socket 在 Rocky Linux 通常是 /run/php-fpm/www.sock

测试并重载 Nginx:

sudo nginx -t && sudo systemctl reload nginx

7. 运行安装向导

浏览器访问:

https://www.seekersferry.com/blog/install.php

image.png

按页面提示填写数据库信息、管理员账号等。完成后删除或重命名 install.php

image.png


8. 最后检查

  1. 后台登录:

    https://www.seekersferry.com/blog/admin
    

image.png

  1. 确保 usr/uploads 可写,上面 SELinux 标签正确。

  2. SSL、防火墙(firewalld)等根据需要打开/关闭端口。

最后效果如下:

image.png 补充: 安装插件

  1. 官网上插件列表:docs.typecho.org/plugins/dow…
  2. github上的插件:github.com/typecho-fan…