WordPress博客在fnOS环境下的极简搭建与公网地址配置指南
文章目录
- 前言
- 1. Docker下载源设置
- 2. Docker下载WordPress
- 3. Docker部署Mysql数据库
- 4. WordPress 参数设置
- 5. 飞牛云安装Cpolar工具
- 6. 固定Cpolar公网地址
- 7. 修改WordPress配置文件
- 8. 公网域名访问WordPress
前言
你是否曾经为搭建自己的网站而头疼不已?是不是觉得传统方法不仅繁琐而且效率低下呢?别担心,今天我要给你介绍一个超级酷炫的解决方案——利用飞牛云NAS与Docker快速构建并优化WordPress站点。这不仅仅是一个技术上的突破,更是一种全新的生活方式!
在这个数字化时代,无论是个人博客、小型企业还是大型组织,每个人都希望拥有一个高效且稳定的网站平台来展示自己的内容或产品。而说到数据存储和备份的神器,飞牛云NAS绝对值得你关注!它不仅具备强大的文件共享功能和多媒体娱乐特性,还以其卓越的安全性和扩展性赢得了广大用户的认可。
与此同时,Docker作为当今最热门的技术之一,凭借其轻量级、便携式的容器化方案彻底改变了应用程序部署的方式。通过将应用及其所有依赖项打包成一个独立的单元,Docker使得开发与运维变得更加简单高效。特别是对于像WordPress这样全球知名的CMS系统来说,结合飞牛云NAS和Docker简直是如虎添翼!
接下来的内容中,我将会带你一起探索如何利用这两款强大的工具轻松搭建并优化你的个人或企业网站,并且还会教你一个小技巧——通过cpolar实现内网穿透功能。这样一来,即使是在没有公网IP的情况下也能让你的站点对外界开放访问!是不是很神奇呢?让我们开始吧!
1. Docker下载源设置
访问飞牛云管理面板,打开docker,为了防止docker 镜像出现无法下载的情况,我们可以提前设置一下docker的仓库下载源,点击仓库设置
然后点击添加:https://hub.geekery.cn
这个url作为下载源,添加后点击应用
添加完成后点击启用即可,docker下载源设置后,下面我们开始下载wordpress
2. Docker下载WordPress
点击搜索wordpress,然后点击下载第一个,等待下载完成
下载后,打开本地镜像,点击运行
名称默认,点击下一步
修改一下访问端口,本例改为8088,具体可以改为自己想要的端口.然后点击下一步
然后直接点击创建
创建后打开容器列表,可以看到成功运行了,如果出现运行不了,可能是端口冲突,可以重新运行换个端口,下面在浏览器访问测试
浏览器输入飞牛云局域网IP加自己设置的访问端口即可成功看到wordpress界面,选择中文语言,点击下一步
下面就来到我们数据库的设置了,下一步,创建数据库
3. Docker部署Mysql数据库
同样我们在镜像仓库搜索mysql,下载mysql镜像
下载后打开本地镜像列表,点击运行mysql
名称,默认,直接点击下一步
这里注意,端口我们按默认即可,不用去修改,然后打开环境变量,设置这个参数:MYSQL_ROOT_PASSWORD
表示设置root 用户的密码,然后点击下一步
然后直接点击创建
创建后,我们打开容器列表,可以看到创建运行成功,下面需要创建一个名称为wordpress的数据库,点击打开mysql终端
选择一个连接方式连接
然后我们输入mysql命令:mysql -uroot -p密码
,登录进入mysql,密码就是我们上面设置的root用户的密码
然后执行create database wordpress
; 这个命令,创建一个名称为wordpress的数据库,然后在执行show databases;
查看是否创建成功,出现了wordpress表示创建成功了,这样数据库运行和设置就完成了,下面我们回到网页上设置数据库
4. WordPress 参数设置
回到我们页面上wordpress数据库设置,然后把数据库信息填写进去,然后点击提交
可以看到,设置成功了,然后点击运行安装程序
然后设置一下wordpress的用户名和密码邮箱这些参数,点击安装wordpress
可以看到,成功安装了wordpress
点击登录,可以成功登录到wordpress管理界面,本地部署wordpress 和配置数据库就全部完成了,下面我们安装cpolar实现公网远程访问
5. 飞牛云安装Cpolar工具
飞牛云是基于Linux的,我们可以采用cpolar 的Linux方式安装,打开飞牛云NAS设置界面,开启ssh 连接,端口默认为22即可,开启后,我们就可以ssh 连接飞牛云NAS执行命令.
然后我们通过局域网IP ssh远程连接进去
连接后执行下面cpolar Linux 安装命令
curl -L https://www.cpolar.com/static/downloads/install-release-cpolar.sh | sudo bash
执行这个命令后可能会出现卡主,可以看到这个位置是提示需要输入NAS用户名对应的密码,直接输入密码回车即可,期间没有报错表示安装成功
然后执行下面系列命令来操作cpolar 服务
# 加入系统服务设置开机启动
sudo systemctl enable cpolar# 启动cpolar服务
sudo systemctl start cpolar# 重启cpolar服务
sudo systemctl restart cpolar# 查看cpolar服务状态
sudo systemctl status cpolar# 停止cpolar服务
sudo systemctl stop cpolar
启动cpolar服务后,我们通过NAS局域网IP访问9200端口,即可看到cpolar的web ui 管理界面,一切操作在管理界面操作即可,如果没有账号,可以进入下面cpolar官网注册,或者点击登陆按钮下面免费注册也可以跳转去免费注册,注册后登录即可,这样cpolar在飞牛云安装就完成了.
cpolar官网地址: https://www.cpolar.com
6. 固定Cpolar公网地址
由于docker 访问限制,为了方便配置,因此我们直接为其配置Cpolar的二级子域名,该地址为固定地址,不会随机变化。
点击进入和登录Cpolar官网,点击左侧的预留,选择保留二级子域名,设置一个二级子域名名称,点击保留
保留成功后复制保留成功的二级子域名的名称
返回管理界面,在管理界面点击左侧仪表盘的隧道管理——创建隧道,创建一个wordpress的公网http地址隧道!
- 隧道名称:可自定义命名,注意不要与已有的隧道名称重复
- 协议:选择http
- 本地地址:8088 (上面我们设置wordpress端口)
- 域名类型:二级子域名
- Sub Domain:填写保留成功的二级子域名
- 地区:选择China vip
点击创建
(点击一次创建按钮即可,不要重复点击!)
创建完成后,打开在线隧道列表,可以看到公网地址,该地址是固定的二级域名地址,不会随机变化,下面我们修改一下wordpress 配置文件,设置一下
7. 修改WordPress配置文件
打开容器列表,然后打开wordpress终端
选择这个点击连接
我们需要安装一个配置文件编辑工具输入apt install vim
-y 安装vim编辑工具,安装后开始配置
输入vim wp-config.php
打开wordpress 主配置文件,在配置文件中加上下面两个参数,注意!里面的域名换成自己设置的域名
define('WP_HOME', 'http://wp-test.vip.cpolar.cn');
define('WP_SITEURL', 'http://wp-test.vip.cpolar.cn');
这一步要严格注意,参数加在下面截图的位置,不要写错了,设置完成记得保存,尽量使用http域名
设置完成后,我们重启一下wordpress 容器,重启后接下来直接访问
8. 公网域名访问WordPress
浏览器输入cpolar中我们创建的二级子域名,可以看到成功访问到了wordpress
同样,我们在域名后面加上/wp-admin.php
这样就成功访问到了wordpress管理界面,至此,所有的配置就完成了,成功配置了wordpress公网访问,不受本地限制,注意,设置公网域名后,无法使用本地访问了,下次访问直接输入公网域名访问即可.
看完这篇教程后你是否对如何使用飞牛云NAS和Docker搭建WordPress有了全新的认识呢?其实这只是一个起点而已,在云计算与容器技术不断发展的今天,还有更多有趣且实用的应用等待着我们去探索。希望今天的分享能够帮助你在数字化转型的道路上迈出坚实的一步!
相关文章:

