基于 Rocky linux 9.5

wordpress 要求

PHP 7.4 or greater
MySQL 5.7 or MariaDB 10.3 or greater
HTTPS support

1.安装 php

更新系统:

sudo dnf update -y

查找可用的 PHP 版本

sudo dnf module list php

有8.2版本,指定对应的版本

sudo dnf module enable php:8.2 -y

安装 php

sudo dnf install php php-cli php-fpm php-mysqlnd php-gd php-xml php-mbstring php-opcache -y

查看 php 版本

php -v

成功安装 php 8.2

启动和启用 php-fpm 服务

sudo systemctl start php-fpm
sudo systemctl enable php-fpm

2.安装MariaDB

Rocky Linux 的官方仓库默认包含 MariaDB,它是 MySQL 的一个流行的分支,与 MySQL 高度兼容,并且是许多发行版默认的数据库选择。对于大多数应用来说,使用 MariaDB 已经足够。

  1. 安装 MariaDB 服务器和客户端:
sudo dnf install mariadb-server mariadb -y
- `mariadb-server`: MariaDB 数据库服务器。
- `mariadb`: MariaDB 客户端工具,用于连接和管理数据库。

2. 启动 MariaDB 服务:

sudo systemctl start mariadb
  1. 设置 MariaDB 服务开机自启动:
sudo systemctl enable mariadb
  1. 运行安全安装脚本: 这是非常重要的一步,用于提高 MariaDB 的安全性。
sudo mysql_secure_installation

这个脚本会引导您完成以下步骤: - 设置 root 用户密码。 - 移除匿名用户。 - 禁止 root 用户远程登录。 - 移除测试数据库及其访问权限。 - 重新加载权限表。 请按照提示操作,建议选择 Y 来启用这些安全措施。 5. 验证安装:

sudo systemctl status mariadb

确保服务正在运行。

mysql -V

这将显示已安装的 MariaDB 客户端版本。 您也可以使用 root 用户连接数据库:

sudo mysql -u root -p

然后输入您在安全安装脚本中设置的 root 密码。成功连接后,您将看到 MariaDB 的命令行提示符。输入 exit 退出。

防火墙设置

希望从外部访问 MySQL 数据库(例如从另一台服务器上的应用程序连接),您需要在防火墙中打开 MySQL 的默认端口 3306

 
sudo firewall-cmd --add-port=3306/tcp --permanent 
sudo firewall-cmd --reload

3.部署 WordPress

主要步骤

  1. 安装 Web 服务器 (Nginx): 如果您还没有安装 Nginx,需要先安装它。
  2. 创建 WordPress 数据库和用户: 为 WordPress 创建一个独立的数据库和数据库用户。
  3. 下载和解压 WordPress 文件: 从 WordPress.org 官方网站下载最新版本的 WordPress。
  4. 配置 Web 服务器 (Nginx) 虚拟主机: 设置 Nginx 来处理您的域名并指向 WordPress 文件。
  5. 配置 WordPress: 运行 WordPress 的安装向导,连接数据库并完成基本设置。
  6. 设置文件权限: 确保 Web 服务器用户对 WordPress 文件有适当的读写权限。
  7. 配置防火墙: 如果需要从外部访问您的 WordPress 网站,需要打开 HTTP/HTTPS 端口。

详细步骤:

步骤 1:安装 Web 服务器 (Nginx)

如果您还没有安装 Nginx,请运行以下命令:

sudo dnf install nginx -y

安装完成后,启动并设置 Nginx 开机自启动:

sudo systemctl start nginx
sudo systemctl enable nginx

步骤 2:创建 WordPress 数据库和用户 (使用 MariaDB)

  1. 登录 MariaDB:
sudo mysql -u root -p

输入您的 MariaDB root 用户密码。 14. 创建数据库: 为 WordPress 创建一个数据库(例如 wordpress_db)。

CREATE DATABASE wordpress_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci
- `CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci`: 推荐使用这个字符集和排序规则,以便支持更广泛的字符。

15. 创建数据库用户和密码: 创建一个专门用于 WordPress 的数据库用户(例如 wordpress_user),并为其设置一个强密码(将 'your_strong_password' 替换为您自己的密码)。

CREATE USER 'wordpress_user'@'localhost' IDENTIFIED BY 'your_strong_password'
- `'localhost'`: 表示该用户只能从本地连接数据库。如果您需要从其他服务器连接,请将 `'localhost'` 替换为相应的 IP 地址或 `%` (允许从任意主机连接,不推荐)。

