系统:Rocky Linux 9.5 (Blue Onyx)

在 Rocky Linux 上,安装 PHP‑FPM 与扩展,以及配置 Nginx 和 SELinux,大致步骤如下。
1. 启用 EPEL 和 Remi 源
默认 Rocky 源里的 PHP 版本可能偏旧,推荐使用 Remi 源来安装 PHP 7.4+。
bash
# 安装 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




2. 安装 PHP-FPM 及必要扩展
bash
sudo dnf install -y php-fpm php-mysqlnd php-gd php-mbstring php-xml php-curl
# 启动并设为开机自启
sudo systemctl enable --now php-fpm
检查服务状态:
bash
systemctl status php-fpm


3. 下载并部署 Typecho
bash
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官网地址下载安装包上传到云服务器里。


4. 设置 SELinux 上下文
Rocky Linux 默认启用 SELinux,需要给 Typecho 的上传目录打标签,否则会被阻止写入。
bash
# 给 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
,请先:
bashsudo dnf install -y policycoreutils-python-utils
5. 创建数据库
假设使用 MariaDB/MySQL:
bash
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/
段:
nginx
# 处理 /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:
bash
sudo nginx -t && sudo systemctl reload nginx
7. 运行安装向导
浏览器访问:
arduino
https://www.seekersferry.com/blog/install.php

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

8. 最后检查
-
后台登录:
arduinohttps://www.seekersferry.com/blog/admin

-
确保
usr/uploads
可写,上面 SELinux 标签正确。 -
SSL、防火墙(
firewalld
)等根据需要打开/关闭端口。
最后效果如下:
补充: 安装插件
- 官网上插件列表:docs.typecho.org/plugins/dow...
- github上的插件:github.com/typecho-fan...