WordPress博客在fnOS环境下的极简搭建与公网地址配置指南
文章目录 前言1. Docker下载源设置2. Docker下载WordPress3. Docker部署Mysql数据库4. WordPress 参数设置5. 飞牛云安装Cpolar工具6. 固定Cpolar公网地址7. 修改WordPress配置文件8. 公网域名访问WordPress 前言 你是否曾经为搭建自己的网站而头疼不已?是不是觉得…...
【PG】DROP TABLE ... CASCADE
问题 ERROR: cannot drop table wx_user_tag because other objects depend on it DETAIL: default value for column id of table wx_user_tag depends on sequence wx_user_tag_id_seq HINT: Use DROP … CASCADE to drop the dependent objects too. 解决 这个错误消息表…...

绕组电感 - Ansys Maxwell 磁通链与电流
在本博客中,我将演示如何使用 Ansys Maxwell 中磁瞬态求解器的磁通链和电流结果来计算绕组电感。Ansys Maxwell 磁瞬态求解器在场计算中考虑了涡流效应,我将展示一种使用磁通链和电流结果来计算绕组电感的简单方法。 实际上,电感是非线性的…...

物联网软件开发与应用方向应该怎样学习,学习哪些内容,就业方向是怎样?(文末领取整套学习视频,课件)物联网硬件开发与嵌入式系统
随着物联网技术的飞速发展,物联网软件开发与应用方向成为了众多开发者关注的焦点。那么,如何在这个领域中脱颖而出呢?本文将为你提供一份详细的学习指南,帮助你从零开始,逐步掌握物联网软件开发与应用的核心技能。 一…...