16. 授予用户数据库权限: 授予新创建的用户对 wordpress_db 数据库的所有权限。

GRANT ALL PRIVILEGES ON wordpress_db.* TO 'wordpress_user'@'localhost';
  1. 刷新权限: 使更改生效。
FLUSH PRIVILEGES;
  1. 退出 MariaDB:
EXIT;

步骤 3:下载和解压 WordPress 文件

  1. 进入 Web 根目录: 我们将使用 /usr/share/nginx/html 作为示例。
cd /usr/share/nginx/html/
  1. 下载最新版本的 WordPress: 访问 WordPress.org 下载页面,复制最新版本的 .tar.gz 下载链接。然后使用 wget 下载:
sudu dnf install wget -y
sudo wget https://wordpress.org/latest.tar.gz
  1. 解压 WordPress 文件:
sudo dnf install tar -y
sudo tar -xvzf latest.tar.gz

这将创建一个名为 wordpress 的目录,其中包含 WordPress 的所有文件。 22. 删除下载的压缩包:

sudo rm latest.tar.g

步骤 4:配置 Web 服务器 (Nginx) 虚拟主机

您需要告诉 Nginx 如何处理您的 WordPress 网站。

  1. 创建 Nginx 配置文件:/etc/nginx/conf.d/ 目录下创建一个新的配置文件,例如 wordpress.conf
sudo vim /etc/nginx/conf.d/wordpress.conf
  1. 粘贴以下配置代码:your_domain.com 替换为您自己的域名。
server {
     listen 80;
     server_name your_domain.com; # 将 your_domain.com 替换为您的域名
     root /usr/share/nginx/html/wordpress; # 将此路径替换为您的 WordPress 文件所在的目录
     index index.php index.html index.htm;
 
     location / {
         try_files $uri $uri/ /index.php?$args;
     }
 
     location ~ \.php$ {
         fastcgi_pass unix:/run/php-fpm/www.sock; # 或您的 php-fpm socket 文件路径
         fastcgi_index index.php;
         fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
         include fastcgi_params;
     }
 
     # 阻止访问隐藏文件
     location ~ /\.ht {
         deny all;
     }
}
 
- `server_name`: 设置您的域名。
- `root`: 设置您的 WordPress 文件所在的目录。
- `fastcgi_pass`: 指定 PHP-FPM 的 socket 文件路径。如果您在安装 PHP 时使用了默认设置,通常就是 `/run/php-fpm/www.sock`。如果您使用了 Remi 仓库或有其他配置,请确认正确的路径。
- 其他设置是为了确保 Nginx 正确地处理 PHP 文件和 WordPress 的永久链接。

25. 保存并关闭文件:Ctrl+X,然后按 Y,最后按 Enter。 26. 检查 Nginx 配置语法:

sudo nginx -t

如果出现 syntax is oktest is successful,说明配置没有问题。 27. 重新加载 Nginx 配置:

sudo systemctl reload nginx

步骤 5:设置文件权限

更改 PHP-FPM 的用户和组

为了保持一致性和简化权限管理,将 PHP-FPM 池的运行用户也设置为 nginx

  1. 编辑 PHP-FPM 配置文件
sudo vim /etc/php-fpm.d/www.conf
  1. 修改 **user****group** 指令: 找到以下行:
user = apache
group = apache

将它们更改为:

user = nginx
group = nginx
  1. 保存文件并退出编辑器。
  2. 重启 PHP-FPM 服务以使更改生效:
sudo systemctl restart php-fpm
  1. 重启 Nginx 服务
sudo systemctl restart nginx

完成这些步骤后,PHP-FPM 进程将以 nginx 用户和组的身份运行。由于你的 WordPress 文件也由 nginx 用户和组拥有,PHP 脚本(通过以 nginx 身份运行的 PHP-FPM 进程执行)将拥有对这些文件的适当权限(假设文件权限设置正确,例如所有者有读写权限)。

sudo vim /etc/php-fpm.d/www.conf

Web 服务器用户 (通常是 nginx) 需要对 WordPress 文件有适当的读写权限,以便 WordPress 可以创建和修改文件(例如上传媒体、安装插件和主题)。

  1. 更改 WordPress 目录的所有者: 将 WordPress 目录及其内容的所有者更改为 Web 服务器用户和组(通常是 nginx:nginx)。
sudo chown -R nginx:nginx /usr/share/nginx/html/wordpress
  1. 设置目录权限:
sudo find /usr/share/nginx/html/wordpress -type d -exec chmod 755 {} \;
  1. 设置文件权限:
