wordpress/Rocky9.0部署Wordpress.md
2025-06-19 09:53:53 +08:00

12 KiB
Raw Blame History

WordPress 是由 PHP 语言开发的一款开源博客平台。运行在典型的LNMP/LAMP 环境中。

安装MySQL数据库

主机名称 IP地址 操作系统 硬件最低配置
wordpress-db 192.168.0.50 Rocky9.0 1核心CPU/1G内存/20G磁盘

添加MySQL8.0仓库

tee /etc/yum.repos.d/mysql-8.0.repo <<EOF
[mysql80-community]
name=MySQL 8.0 Community Server
baseurl=https://repo.mysql.com/yum/mysql-8.0-community/el/9/x86_64/
enabled=1
gpgcheck=0
EOF

安装MySQL8.0版本

dnf install -y mysql-community-server-8.0.30-1.el9.x86_64

启动MySQL

systemctl enable mysqld --now

过滤MySQL ROOT初始密码

grep "password" /var/log/mysqld.log

使用初始密码登录数据库,格式: mysql -u 用户名 -p密码 -p与密码之间不能有空格其他参数可有可无密码如果有特殊字符需要用引起来

mysql -u root -p"9VZ<oQcwi=qL"

需要重新修改root密码

mysql> alter user root@"localhost" identified by "Admin123...";

退出数据库,并使用新密码登录

mysql -uroot -p'Admin123...'

创建数据库远程访问账号

CREATE USER 'wordpress'@'%' IDENTIFIED BY 'wp123...A';
GRANT ALL PRIVILEGES ON *.* TO 'wordpress'@'%';
FLUSH PRIVILEGES;

创建 wordpress 库用于项目存储数据

create database wordpress;

安装Nginx WEB服务

主机名称 IP地址 操作系统 硬件最低配置
wordpress 192.168.0.51 Rocky 9.0 1核心CPU/1G内存/20G磁盘

准备Nginx稳定版仓库仓库地址https://nginx.org/en/linux_packages.html#RHEL

[nginx-stable]
name=nginx stable repo
baseurl=http://nginx.org/packages/centos/$releasever/$basearch/
gpgcheck=1
enabled=1
gpgkey=https://nginx.org/keys/nginx_signing.key
module_hotfixes=true

安装Nginx与PHP软件包

dnf install nginx-1.20.2 php php-fpm php-mysqlnd php-gd freetype-devel libjpeg-turbo-devel -y
Nginx常用相关文件

/etc/nginx/nginx.conf //Nginx主配置文件

/usr/share/nginx/html/ //Nginx网页目录

/var/log/nginx/error.log //Nginx错误日志文件

/var/log/nginx/access.log //Nginx访问日志文件

/etc/nginx/conf.d/ //虚拟web主机目录

PHP软件包介绍

php //是php代码的解释器

php-fpm //管理php进程接收请求

php-mysqlnd //PHP连接MySQL的扩展连接MySQL数据库并进行增删改查

php-gd //php处理图片扩展如生成图片、裁剪图片、缩放图片等

freetype-devellibjpeg-turbo-devel //处理字体和图片的软件包

修改配置文 /etc/php-fpm.d/www.conf 指定PHP运行的用户与组并开启PHP状态页面用于监控PHP状态。
#指定PHP程序运行时的用户和组为Nginx
user = nginx
group = nginx

修改配置文件<font style="color:rgb(51, 51, 51);">/etc/php.ini</font>指定php时区

#取消注释修改PHP时区为亚洲/上海
date.timezone ="Asia/shanghai"

准备WordPress网站配置文件

删除Nginx默认的网站虚拟web主机配置文件

rm -rf /etc/nginx/conf.d/default.conf

创建wordpress网站配置文件/etc/nginx/conf.d/wordpress.conf

server {
    listen       80;
    server_name  localhost;

    location / {
        root   /usr/share/nginx/html;
        index  index.php index.html;  
    }
    
   location ~ [^/]\.php(/|$) {
           fastcgi_pass    unix:/run/php-fpm/www.sock;
           fastcgi_split_path_info ^(.+\.php)(/.+)$;
           fastcgi_index   index.php;

           fastcgi_param   DOCUMENT_ROOT   /usr/share/nginx/html;
           fastcgi_param   SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name;
           fastcgi_param   PATH_TRANSLATED /usr/share/nginx/html$fastcgi_script_name;

           include fastcgi_params;
           fastcgi_param   QUERY_STRING    $query_string;
           fastcgi_param   REQUEST_METHOD  $request_method;
           fastcgi_param   CONTENT_TYPE    $content_type;
           fastcgi_param   CONTENT_LENGTH  $content_length;

           fastcgi_intercept_errors        on;
           fastcgi_ignore_client_abort     off;
           fastcgi_connect_timeout         60;
           fastcgi_send_timeout            180;
           fastcgi_read_timeout            180;
           fastcgi_buffer_size             128k;
           fastcgi_buffers                 4 256k;
           fastcgi_busy_buffers_size       256k;
           fastcgi_temp_file_write_size    256k;
        }
}

启动Nginx与PHP

systemctl enable nginx php-fpm --now

测试Nginx与PHP连接

在Nginx网页目录创建文件测试Nginx与PHP之间的连接

