当前位置:首页 > 技术 > 正文内容

CentOS 8 环境下 Nginx 部署 WordPress 5.4 完整指南

访客 技术 2026年7月1日 2

下载 WordPress 安装包

首先创建下载目录并获取 WordPress 中文安装包

mkdir -p /opt/software
cd /opt/software

wget https://cn.wp101.net/latest-zh_CN.tar.gz

tar -xzvf latest-zh_CN.tar.gz

解压完成后会得到一个 wordpress 文件夹,这就是程序的核心目录。

整理项目目录结构

将解压后的 wordpress 目录重命名并移动到 Web 服务根目录。本例中将目录改名为 blog-platform 并存放至 /usr/local/www 路径下

cd /opt/software

mv wordpress blog-platform

mkdir -p /usr/local/www
mv blog-platform /usr/local/www/

接下来需要根据实际数据库配置信息,修改项目根目录下的 wp-config.php 文件,完成数据库连接参数的配置。

Nginx 配置详解

Nginx 对 WordPress 的 URL 重写支持需要特殊处理。默认的 location 配置会导致文章页面出现 404 错误。需要在 /etc/nginx/conf.d/ 目录下为该项目创建独立的配置文件

# WordPress站点配置
# 创建时间: 2020/04/29

server {
    listen 80;
    server_name 192.168.1.100 blog.mysite.com;

    access_log /var/log/nginx/blog-access.log;
    error_log /var/log/nginx/blog-error.log;

    location / {
        root /usr/local/www/blog-platform;
        index index.php index.html;

        # URL重写关键配置
        try_files $uri $uri/ /index.php?$args;
    }

    # 管理后台重写规则
    rewrite /wp-admin$ $scheme://$host$uri/ permanent;

    # 错误页面配置
    error_page 401 402 403 404 500 502 503 504 /error.html;
    location = /error.html {
        root /usr/local/www/blog-platform;
    }

    # PHP-FPM处理配置
    location ~ \.php$ {
        root /usr/local/www/blog-platform;
        fastcgi_pass unix:/run/php-fpm/blog.sock;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }
}

编辑 /etc/nginx/nginx.conf 文件,在 http 区域中添加 include /etc/nginx/conf.d/*.conf; 指令以加载站点配置。

Nginx 与 PHP-FPM 之间通过 Unix Socket 通信,需要在 Nginx 配置目录中创建对应的上游服务定义

upstream php-fpm-blog {
    server unix:/run/php-fpm/blog.sock;
}

PHP-FPM 进程管理器配置

CentOS 8 通过 yum 安装的 PHP-FPM 配置文件位于 /etc/php-fpm.conf/etc/php-fpm.d/*.conf。主配置文件通过 include 指令加载子配置,建议在 /etc/php-fpm.d/ 目录下为每个站点创建独立的配置文件

; 进程池名称定义为 blog
[blog]

; 运行用户和用户组
user = nginx
group = nginx

; 监听地址配置
listen = /run/php-fpm/blog.sock

; Socket权限设置
listen.owner = nginx
listen.group = nginx
listen.mode = 0660

; 性能参数优化
pm = dynamic
pm.max_children = 50
pm.start_servers = 5
pm.min_spare_servers = 5
pm.max_spare_servers = 35
pm.max_requests = 500

注意 [blog] 标识符用于区分不同的 PHP-FPM 进程池,便于多站点管理。listen 参数必须与 Nginx 配置中的 fastcgi_pass 路径保持一致,否则两者无法正常通信。

文件权限配置

当前所有文件操作均使用 root 身份完成,Nginx 进程无法正常读写项目文件。需要将目录所有权变更给 nginx 用户

chown -R nginx:nginx /usr/local/www/blog-platform

-R 参数确保目录及其所有子文件和子目录的权限同时被修改。

启动服务

完成所有配置后,按顺序启动 PHP-FPM 和 Nginx 服务

systemctl start php-fpm
systemctl start nginx

使用浏览器访问服务器 IP 或域名,进入 /readme.html 验证安装,或直接访问 /wp-admin/install.php 开始 WordPress 安装向导。

配置要点总结

  • Nginx 配置 WordPress 时,必须在 location 块中添加 try\_files 指令实现伪静态
  • Nginx 与 PHP-FPM 通过 Socket 或 TCP 通信时,双方配置必须保持一致
  • 云服务器环境需检查安全组规则和系统防火墙,确保 80 端口正常开放
  • 如使用云数据库,需要在数据库安全组中添加 Web 服务器的访问权限

相关文章

Linux crontab 详解

1) crontab 是什么cron 是 Linux 的定时任务守护进程;crontab 是用来编辑/查看“按时间周期执行命令”的表(cron table)。常见两类:用户 crontab:每个用户一份(crontab -e 编辑)系统级 crontab / cron.d:可指定执行用户(/etc/crontab、/etc/cron.d/*)2) crontab 时间...

富文本里可以允许的 HTML 属性

一、所有标签默认允许的安全属性(极少)class        (可选)id           (通常建议禁用)title️ 注意:id 容易被滥用做锚点注入,很多系统直接禁用class 允许的话最好只允许固定前缀(如 editor-*)二、a 标签允许属性<a href="" t...

Mac 安装 Node.js 指南

方法一:通过官网安装包(最简单,适合初学者)如果你只是想快速安装并开始使用,这是最直接的方法。访问 Node.js 官网。页面会显示两个版本:LTS (Recommended For Most Users):长期支持版,最稳定。建议选这个。Current:最新特性版,包含最新功能但可能不够稳定。下载 .pkg 安装包并运行。按照安装向导点击“下一步”即可完成。方法二:使用 Homebrew 安装(...

Dom\HTML_NO_DEFAULT_NS 的副作用:自动加闭合标签

在使用Dom\HTMLDocument时,Dom\HTML_NO_DEFAULT_NS 将禁止在解析过程中设置元素的命名空间, 此设置是为了与DOMDocument向后兼容而存在的。当使用它时,已知的一个副作用就是:自动加闭合标签例如 </img> 为什么会这样?当你使用:Dom\HTML_NO_DEFAULT_NS文档会变成 无命名空间模式,此时内部更接近 XML...

Laravel 事件和监听器创建

在 Laravel 中,使用 Artisan 命令创建 Events(事件) 和 Listeners(监听器) 是非常高效的。你可以通过以下几种方式来实现:1. 手动创建单个 Event如果你只想创建一个事件类,可以使用 make:event 命令:Bashphp artisan make:event UserRegistered执行后,文件将生成在 app/Even...

自定义域名解析神器 dnsmasq

什么是 dnsmasq?dnsmasq 是一个轻量级、功能强大的网络服务工具,专为小型和中等规模网络设计。它是一个综合的网络基础设施解决方案[1]。dnsmasq 能做什么?功能说明应用场景DNS 转发与缓存将 DNS 查询转发到上游服务器(ISP、Google DNS 等),并在本地缓存结果加快 DNS 查询速度,减少外部 DNS 流量本地 DNS解析本地网络设备的主机名,无需编辑&n...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。