《LeetCode Hot100》 Day01
Day01 轮转数组 思路: (1) 使用O(1) 空间复杂度解决,就需要原地解决,不能创建新的数组。 (2) 先整体反转数组,再反转前k个数,再反转剩下的数。即可完整本题。 &…...

vue动态table 动态表头数据+动态列表数据
效果图: <template><div style"padding: 20px"><el-scrollbar><div class"scrollbar-flex-content"><div class"opt-search"><div style"width: 100px"> </div><div class"opt-b…...
1.3 GPT vs BERT 终极选择指南:从架构差异到企业级落地策略
GPT vs BERT 终极选择指南:从架构差异到企业级落地策略 引言:两大巨头的分道扬镳 2018年,BERT和GPT系列同时引爆NLP领域,却在架构选择上走向截然不同的道路: BERT采用双向Transformer Encoder,在11项NLP…...

python-leetcode 23.回文链表
题目: 给定单链表的头节点head,判断该链表是否为回文链表,如果是,返回True,否则,返回False 输入:head[1,2,2,1] 输出:true 方法一:将值复制到数组中后用双指针法 有两种常用的列表实现&#…...

食品饮料生产瓶颈?富唯智能协作机器人来 “破壁”
在食品和饮料行业的发展进程中,诸多生产瓶颈如重复性劳动负担、复杂环境作业难题、季节性产能波动等,长期制约着企业的高效运营与进一步发展。如今,富唯智能协作机器人的出现,为这些难题提供了完美的解决方案,正逐步改…...

Golang GORM系列:GORM CRUM操作实战
在数据库管理中,CRUD操作是应用程序的主干,支持数据的创建、检索、更新和删除。强大的Go对象关系映射库GORM通过抽象SQL语句的复杂性,使这些操作变得轻而易举。本文是掌握使用GORM进行CRUD操作的全面指南,提供了在Go应用程序中有效…...
C++ labmbd表达式
文章目录 C++ Lambda 表达式详解1. Lambda 表达式的组成部分:2. Lambda 语法示例(1) 最简单的 Lambda(2) 带参数的 Lambda(3) 指定返回类型的 Lambda3. 捕获外部变量(1) 值捕获(复制)(2) 引用捕获(3) 捕获所有变量4. Lambda 在 STL 中的应用5. Lambda 作为 `std::function`6…...
《大规模动画优化(一):GPU 顶点动画的生成》
GPU 顶点动画(Vertex Animation Texture, VAT) GPU 顶点动画(Vertex Animation Texture, VAT)烘焙的核心思想是: 在 CPU 端预先计算动画顶点数据,并存储到纹理(Texture2D)中…...

【前端】几种常见的跨域解决方案
在前端开发中,跨域问题是常见的挑战。以下是几种常见的跨域解决方案: 1. Nginx反向代理 使用 Nginx 进行反向代理是解决跨域问题的一种常见方式。Nginx 会充当一个中间代理服务器,接收来自前端的请求并将其转发到实际的后端 API 服务&#…...
如何在WinForms应用程序中读取和写入App.config文件
如何在WinForms应用程序中读取和写入App.config文件 1. 添加App.config文件2. 配置App.config3. 读取App.config4. 写入App.config 在WinForms应用程序中, App.config文件是用于存储配置数据的标准方式。通过使用.NET框架提供的类库,我们可以方便地对 …...

【分布式理论7】分布式调用之:服务间的(RPC)远程调用
文章目录 一、RPC 调用过程二、RPC 动态代理:屏蔽远程通讯细节1. 动态代理示例2. 如何将动态代理应用于 RPC 三、RPC序列化与协议编码1. RPC 序列化2. RPC 协议编码2.1. 协议编码的作用2.2. RPC 协议消息组成 四、RPC 网络传输1. 网络传输流程2. 关键优化点 一、RPC…...
人工智能应用-智能驾驶精确的目标检测和更高级的路径规划
实现更精确的目标检测和更高级的路径规划策略是自动驾驶领域的核心任务。以下是一个简化的示例,展示如何使用Python和常见的AI库(如TensorFlow、OpenCV和A*算法)来实现这些功能。 1. 环境准备 首先,确保安装了以下库:…...
dynamic_cast和static_cast和const_cast
dynamic_cast 在 C 中的作用 dynamic_cast 是 C 运行时类型转换(RTTI, Run-Time Type Identification)的一部分,主要用于: 安全的多态类型转换检查类型的有效性向下转换(Downcasting)跨类层次的指针或引用…...