<?php
  phpinfo();
?>

访问页面测试:http://192.168.0.51/phpinfo.php

测试PHP与MySQL连接

在Nginx网页目录创建文件测试PHP与MySQL之间的连接

<?php
$host = '192.168.0.50';  // 替换为你的数据库主机地址
$user = 'wordpress';     // 替换为你的数据库用户名
$password = 'wp123...A'; // 替换为你的数据库密码
$database = 'wordpress'; // 替换为你的数据库名

// 创建连接
$conn = new mysqli($host, $user, $password, $database);

// 检查连接
if ($conn->connect_error) {
  die("连接失败: " . $conn->connect_error);
}
echo "连接成功";
$conn->close();
?>

访问页面测试:http://192.168.0.51/mysql.php

部署WordPress项目

在wordpress主机下载WordPress项目

wget https://cn.wordpress.org/wordpress-6.0-zh_CN.tar.gz

解压WordPress压缩包

tar -xf wordpress-6.0-zh_CN.tar.gz

删除/usr/share/nginx/html/目录下所有文件

rm -rf /usr/share/nginx/html/*

将wordpres目录下所有项目文件移动到/usr/share/nginx/html/目录

mv wordpress/* /usr/share/nginx/html/

切换到/usr/share/nginx/html/目录

cd /usr/share/nginx/html/

准备wordpress连接数据库配置文件

cp wp-config-sample.php wp-config.php

修改wp-config.php文件内容指定数据库相关信息

define( 'DB_NAME', 'wordpress' );

/** Database username */
define( 'DB_USER', 'wordpress' );

/** Database password */
define( 'DB_PASSWORD', 'wp123...A' );

/** Database hostname */
define( 'DB_HOST', '192.168.0.50' );

/** Database charset to use in creating database tables. */
define( 'DB_CHARSET', 'utf8' );

/** The database collate type. Don't change this if in doubt. */
define( 'DB_COLLATE', '' );

define( 'WP_CACHE', true );

//配置wordpress认证参数
define('AUTH_KEY',         'S2i6bE#^eKLwc|2$kn*#1;W,#?.7u~it_bC#lyd{qmddoQyndWqET6|G<{,l ]-a');
define('SECURE_AUTH_KEY',  '59Un.*`*,Ojv-+<>aEGfl9wH#Ik,G,+Ab:f?X^a%)_kz{VI/Rq+TY5?rt3^q10Hm');
define('LOGGED_IN_KEY',    '=`}q)k2-9p<eH^c+NbZ&*a5{|W$6JfUlu-t-H4PlgL&!JqG[0{!K{JtIw1aEb%L/');
define('NONCE_KEY',        'xb??HV#|H{F6fw@IqI2}KZ-Hf$QTcB0&,X<Y4zz|RkS=T#=`.Xr>Hqc1_^@&ye*z');
define('AUTH_SALT',        'YH.8P.h&oAF&H]-A71adaJ#~}i)Gh/dC:GEUckG%pEp{#)W&&IO$W,kA]sSS6&hZ');
define('SECURE_AUTH_SALT', 'wPd$jX3|Yq5:Tm!Bd/EGhRU2G_Srfn/R9iNHc/ao_[mpGklZbOmk2Sq+zr^>T3^l');
define('LOGGED_IN_SALT',   'PibdSiB$%.Zy%8B$^nU]7DEf_8Wb{}d7?GxFm)8B?g,1%}qa(lN9q$Pr#-s`1Qsf');
define('NONCE_SALT',       'OBW;+_cF$S?4s -lrTpC+zJ,,0:0;I>).>~(h_`]Ga?byYqLFP)4xD4LOjF-ySI{');

修改项目文件权限确保Nginx用户对所有项目文件具备完全权限

chown -R nginx.nginx .

访问WordPress页面

浏览器访问WordPress页面http://192.168.0.51

Redis为网站提供缓存

通过Redis将网站访问频次高的数据存储在内存中来提高网站的性能。

在wp-db主机安装Redis数据库

dnf install redis -y

Redis默认只允许本地访问需要修改Redis配置文件允许远程访问

#查找bind 127.0.0.1这一行修改为0.0.0.0允许远程连接。
bind 0.0.0.0

启动Redis

systemctl enable redis --now

在wordpress安装PHP连接Redis扩展模块

#安装epel仓库提供PHP连接Redis扩展模块
dnf install epel-release -y

#安装扩展模块
dnf install php-pecl-redis5  -y

重启PHP以识别新的扩展模块

systemctl restart php-fpm

查看PHP扩展模块

php -m | grep redis

修改wp-config.php文件配置连接Redis

//在连接MySQL下边添加连接Redis配置

//指定与Redis通信的客户端(php-pecl-redis)
define('WP_REDIS_CLIENT', 'pecl');

//连接数据库的协议
define('WP_REDIS_SCHEME', 'tcp');

//Redis主机地址
define('WP_REDIS_HOST', '192.168.0.50');

//使用的数据库编号默认0-15
define('WP_REDIS_DATABASE', '0');

//设置所有缓存键的前缀
define('WP_CACHE_KEY_SALT', 'wp_');

//缓存失效时间以秒为单位86400为1天
define('WP_REDIS_MAXTTL', '86400');

在WordPress中安装支持Redis插件