飞牛云fnOS本地部署WordPress个人网站并一键发布公网远程访问
文章目录
- 前言
- 1. Docker下载源设置
- 2. Docker下载WordPress
- 3. Docker部署Mysql数据库
- 4. WordPress 参数设置
- 5. 飞牛云安装Cpolar工具
- 6. 固定Cpolar公网地址
- 7. 修改WordPress配置文件
- 8. 公网域名访问WordPress
前言
本文旨在详细介绍如何在飞牛云NAS上利用Docker部署WordPress,并结合cpolar实现公网访问本地站点的全过程。
随着云计算与容器化技术的飞速发展,越来越多的个人及企业开始倾向于采用高效、灵活且易于管理的部署方案来构建自己的网站。飞牛云NAS,作为一款集数据存储、备份、分享及多媒体娱乐等功能于一体的智能网络设备,凭借其出色的性能与扩展性,成为了众多用户心中理想的本地部署平台。
而Docker,作为当前最流行的容器化技术之一,通过封装应用及其依赖关系为一个可移植的、轻量级的容器,极大地简化了应用的部署与管理流程。结合飞牛云NAS的强大性能,我们可以在本地轻松搭建起一个稳定、高效的WordPress运行环境。
WordPress,作为全球最流行的开源内容管理系统之一,以其丰富的插件、强大的自定义功能以及友好的用户界面,成为了众多个人博客、企业官网及电子商务平台的首选。通过Docker在飞牛云NAS上部署WordPress,不仅可以享受到Docker带来的便捷与高效,还能充分利用NAS的存储优势,实现数据的可靠与安全。
然而,本地部署的网站往往面临着公网访问的难题。这时,cpolar这一内网穿透神器便显得尤为重要。cpolar通过创建一个安全、稳定的数据隧道,将本地Docker容器中的WordPress网站映射为一个公网可访问的地址,使得无论身处何地,用户都能轻松访问到我们的网站。
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公网访问,不受本地限制,注意,设置公网域名后,无法使用本地访问了,下次访问直接输入公网域名访问即可.

