基于RedHat9部署WordPress+WooCommerce架设购物网站
系统版本信息:Red Hat Enterprise Linux release 9.2 (Plow)
WordPress版本信息:wordpress-6.6.2-zh_CN
WooCommerce版本信息:woocommerce.9.5.1
环境架构:LNMP(RedHat9+nginx1.20.1+PHP 8.0.27+MySQL8.0.30)
一、任务规划
1. WordPress介绍
WordPress是使用PHP语言开发的开源发布平台,用户可以在支持PHP和MySQL数据库的服务器上架设属于自己的博客、网站。也可以把WordPress当作一个内容管理系统(CMS)来使用。WordPress有许多第三方开发的免费模板,安装方式简单易用。不过要做一个自己的模板,则需要有一定的专业知识。比如至少要懂的标准通用标记语言下的一个应用HTML代码、CSS、PHP等相关知识。WordPress官方支持中文版,同时有爱好者开发的第三方中文语言包,如wopus中文语言包。WordPress拥有成千上万个各式插件和不计其数的主题模板样式。
2. WooCommerce介绍
WooCommerce是WordPress中的一个开源电子商务插件,它允许用户在WordPress网站上创建和管理功能齐全的在线商店。
WooCommerce的优势与特点
- 免费且开源:相较于其他需要付费的电商系统,WooCommerce提供了功能齐全且免费的解决方案。
- 易于使用:安装方便,系统操作直观,不需要专业知识即可搭建购物平台。
- 高度自定义:任何开发人员都可以审核、修改或扩展WooCommerce的代码,满足用户的个性化需求。
- 强大的社区支持:拥有庞大的用户群和响应迅速的社区支持系统,用户可以轻松获取帮助和解决方案。
WooCommerce是WordPress中一个功能强大且灵活的电子商务插件,它为用户提供了一个易于使用的平台,帮助用户轻松创建和管理自己的在线商店。
二、任务实现
1. 节点设置
| 主机 | 网络信息 |
|---|---|
| wordpress | 192.37.26.10/24 |
2. 基础环境配置
[Step1]: 配置相关网络信息
[root@localhost ~]# hostnamectl hostname wordpress
[root@localhost ~]# nmcli connection modify ens160 ipv4.method manual ipv4.addresses 192.37.26.10/24
[root@localhost ~]# nmcli connection up ens160
[Step2]: 关闭防火墙和SELinux
[root@wordpress ~]# systemctl disable firewalld.service
[root@wordpress ~]# systemctl stop firewalld.service
[root@wordpress ~]# setenforce 0
[root@wordpress ~]# sed -i "s/SELINUX=enforcing/SELINUX=disabled/g" /etc/selinux/config
[Step3]: 配置YUM本地源,在RedHat9镜像中已经集成了nginx、php、mysql软件包
[root@wordpress ~]# mount /dev/cdrom /mnt
[root@wordpress ~]# vim /etc/yum.repos.d/local.repo# 写入下列内容
[BaseOS]
name=BaseOS
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0[AppStream]
name=AppStream
baseurl=file:///mnt/AppStream/
enabled=1
gpgcheck=0
3. Nginx服务配置
[Step1]: 安装Nginx服务
[root@wordpress ~]# dnf install -y nginx
[Step2]: 编辑nginx配置文件
[root@wordpress ~]# vim /etc/nginx/nginx.conf# 修改后内容如下
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;include /usr/share/nginx/modules/*.conf;events {worker_connections 1024;
}http {log_format main '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';access_log /var/log/nginx/access.log main;sendfile on;tcp_nopush on;tcp_nodelay on;keepalive_timeout 65;types_hash_max_size 4096;include /etc/nginx/mime.types;default_type application/octet-stream;include /etc/nginx/conf.d/*.conf;server {listen 80;listen [::]:80;server_name _;root /usr/share/nginx/html;include /etc/nginx/default.d/*.conf;location / {root html;index index.php index.html index.htm;}location ~ \.php$ {fastcgi_pass unix:/var/run/php-fpm.sock;fastcgi_index index.php;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi.conf;}}
}
[Step3]: 验证nginx配置文件语法
[root@wordpress ~]# nginx -t

[Step4]: 启动Nginx并加入开机自启
[root@wordpress ~]# systemctl enable --now nginx.service
[Step5]: 验证:通过浏览器访问测试页

4. MySQL服务配置
[Step1]: 先检查系统是否自带mariadb,如果存在则卸载
[root@wordpress ~]# dnf remove -y mariadb mariadb-server
[Step2]: 安装MySQL
[root@wordpress ~]# dnf install -y mysql mysql-server
[Step3]: 启动MySQL并加入开机自启
[root@wordpress ~]# systemctl enable --now mysqld.service
[Step4]: 登录数据库,新建wordpress用户及数据库
root@wordpress ~]# mysql
mysql> create database wordpress;
mysql> create user 'wordpress'@'192.37.26.10' identified by 'Wordpress@12345';
mysql> grant all privileges on wordpress.* to 'wordpress'@'192.37.26.10';
[Step5]: 验证:使用wordpress用户验证登录,新建表验证权限
[root@wordpress ~]# mysql -uwordpress -h192.37.26.10 -pWordpress@12345
mysql> use wordpress;
mysql> create table student(id int);
5. 安装PHP
[Step1]: 安装PHP及相关软件包
[root@wordpress ~]# dnf install -y php*
[Step2]: 编辑配置文件,将启用php-fpm的用户设置为nginx用户
[root@wordpress ~]# vim /etc/php-fpm.d/www.conf# 修改下列参数
user = nginx
group = nginx
[Step3]: 编辑php.ini文件
[root@wordpress ~]# vim /etc/php.ini# 修改下列参数
upload_max_filesize = 10M # 设置单次请求可以上传的文件的最大大小,方便后续上传主题
[Step4]: 启动php-fpm,并加入开机自启
[root@wordpress ~]# systemctl enable --now php-fpm.service
[Step5]: 查看php-fpm进程的启动用户
[root@wordpress ~]# ps -ef | grep php-fpm

[Step6]: 验证:先删除掉原有的所有文件,然后新建php测试文件,然后通过浏览器访问
[root@wordpress ~]# rm -rf /usr/share/nginx/html/*
[root@wordpress ~]# echo "<?php echo phpinfo(); ?>" > /usr/share/nginx/html/index.php

6. 安装WordPress
[Step1]: 删除掉原有的索引文件
[root@wordpress ~]# rm -rf /usr/share/nginx/html/*
[Step2]: 上传WordPress软件包

[Step3]: 解压软件包
[root@wordpress ~]# cd /usr/share/nginx/html/
[root@wordpress ~]# tar zxf wordpress-6.6.2-zh_CN.tar.gz
[root@wordpress html]# mv wordpress/* .
[root@wordpress html]# rm -rf wordpress*

[Step4]: 因为我们nginx、php都是使用nginx用户运行,所以需要将软件包的属主设置为nginx,或者将权限设置为777
[root@wordpress ~]# chown nginx:nginx -R /usr/share/nginx/html/

[Step5]: 在开始使用WordPress前,需要设置数据库名、数据库用户名、数据库密码等参数,可以通过web界面去设置或者通过修改配置文件的方式
设置方式1:通过Web界面设置

设置方式2:通过修改配置文件
[Step6]: 进入WordPress目录下,拷贝配置文件,然后修改
[root@wordpress ~]# cd /usr/share/nginx/html/
[root@wordpress html]# cp wp-config-sample.php wp-config.php
[root@wordpress html]# vim wp-config.php# 修改下列参数
define( 'DB_NAME', 'wordpress' );
define( 'DB_USER', 'wordpress' );
define( 'DB_PASSWORD', 'Wordpress@12345' );
define( 'DB_HOST', '192.37.26.10' );

[Step7]: 重新通过浏览器访问,此时会弹出“五分钟安装程序”,根据提示填写相关信息,密码建议使用WordPress自动生成的复制性密码“US%pDv4ZFvJn%%iI”


[Step8]: 返回登录系统

7. 安装WooCommerce插件
[Step1]: 在WordPress中,安装插件有两种方式,分别是联网安装和离线安装,以下使用离线安装





[Step2]: 上传离线插件的时候,如果离线插件包比较大,就会弹出报错信息“413 Request Entity Too Large”,解决这个问题有两个办法
- 修改nginx的配置文件,找到
client_max_body_size参数,如果没有可以在server块中定义
client_max_body_size 100M; # 设置允许的最大请求体位100MB
- 将插件包上传到服务器中,然后解压到
/usr/share/nginx/html/wp-content/plugins目录下
以下将通过修改nginx服务配置文件以解决该问题
[root@wordpress ~]# vim /etc/nginx/nginx.conf# 在server块中添加下列内容
client_max_body_size 20M; # 插件包的大小为15MB,这里设置为20MB
[Step3]: 检验nginx配置文件的语法,然后重启nginx服务
[root@wordpress ~]# nginx -t
[root@wordpress ~]# systemctl restart nginx.service

[Step4]: 重新上传插件包


8. WooCommerce插件配置
[Step1]: 启用WooCommerce插件

[Step2]: 启用WooCommerce插件后,会自动跳转到WooCommerce的配置页,根据提示安装即可

[Step3]: 选择你在商业旅程中的方位,可以根据情况进行配置

[Step4]: 选择商店的相关信息,以及销售的产品类型

[Step5]: 接下来会提示你可以安装一些免费的商业插件来增强效果,我们这里选择跳过


[Step6]: 配置完成

9. 商品上架与定价
[Step1]: 在WooCommerce中,提供了三种方式给我们上架商品,以下我们使用单个定制上传
- 单个定制上传
- 通过txt文本导入
- 通过csv文本导入

[Step2]: 添加商品名称、描述

[Step3]: 上传商品图片



[Step4]: 添加产品标签


[Step5]: 设置产品定价

[Step6]: 设置产品简要描述信息

[Step7]: 发布产品

[Step8]: 使用浏览器访问,可以看到我们刚刚发布的商品



相关文章:
基于RedHat9部署WordPress+WooCommerce架设购物网站
系统版本信息:Red Hat Enterprise Linux release 9.2 (Plow) WordPress版本信息:wordpress-6.6.2-zh_CN WooCommerce版本信息:woocommerce.9.5.1 环境架构:LNMP(RedHat9nginx1.20.1PHP 8.0.27MySQL8.0.30) …...
LabVIEW瞬变电磁接收系统
利用LabVIEW软件与USB4432采集卡开发瞬变电磁接收系统。系统通过改进硬件配置与软件编程,解决了传统仪器在信噪比低和抗干扰能力差的问题,实现了高精度的数据采集和处理,特别适用于地质勘探等领域。 项目背景: 瞬变电磁法是探…...
Docker入门篇[SpringBoot之Docker实战系列] - 第534篇
历史文章(文章累计530) 《国内最全的Spring Boot系列之一》 《国内最全的Spring Boot系列之二》 《国内最全的Spring Boot系列之三》 《国内最全的Spring Boot系列之四》 《国内最全的Spring Boot系列之五》 《国内最全的Spring Boot系列之六》 《…...
Linux系统扩容根 (/) 文件系统空间
[rootlocalhost ~]# df -Th / # 查看当前根文件系统使用情况 [rootlocalhost ~]# lsblk # 查看设备的挂载情况 [rootlocalhost ~]# lvdisplay # 查看逻辑卷使用情况 # 操作磁盘分区表 [rootlocalhost ~]# fdisk /dev/nvme0n1 欢迎使用 fdisk (util-linux 2.37.4…...
JavaScript之JQuery
JQuery W3C 标准给我们提供了⼀系列的函数, 让我们可以操作: jQuery是⼀个快速、简洁且功能丰富的JavaScript框架,原⽣的JavaScript提供的API操作DOM元素时, 代码⽐较繁琐, 冗⻓. 我们学习使⽤JQuery来操作⻚⾯对象,如 • ⽹⻚内容 • ⽹⻚结构 …...
JAVA学习记录2
文章为个人学习记录,仅供参考,如有错误请指出。 如何开发第一个JAVA程序? 开发java程序主要分为三个步骤: 1.编写代码 2.编译代码 3.运行代码 1.编写代码 编写java的工具有很多,文本编辑器、Notepad、Visual Stu…...
计算机网络、嵌入式等常见问题简答
1.嵌入式系统中经常要用到无限循环,如何用C编写死循环 答:while(1){}或者for(;;) 2.程序的局部变量存在于哪里,全局变量存在于哪里,动态申请数据存在于哪里。 答:程序的局部变量存在于栈区;全局变量存在…...
中华人民共和国预算法实施条例
(1995年11月2日国务院第37次常务会议通过 1995年11月22日中华人民共和国国务院令第186号发布 自发布之日起施行) 第一章 总则 第一条 根据《中华人民共和国预算法》(以下简称预算法),制定本条例。 第二条 县级以上地方政府的派出机关,根据本级政…...
【养生--果蔬汁】
果蔬汁: 1、甜菜根苹果柠檬菠萝 2、羽衣甘蓝苹果菠萝番石榴 3、番茄蓝莓苹果 4、胡萝卜、番茄、菠菜、西芹、西蓝花、甘蓝、花菜、南瓜、甜椒 5、火龙果香蕉 6、黄瓜香蕉 7、黄瓜雪梨 8、番茄苹果 9、黄瓜生菜 10、柚子雪梨 11、胡萝卜苹果黄瓜 12、黄瓜…...
LLM架构从基础到精通之词向量1
自然语言处理中的词嵌入:从基础到应用 在自然语言处理(NLP)领域,词嵌入是一个极为关键的概念。它本质上是一种将单词转换为连续向量空间中的数值表示(即向量)的方法,旨在捕捉单词的语义信息&am…...
【SQL】Delete使用
目录 语法 需求 示例 分析 代码 语法 DELETE删除表中所需内容 删除表中满足特点条件的行:DELETE FROM 表名 WHERE 条件; 删除表中所有行:DELETE FROM 表名; WHERE子句 WHERE子句用于指定从表中选取记录的条件。允许筛选数据,只返回满足…...
KBQA前沿技术
文章目录 KBQA面临的挑战基于模板的方法基于语义解析的方法基于深度学习的传统问答基于深度学习的端到端问答模型KBQA面临的挑战 目前还存在两个很大的困难阻碍着KBQA系统被广泛应用。一个困难是现有的自然语言理解技术在处理自然语言的歧义性和复杂性方面还显得比较薄弱。例如…...
跨年烟花C++代码
嘿,朋友们!今天来给大家讲讲一段挺有意思的C代码呀,这段代码主要是用来实现一个烟花效果展示的程序哦,下面咱们一点点来看哈。 效果 1. 开头包含的那些头文件 #include <graphics.h> #include <conio.h> #include &…...
centos服务器 /1ib64/libm.so.6: version “GLIBc 2.27’ not found 异常
centos服务器 /1ib64/libm.so.6: version “GLIBc 2.27’ not found 异常 问题 在服务器使用open3d时,报错缺失GLIBC_2.27,因为后续操作出问题会导致服务器挂,所以最好先备份一下。 解决 查询glibc版本 输入指令查询系统glibc版本&#x…...
职场:如何快速适应职场新环境?
快速适应职场新环境是每个新员工都需要面对的重要挑战。为了能够顺利过渡并尽快融入新团队,以下是一些实用的策略: 1. 保持积极心态 开放心态:进入新环境时,保持开放的心态对于适应变化至关重要。要愿意接受新的挑战,…...
axios的替代方案onion-middleware
onion-middleware的由来 嗯。。。闲来无事瞎搞的!!!!主要用来实现请求/相应拦截,当然队列性的数据操作都是可以的 直接上使用教程 安装 npm install onion-middleware使用 import { OnionMiddleware } from onion…...
设计模式——泛型单例类
游戏中很多管理类都需要写成单例类,每次重复把管理类设置为单例类很繁琐, 这里直接写一个泛型单例类作为模板父类,方便其他需要写成单例类的类直接继承设置为单例类; using UnityEngine;public class Singleton<T> : Mono…...
三维卷积( 3D CNN)
三维卷积( 3D CNN) 1.什么是三维卷积 1.1 三维卷积简介 二维卷积是在单通道的一帧图像上进行滑窗操作,输入是高度H宽度W的二维矩阵。 三维卷积输入多了深度C这个维度,输入是高度H宽度W深度C的三维矩阵。在卷积神经网络中&…...
【JAVA】Java开发小游戏 - 简单的2D平台跳跃游戏 基本的2D平台跳跃游戏框架,适合初学者学习和理解Java游戏开发的基础概念
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默, 忍不住分享一下给大家。点击跳转到网站 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……) 2、学会Oracle数据库入门到入土用法(创作中……) 3、手把…...
分享3个国内使用正版GPT的网站【亲测有效!2025最新】
1. molica 传送入口:https://ai-to.cn/url/?umolica 2. 多帮AI 传送入口:https://aigc.openaicloud.cn?inVitecodeMYAAGGKXVK 3. 厉害猫 传送入口:https://ai-to.cn/url/?ulihaimao...
Flask RESTful 示例
目录 1. 环境准备2. 安装依赖3. 修改main.py4. 运行应用5. API使用示例获取所有任务获取单个任务创建新任务更新任务删除任务 中文乱码问题: 下面创建一个简单的Flask RESTful API示例。首先,我们需要创建环境,安装必要的依赖,然后…...
label-studio的使用教程(导入本地路径)
文章目录 1. 准备环境2. 脚本启动2.1 Windows2.2 Linux 3. 安装label-studio机器学习后端3.1 pip安装(推荐)3.2 GitHub仓库安装 4. 后端配置4.1 yolo环境4.2 引入后端模型4.3 修改脚本4.4 启动后端 5. 标注工程5.1 创建工程5.2 配置图片路径5.3 配置工程类型标签5.4 配置模型5.…...
unix/linux,sudo,其发展历程详细时间线、由来、历史背景
sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...
GitHub 趋势日报 (2025年06月08日)
📊 由 TrendForge 系统生成 | 🌐 https://trendforge.devlive.org/ 🌐 本日报中的项目描述已自动翻译为中文 📈 今日获星趋势图 今日获星趋势图 884 cognee 566 dify 414 HumanSystemOptimization 414 omni-tools 321 note-gen …...
如何在最短时间内提升打ctf(web)的水平?
刚刚刷完2遍 bugku 的 web 题,前来答题。 每个人对刷题理解是不同,有的人是看了writeup就等于刷了,有的人是收藏了writeup就等于刷了,有的人是跟着writeup做了一遍就等于刷了,还有的人是独立思考做了一遍就等于刷了。…...
短视频矩阵系统文案创作功能开发实践,定制化开发
在短视频行业迅猛发展的当下,企业和个人创作者为了扩大影响力、提升传播效果,纷纷采用短视频矩阵运营策略,同时管理多个平台、多个账号的内容发布。然而,频繁的文案创作需求让运营者疲于应对,如何高效产出高质量文案成…...
Java数值运算常见陷阱与规避方法
整数除法中的舍入问题 问题现象 当开发者预期进行浮点除法却误用整数除法时,会出现小数部分被截断的情况。典型错误模式如下: void process(int value) {double half = value / 2; // 整数除法导致截断// 使用half变量 }此时...
C++课设:简易日历程序(支持传统节假日 + 二十四节气 + 个人纪念日管理)
名人说:路漫漫其修远兮,吾将上下而求索。—— 屈原《离骚》 创作者:Code_流苏(CSDN)(一个喜欢古诗词和编程的Coder😊) 专栏介绍:《编程项目实战》 目录 一、为什么要开发一个日历程序?1. 深入理解时间算法2. 练习面向对象设计3. 学习数据结构应用二、核心算法深度解析…...
群晖NAS如何在虚拟机创建飞牛NAS
套件中心下载安装Virtual Machine Manager 创建虚拟机 配置虚拟机 飞牛官网下载 https://iso.liveupdate.fnnas.com/x86_64/trim/fnos-0.9.2-863.iso 群晖NAS如何在虚拟机创建飞牛NAS - 个人信息分享...
Bean 作用域有哪些?如何答出技术深度?
导语: Spring 面试绕不开 Bean 的作用域问题,这是面试官考察候选人对 Spring 框架理解深度的常见方式。本文将围绕“Spring 中的 Bean 作用域”展开,结合典型面试题及实战场景,帮你厘清重点,打破模板式回答,…...