sudo find /usr/share/nginx/html/wordpress -type f -exec chmod 644 {} \;

注意: 在某些情况下,您可能需要对特定的目录(例如 wp-content/uploads/)赋予更宽松的权限(例如 775 或 777)以允许 WordPress 上传文件。但出于安全考虑,推荐在完成安装并上传文件后将权限改回 755。

步骤 6:配置防火墙

如果您需要从外部访问您的 WordPress 网站,需要打开 HTTP (端口 80) 和 HTTPS (端口 443) 端口。

sudo firewall-cmd --permanent --add-service=http
sudo firewall-cmd --permanent --add-service=https
sudo firewall-cmd --reload

关闭 selinux

sudo vim /etc/selinux/config

更改 selinux 的状态

SELINUX=disabled

保存后重启服务器

reboot

步骤 7:配置 WordPress

现在您可以通过 Web 浏览器访问您的服务器 IP 地址或域名来运行 WordPress 的安装向导了。

  1. 在浏览器中访问您的服务器 IP 地址或域名:
http://your_server_ip_or_domain.com
  1. 选择语言: 选择您想要的语言。
  2. 信息页面: WordPress 会提示您需要数据库名称、用户名、密码和主机等信息。点击 “现在就开始!”。
  3. 填写数据库信息:
    • 数据库名: wordpress_db (您在步骤 2 中创建的数据库名称)
    • 用户名: wordpress_user (您在步骤 2 中创建的数据库用户)
    • 密码: your_strong_password (您在步骤 2 中设置的密码)
    • 数据库主机: localhost
    • 表前缀: 通常保持默认的 wp_ 即可,如果您在同一数据库中安装多个 WordPress,可以修改它。
  4. 提交并运行安装: WordPress 会尝试连接数据库。如果连接成功,点击 “进行安装”。
  5. 填写站点信息:
    • 站点标题: 您的网站标题。
    • 用户名: 用于登录 WordPress 后台的管理员用户名。
    • 密码: 用于登录 WordPress 后台的管理员密码。请选择一个强密码。
    • 您的电子邮件: 您的电子邮件地址。
    • 对搜索引擎可见性: 根据您的需求选择是否允许搜索引擎索引您的网站。
  6. 安装 WordPress: 点击 “安装 WordPress”。
  7. 登录: 安装完成后,您会看到一个成功页面。点击 “登录” 进入 WordPress 后台。

恭喜! 您已经成功在 Rocky Linux 服务器上部署了 WordPress.org。

解除插件限制

增加插件直接读写文件,在图中位置直接增加代码

define('FS_METHOD', 'direct');

  1. 确认 Nginx/PHP-FPM 使用的 **php.ini** 文件:
    • 在你的 WordPress 网站根目录创建一个名为 info.php 的文件(或者其他你喜欢的名称),内容如下:
<?php
phpinfo();
?>
- 通过浏览器访问这个文件(例如 `你的网站域名/info.php`)。
- 在打开的 `phpinfo()` 页面中,找到 "Loaded Configuration File" 或 "php.ini" 行,记下显示的 `php.ini` 文件路径。 **这个路径就是你需要修改的 **`**php.ini**`** 文件。**
- **重要:** 检查 `phpinfo()` 输出中的 `upload_max_filesize` 和 `post_max_size` 值,看它们当前是多少。

45. 编辑正确的 **php.ini** 文件: - 使用命令行编辑器打开你在上一步找到的 php.ini 文件。例如:

vim /etc/php.ini  # 在 phpinfo() 中找到的实际路径
- 找到 `upload_max_filesize` 和 `post_max_size` 这两行,修改它们的值为你想要的大小(例如,为了上传 500MB 的文件,你可以设置为 `512M` 或更大,记住 `post_max_size` 应该大于或等于 `upload_max_filesize`)。
upload_max_filesize = 512M
post_max_size = 512M
- 处理大文件需要更多内存,如果这个值太小,可能会导致内存不足错误。建议将其设置为比 `post_max_size` 大一些的值,例如 `512M` 或 `1024M`。
memory_limit = 512M
- 保存并关闭 `php.ini` 文件。

46. 重启 Nginx 和 PHP-FPM 服务: 确保更改生效。

sudo systemctl restart nginx
sudo systemctl restart php-fpm 
  1. 再次通过浏览器访问 **info.php** 文件: 查看 upload_max_filesizepost_max_size 的值是否已经更新为你修改后的值。如果值已经改变,说明你的修改已经生效。
  2. 删除 **info.php** 文件: 出于安全考虑,在确认配置已生效后,请删除你创建的 info.php 文件。