相关文章:
飞牛云fnOS本地部署WordPress个人网站并一键发布公网远程访问
文章目录 前言1. Docker下载源设置2. Docker下载WordPress3. Docker部署Mysql数据库4. WordPress 参数设置5. 飞牛云安装Cpolar工具6. 固定Cpolar公网地址7. 修改WordPress配置文件8. 公网域名访问WordPress 前言 本文旨在详细介绍如何在飞牛云NAS上利用Docker部署WordPress&a…...
ctfshow-web入门-SSTI(web361-web368)上
目录 1、web361 2、web362 3、web363 4、web364 5、web365 6、web366 7、web367 8、web368 1、web361 测试一下存在 SSTI 注入 方法很多 (1)使用子类可以直接调用的函数来打 payload1: ?name{{.__class__.__base__.__subclasses__…...
pyinstaller+upx给python GUI程序添加自定义图标
一、在线.ico图标生成 windows用48x48尺寸 https://www.ico51.cn/ 二、upx打包图标工具 https://upx.github.io/ 三、UI文件生成py代码 pyside2-uic window.ui > window.py 四、打包命令 1、–icon:这个是.ico图标路径 2、–upx-dir:upx打包工…...
LeetCode【0034】在排序数组中查找元素的第一个和最后一个位置
本文目录 1 中文题目2 求解方法:左右边界二分查找2.1 方法思路2.2 Python代码2.3 复杂度分析 3 题目总结 1 中文题目 给定一个按照非递减顺序排列的整数数组 nums,和一个目标值 target。请找出给定目标值在数组中的开始位置和结束位置。 如果数组中不存…...
react-markdown内容宽度溢出和换行不生效问题
情景复现: 解决办法,添加样式进行限制 /* index.css */ .markdown-container {word-break: break-word; /* 强制长单词断行 */white-space: pre-wrap; /* 保留空白符序列,但是正常地进行换行 */overflow-wrap: break-word; /* 在长单词或…...
uniapp 上传 base64 图片
在图片裁剪时候返回的是base64文件 需要上传到obs一般出现在h5网页端 可以直接使用 js 原始解决 应该只可以在h5浏览器内使用 // 提取 Base64 编码部分 const base64Data e.tempFilePath.replace(/^data:image\/(\w);base64,/, ""); // 将 Base64 编码转换为 Arra…...
让Git走代理
有时候idea提交代码或者从github拉取代码,一直报错超时或者:Recv failure: Connection was reset,下面记录一下怎么让git走代理从而访问到github。 1.打开梯子 2.打开网络和Internet设置 3.设置代理 记住这个地址和端口 4.打开git bash终端 输入以下内容 git c…...
通义千问API调用测试 (colab-python,vue)
文章目录 代码(来自官网)colab中用python测试Qwen2.5在官网上查看并确定过期时间这里看到我的免费额度到25年5月在同一个页面,点击API示例 前端调用直接在前端调用的优缺点以vue为例(代码是基于官网node.js的代码转换而来…...
H3C ER8300G2-X未授权导致信息泄露漏洞(CVE-2024-32238)
免责声明: 本文旨在提供有关特定漏洞的深入信息,帮助用户充分了解潜在的安全风险。发布此信息的目的在于提升网络安全意识和推动技术进步,未经授权访问系统、网络或应用程序,可能会导致法律责任或严重后果。因此,作者不对读者基于本文内容所采取的任何行为承担责任。读者在…...
随手记:简单实现纯前端文件导出(XLSX)
1.需求背景: 由于导入需要经过后端存储数据库,所以导入还是和后端联调 但是简单的前端导出有部分是可以直接给到用户 xlsx插件简介 xlsx插件(通常指的是SheetJS/js-xlsx)是一个强大的JavaScript库,它允许你在浏览器…...
SwiftUI 高级开发教程系列 - 第 3 章:数据持久化
在现代应用中,数据持久化是一项非常重要的功能,它使得应用的数据可以在重启后依然保留,提升用户体验。SwiftUI 提供了多种数据持久化方法,包括使用 UserDefaults 保存简单数据和 Core Data 进行更复杂的数据管理。本章将详细讲解这两种技术的用法,并展示如何在 SwiftUI 项…...
代码随想录第二十四天| 93.复原IP地址 78.子集 90.子集II
93. 复原IP地址 题目描述 给定一个只包含数字的字符串 s,复原它并返回所有可能的有效 IP 地址格式。 一个有效的 IP 地址 由四个整数部分组成,每部分的取值范围是 0-255,每个部分不能包含前导零。 解题思路 这道题目要求我们将一个数字字…...
Linux编程:基于 Unix Domain Socket 的进程/线程间通信实时性优化
文章目录 0. 引言1. 使用 epoll 边缘触发模式非不要不选择阻塞模式边缘触发(ET)模式优点示例 2. 使用实时调度策略3. CPU 绑定4. 使用无锁缓冲区5. 优化消息传递的大小和频率6. 使用 SO_RCVTIMEO 和 SO_SNDTIMEO7. 示例代码其他阅读 0. 引言 前几天被问…...
PET-文件包含-FINISHED
include发生错误报warning,继续执行。require发生错误直接error,不继续执行 无视扩展名,只要能解析,就能当可执行文件执行,哪怕文件后缀或没后缀 1 条件竞争 pass17 只需要知道tmp的路径。把xieshell.jpg上传&…...
《WebGL编程指南》书籍分享
在这个数字化时代,WebGL作为一门前沿的图形渲染技术,为网页带来了前所未有的交互体验。今天,我很荣幸向大家分享一本关于学习WebGL的书籍——《Webgl编程指南》 电子版下载链接: https://pan.baidu.com/s/1eTX2Y5ynYH0pUQRf0Jcbow?...
go T 泛型
目录 1、类型约束 2、泛型函数 3、泛型结构体 4、泛型接口 5、以接口作为类型约束 关键词:泛型、类型参数、类型约束 Go 语言在 1.18 版本引入了泛型(Generics)特性,可以编写更通用、可复用的代码,泛型可以用于&a…...
React的基础API介绍(二)
目录 useStateuseState 的基本原理1. 状态在函数组件中的引入2. useState 的工作机制3. Hook 状态与组件渲染 useState 的使用方法1. 基本用法2. 多个状态变量3. 更新状态 注意事项与最佳实践1. 状态更新可能是异步的2. 不要直接修改状态3. 更新对象或数组状态4. 避免闭包陷阱 …...
远程开发测试必看:如何在群晖NAS上运行网页版Ubuntu
文章目录 前言1. 下载Docker-Webtop镜像2. 运行Docker-Webtop镜像3. 本地访问网页版Linux系统4. 群晖NAS安装Cpolar工具5. 配置异地访问Linux系统6. 异地远程访问Linux系统7. 固定异地访问的公网地址 前言 本文将详细讲解如何在群晖NAS上部署docker-webtop,并利用c…...
JAVA题目笔记(十五)经典算法题
一、按要求排序 要求:定义数组并存储一些女朋友对象,利用Arrays中的sort方法进行排序 属性包括:姓名,年龄,身高 按照年龄大小进行排序,年龄一样按照身高排序,身高一样按照姓名字母进行排序。…...
「Mac玩转仓颉内测版8」入门篇8 - Cangjie函数与方法
本篇介绍Cangjie编程语言中的函数与方法,帮助理解如何通过函数封装重复操作,提升代码的复用性和可维护性。 关键词 Cangjie函数方法定义参数传递返回值模块化与复用性 一、什么是函数? 函数是一个代码块,用于接收参数、执行操作…...
在软件开发中正确使用MySQL日期时间类型的深度解析
在日常软件开发场景中,时间信息的存储是底层且核心的需求。从金融交易的精确记账时间、用户操作的行为日志,到供应链系统的物流节点时间戳,时间数据的准确性直接决定业务逻辑的可靠性。MySQL作为主流关系型数据库,其日期时间类型的…...
【网络】每天掌握一个Linux命令 - iftop
在Linux系统中,iftop是网络管理的得力助手,能实时监控网络流量、连接情况等,帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...
css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
MongoDB学习和应用(高效的非关系型数据库)
一丶 MongoDB简介 对于社交类软件的功能,我们需要对它的功能特点进行分析: 数据量会随着用户数增大而增大读多写少价值较低非好友看不到其动态信息地理位置的查询… 针对以上特点进行分析各大存储工具: mysql:关系型数据库&am…...
STM32+rt-thread判断是否联网
一、根据NETDEV_FLAG_INTERNET_UP位判断 static bool is_conncected(void) {struct netdev *dev RT_NULL;dev netdev_get_first_by_flags(NETDEV_FLAG_INTERNET_UP);if (dev RT_NULL){printf("wait netdev internet up...");return false;}else{printf("loc…...
Java - Mysql数据类型对应
Mysql数据类型java数据类型备注整型INT/INTEGERint / java.lang.Integer–BIGINTlong/java.lang.Long–––浮点型FLOATfloat/java.lang.FloatDOUBLEdouble/java.lang.Double–DECIMAL/NUMERICjava.math.BigDecimal字符串型CHARjava.lang.String固定长度字符串VARCHARjava.lang…...
Nuxt.js 中的路由配置详解
Nuxt.js 通过其内置的路由系统简化了应用的路由配置,使得开发者可以轻松地管理页面导航和 URL 结构。路由配置主要涉及页面组件的组织、动态路由的设置以及路由元信息的配置。 自动路由生成 Nuxt.js 会根据 pages 目录下的文件结构自动生成路由配置。每个文件都会对…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Swagger和OpenApi的前世今生
Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章,二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑: 🔄 一、起源与初创期:Swagger的诞生(2010-2014) 核心…...
Android 之 kotlin 语言学习笔记三(Kotlin-Java 互操作)
参考官方文档:https://developer.android.google.cn/kotlin/interop?hlzh-cn 一、Java(供 Kotlin 使用) 1、不得使用硬关键字 不要使用 Kotlin 的任何硬关键字作为方法的名称 或字段。允许使用 Kotlin 的软关键字、修饰符关键字和特殊标识…...
