前面我们搭建好了 WordPress 网站需要的硬件设施,并做了基础配置和一些准备工作,现在我们就搭建软件环境,然后部署 WordPress 网站。
友情提示:本文教程以 Oracle Linux 10 实例为例,如果您的实例为 Ubuntu 系统或其它系统,请务必仔细核对相关命令。
连接到实例
打开终端,输入如下命令:
ssh -i /home/documents/example.key opc@121.122.131.132
其中:/home/documents/example.key 是您的私有密钥的绝对路径,opc 是 Oracle Linux 实例的登录名,如果您的实例为 Ubuntu 系统,请使用 ubuntu ,121.122.131.132 是您的实例的公共 IPv4 地址。
首次登录实例以后,请先更新一下软件源:
sudo dnf update
创建 WordPress 数据库
添加 MySQL 官方仓库:
sudo dnf install https://dev.mysql.com/get/mysql97-community-release-el10-1.noarch.rpm
安装 MySQL:
sudo dnf install mysql
连接 HeatWave 数据库:
mysql --host 10.0.1.111 -u username -p
其中:username 为您在甲骨文云后台创建 HeatWave 数据库时设定的用户名,10.0.1.111 为您的 HeatWave 数据库的专用 IP 地址,可以在这里找到:甲骨文云左上角导航菜单 -> 数据库 -> 数据库系统 -> 您的 HeatWave 数据库 -> 连接 选项卡 -> 主要端点
连接过程中需要您输入创建 HeatWave 数据库时设定的密码。 创建 WordPress 数据库:
create database wp-database character set utf8mb4;
查看刚刚创建的 WordPress 数据库:
show databases;
退出 HeatWave 数据库:
exit;
安装 Apache:
sudo dnf install httpd
查看 Apache 版本:
httpd -v
启用 Apache 并设置为开机自启动:
sudo systemctl enable --now httpd
查看 Apache 运行状态:
sudo systemctl status httpd
配置防火墙
查看防火墙运行状态,预期输出为:running
sudo firewall-cmd --state
如果防火墙未运行,启用防火墙并设置为开机自启动:
sudo systemctl enable --now firewalld
开放 80 端口:
sudo firewall-cmd --add-service=http --permanent
开放 443 端口:
sudo firewall-cmd --add-service=https --permanent
重新加载防火墙:
sudo firewall-cmd --reload
确认开放的端口,预期输出:services 中包含 http 和 https
sudo firewall-cmd --list-all
安装 PHP 及其扩展
查看可安装的 PHP 及其扩展:
sudo dnf list available php\*
安装 PHP 及其扩展:
sudo dnf install php8.4 php8.4-mysqlnd php8.4-pecl-zip php8.4-gd php8.4-intl
查看 PHP 版本:
php -v
查看 PHP 加载的模块:
php -m
修改 PHP 配置文件:
sudo nano /etc/php.ini
按 ctrl+w 查找如下参数并修改:
max_execution_time = 300 (最大查询执行时间)
• max_input_vars = 3000 (最大输入变量)
• memory_limit = 256M (内存限制)
• post_max_size = 16M (最大 POST 请求数据大小)
• upload_max_filesize = 16M (最大文件上传大小)
按 ctrl+x 后输入 y 保存并退出。
启用 PHP-FPM 并设置为开机自启动:
sudo systemctl enable --now php-fpm
查看 PHP-FPM 运行状态:
sudo systemctl status php-fpm
下载 WordPress 安装文件
进入到 Apache 文件根目录:
cd /var/www
下载 WordPress 最新版安装文件压缩包:
sudo wget https://wordpress.org/latest.tar.gz
解压缩安装文件压缩包:
sudo tar -xzf latest.tar.gz
重命名 WordPress 目录为您的站点名称:
sudo mv wordpress your-site
删除无用的安装文件压缩包:
sudo rm latest.tar.gz
创建 WordPress 子主题
可选,但是建议创建。因为应用子主题,可以避免在修改主题文件时破坏默认的主题文件,也可以避免在 WordPress 升级以后修改好的主题文件丢失。
创建子主题目录:
sudo mkdir -p /var/www/your-site/wp-content/themes/your-child-theme
创建子主题 CSS 文件:
sudo nano /var/www/your-site/wp-content/themes/your-child-theme/style.css
CSS 文件内容示例:
/*
Theme Name: your-child-theme
Template: twentytwentyfive
Author: Niuma
Author URI: https://niuma.win
Description: A child theme for Twenty Twenty-Five.
Version: 1.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: your-child-theme
*/
创建子主题 PHP 文件:
sudo nano /var/www/your-site/wp-content/themes/your-child-theme/functions.php
PHP 文件内容示例:
<?php
function your-child-theme_enqueue_styles() {
wp_enqueue_style('parent-style', get_template_directory_uri() . '/style.css');
wp_enqueue_style('child-style', get_stylesheet_directory_uri() . '/style.css', array('parent-style'));
}
add_action('wp_enqueue_scripts', 'your-child-theme_enqueue_styles');
配置 WordPress 文件权限
修改 WordPress 文件和目录的所有者和组:
sudo chown -R apache:apache /var/www/your-site
配置 SELinux 策略,使其在安装 WordPress 时可读写:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/your-site(/.*)?"
允许 WordPress 连接远程数据库:
sudo setsebool -P httpd_can_network_connect_db on
允许 WordPress 发送邮件(SMTP):
sudo setsebool -P httpd_can_sendmail on
允许 WordPress 向外发起 HTTP 请求:
sudo setsebool -P httpd_can_network_connect on
应用 SELinux 策略:
sudo restorecon -R /var/www/your-site
配置 SSL 证书(可选)
Cloudflare 为托管在它上面的域名,提供最多免费15年的源站证书服务,如果您的域名托管在Cloudflare ,刚好可以使用这个服务为 WordPress 网站配置 SSL 证书。
生成 Cloudflare 源站证书
登录到 Cloudflare 控制台 -> 进入到您的域名 -> 在左侧的导航栏展开 SSL/TLS -> 点击进入到 源服务器 -> 选择 Origin 证书 选项卡 -> 点击 创建证书 -> 选中 使用 Cloudflare 生成私钥和 CSR ,私钥类型 默认 RSA(2048) ,主机名确认列出了您的域名 *.example.com 和 example.com ,证书有效期 选择 15年 ,然后点击 创建 按钮 -> 此时页面会显示 源证书 和 私钥 ,把它们保存好以便我们安装到 WordPress 服务器,然后点击 确认 按钮。 在左侧导航栏 SSL/TLS 中,点击进入到 概述 -> 点击页面右上角的 配置 按钮 -> 加密模式 选择 完整(严格),然后点击 保存 按钮 。 将源站证书保存到 WordPress 服务器。
保存源证书:
sudo nano /etc/pki/tls/certs/your-site.pem
将 Cloudflare 生成的 源证书 内容粘贴进来,然后按 ctrl+x 输入 y 后保存退出。
保存私钥:
sudo nano /etc/pki/tls/private/your-site.key
将 Cloudflare 生成的 私钥 内容粘贴进来,然后按 ctrl+x 输入 y 后保存退出。
安装 Apache SSL 模块
sudo dnf install mod_ssl
重启 Apache :
sudo systemctl restart httpd
创建虚拟机配置文件
sudo nano /etc/httpd/conf.d/your-site.conf
内容如下:
<VirtualHost *:80>
ServerName your-site
DocumentRoot /var/www/your-site
ErrorLog /var/log/httpd/your-site-error_log
CustomLog /var/log/httpd/your-site-access_log combined
<Directory /var/www/your-site>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
<VirtualHost *:443>
ServerName your-site
DocumentRoot /var/www/your-site
SSLEngine on
SSLCertificateFile /etc/pki/tls/certs/your-site.pem
SSLCertificateKeyFile /etc/pki/tls/private/your-site.key
ErrorLog /var/log/httpd/your-site-ssl-error_log
CustomLog /var/log/httpd/your-site-ssl-access_log combined
<Directory /var/www/your-site>
Options -Indexes +FollowSymLinks
AllowOverride All
Require all granted
</Directory>
<FilesMatch \.php$>
SetHandler "proxy:unix:/run/php-fpm/www.sock|fcgi://localhost"
</FilesMatch>
</VirtualHost>
按 ctrl+x 输入 y 后保存退出。
检查 Apache 配置是否存在语法错误,预期输出为:Syntax OK
sudo apachectl configtest
重启 Apache :
sudo systemctl restart httpd
配置 Cloudflare 缓存策略
确认域名已经接入 Cloudflare 代理 登录 Cloudflare 控制台 -> 进入您的域名 -> 打开 DNS 记录 ,确认 WordPress 实际使用的 A 记录,代理状态 为 已代理 ,即显示橙色云朵。
创建页面缓存规则
展开左侧菜单栏的 缓存 ,进入到 Cache Rules 页面,点击 创建规则 ,设置一个 规则名称 ,选中 自定义筛选表达式 ,点击 编辑表达式 ,填入如下规则:
(http.host in {"your-site.com"}
and http.request.method in {"GET" "HEAD"}
and not starts_with(http.request.uri.path, "/wp-admin")
and http.request.uri.path ne "/wp-login.php"
and not starts_with(http.request.uri.path, "/wp-json")
and not starts_with(http.request.uri.path, "/xmlrpc.php")
and not starts_with(http.request.uri.path, "/wp-cron.php")
and not starts_with(http.request.uri.path, "/cart")
and not starts_with(http.request.uri.path, "/checkout")
and not starts_with(http.request.uri.path, "/my-account")
and not (http.cookie contains "wordpress_logged_in_")
and not (http.cookie contains "wordpress_sec_")
and not (http.cookie contains "wp-postpass_")
and not (http.cookie contains "comment_author_"))
缓存资格 选中 符合缓存条件 ,其它项默认,然后点击 部署 。
安装 WordPress
在浏览器输入我们绑定的域名 -> 语言选择界面,下拉选择 简体中文 -> 继续 -> 现在就开始 -> 数据库名 :输入我们创建的 WordPress 数据库 wp-database ,用户名 :输入我们创建的 HeatWave 用户 username ,密码 :输入我们创建 HeatWave 时设置的密码,数据库主机 :输入HeatWave 的专用 IP 地址 10.0.1.111 ,其它默认 -> 提交 -> 运行安装程序 -> 设置 WordPress 基本信息 -> 安装 WordPress -> 显示 成功 。

点击 登录 可以登录到 WordPress 后台。
WordPress 安装后设置
为了增强网站的安全性,WordPress 安装完成以后,建议调整一下网站文件的权限。 设置 wp-config.php 权限:
sudo chmod 400 /var/www/your-site/wp-config.php
重置所有目录和文件的 SELinux 策略为只读:
sudo semanage fcontext -a -t httpd_sys_content_t "/var/www/your-site(/.*)?"
允许 uploads 目录可写:
sudo semanage fcontext -a -t httpd_sys_rw_content_t "/var/www/your-site/wp-content/uploads(/.*)?"
重新应用 SELinux 策略:
sudo restorecon -R /var/www/your-site
当您需要修改网站文件,或者 WordPress 需要升级版本时,只需要将 SELinux 策略修改为可读写,完成以后重新设置为现在的策略即可。