DEEPSEEK与GPT等AI技术在机床数据采集与数字化转型中的应用与影响
随着人工智能(AI)技术的迅猛发展,深度学习、自然语言处理等先进技术开始广泛应用于各行各业。在制造业尤其是机床行业,AI技术的融合带来了巨大的变革,尤其在机床数据采集与机床数字化方面的应用。本文将探讨DEEPSEEK、…...
高速存储文章目录
《zynq tcp万兆网和ftp协议分析-CSDN博客》 《国产fpga nvme ip高速存储方案设计_fpga 高速存储-CSDN博客》 《国微pcie switch 8748高速存储方案设计_国产pcie switch-CSDN博客》 《FPGA SATA高速存储设计-CSDN博客》 《FPGA NVME高速存储设计_690t fpga-CSDN博客》 《zy…...

车载测试工具 --- CANoe VH6501 进行Not Acknowledge (NAck) 测试
我是穿拖鞋的汉子,魔都中坚持长期主义的汽车电子工程师。 老规矩,分享一段喜欢的文字,避免自己成为高知识低文化的工程师: 简单,单纯,喜欢独处,独来独往,不易合同频过着接地气的生活,除了生存温饱问题之外,没有什么过多的欲望,表面看起来很高冷,内心热情,如果你身…...
变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析
一、变量声明设计:let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性,这种设计体现了语言的核心哲学。以下是深度解析: 1.1 设计理念剖析 安全优先原则:默认不可变强制开发者明确声明意图 let x 5; …...

【Python】 -- 趣味代码 - 小恐龙游戏
文章目录 文章目录 00 小恐龙游戏程序设计框架代码结构和功能游戏流程总结01 小恐龙游戏程序设计02 百度网盘地址00 小恐龙游戏程序设计框架 这段代码是一个基于 Pygame 的简易跑酷游戏的完整实现,玩家控制一个角色(龙)躲避障碍物(仙人掌和乌鸦)。以下是代码的详细介绍:…...
椭圆曲线密码学(ECC)
一、ECC算法概述 椭圆曲线密码学(Elliptic Curve Cryptography)是基于椭圆曲线数学理论的公钥密码系统,由Neal Koblitz和Victor Miller在1985年独立提出。相比RSA,ECC在相同安全强度下密钥更短(256位ECC ≈ 3072位RSA…...

智慧工地云平台源码,基于微服务架构+Java+Spring Cloud +UniApp +MySql
智慧工地管理云平台系统,智慧工地全套源码,java版智慧工地源码,支持PC端、大屏端、移动端。 智慧工地聚焦建筑行业的市场需求,提供“平台网络终端”的整体解决方案,提供劳务管理、视频管理、智能监测、绿色施工、安全管…...

P3 QT项目----记事本(3.8)
3.8 记事本项目总结 项目源码 1.main.cpp #include "widget.h" #include <QApplication> int main(int argc, char *argv[]) {QApplication a(argc, argv);Widget w;w.show();return a.exec(); } 2.widget.cpp #include "widget.h" #include &q…...

华为OD机试-食堂供餐-二分法
import java.util.Arrays; import java.util.Scanner;public class DemoTest3 {public static void main(String[] args) {Scanner in new Scanner(System.in);// 注意 hasNext 和 hasNextLine 的区别while (in.hasNextLine()) { // 注意 while 处理多个 caseint a in.nextIn…...
sqlserver 根据指定字符 解析拼接字符串
DECLARE LotNo NVARCHAR(50)A,B,C DECLARE xml XML ( SELECT <x> REPLACE(LotNo, ,, </x><x>) </x> ) DECLARE ErrorCode NVARCHAR(50) -- 提取 XML 中的值 SELECT value x.value(., VARCHAR(MAX))…...
【Web 进阶篇】优雅的接口设计:统一响应、全局异常处理与参数校验
系列回顾: 在上一篇中,我们成功地为应用集成了数据库,并使用 Spring Data JPA 实现了基本的 CRUD API。我们的应用现在能“记忆”数据了!但是,如果你仔细审视那些 API,会发现它们还很“粗糙”:有…...

04-初识css
一、css样式引入 1.1.内部样式 <div style"width: 100px;"></div>1.2.外部样式 1.2.1.外部样式1 <style>.aa {width: 100px;} </style> <div class"aa"></div>1.2.2.外部样式2 <!-- rel内表面引入的是style样…...

微信小程序云开发平台MySQL的连接方式
注:微信小程序云开发平台指的是腾讯云开发 先给结论:微信小程序云开发平台的MySQL,无法通过获取数据库连接信息的方式进行连接,连接只能通过云开发的SDK连接,具体要参考官方文档: 为什么? 因为…...