在群晖NAS上搭建WordPress动态网站并实现外网访问

目录

一、安装套件

1. 安装Web Station套件

2. 安装MariaDB 10数据库套件

3.安装服务套件

4.我为什么要用WordPress?

5.建站的其它方法

二、访问WordPress动态网站

1.内网访问

2.外网访问

3.WordPress的访问设置

4.别名访问

三、申请域名

1.为什么要申请域名

2.在freenom申请.tk免费域名

3.为什么会注册失败?

4.购买付费域名

四、内网穿透

1.内网穿透的基本原理

2.使用免费内网穿透服务

3.内网穿透的问题

五、域名解析

1.申请DNS域名解析

2.添加解析记录

3.修改WordPress设置

六、进一步提升使用体验

1.进一步简化网址

2.还有问题需要解决

3.终于完工了


家有群晖NAS一台,型号是DS216+II,系统目前升级到了DSM 7.1,使用五年,常用的功能都充分发挥了作用,最近突然想试试在NAS上建一个WEB站点。知识储备不够,好在有万能的互联网,再加上自己孜孜不倦的钻研精神,也算是把站点建起来了。当然,建站的过程中碰到了很多的问题,有些问题在网上找到了解决的方法,有些找不到答案只能靠自己摸索。生怕时间一长,把这些解决问题的方法忘掉了,赶紧写篇小文记录下来。为节省篇幅,常规的过程或网上有成熟教程的环节就一带而过了,可自行上网查找。

一、安装套件

1. 安装Web Station套件

要让群晖NAS具有网站功能,必须要安装Web Station这个套件,还要安装必须的后端套件,后端套件有多个版本,我也不管三七二十一,统统都给他安上。安装完成后,在系统中会产生一个名称为“web”的共享文件夹,网站文件就放在这个文件夹里,在这个文件夹里有一个“index.html”的主页文件,在局域网里,在浏览器地址栏输入NAS的IP地址“http://IP”,如“http://192.168.×.×”,就可以看到“index.html”这个网页的内容了,说明我已经在NAS上建立起了一个静态网站。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图

2. 安装MariaDB 10数据库套件

静态网站搭建好,尝试着写了几个网页,总觉得功能太单一了,就想着如何才能做出页面漂亮、功能强大的网站,那就要考虑搭建动态网站了。要建立一个动态网站,就需要使用数据库,那就先安装网站数据库套件,群晖为我们提供了MariaDB 10这个数据库套件,还是按照默认设置进行安装,安装过程中需要设置一个比较复杂的数据库密码,这个密码必须要记住,如果忘掉了,那就只能重置了。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图1

3.安装服务套件

MariaDB 10的界面非常简单,而要对数据库进行管理,必须要安装phpMyAdmin数据库管理套件,安装过程也就一路默认即可。其实,很多人是没有数据库管理能力的,一般情况下也不需要手动操作数据库,如果不想直接操作数据库,这个套件不装问题也不大。

凭空建设一个动态网站,明显超出了我的能力范围,好在群晖提供了两个CMS(内容管理系统)套件,一个是WordPress,还有一个是Joomla。两个套件安装方法差不多,安装过程中需要专门为这个套件建立一个数据库账户,需要设置一个密码。安装完了以后立即启动套件,按照网页提示进行必要的设置,设置完成就可以使用了。当然,这两个套件的功能是差不多的,一般情况下只需要安装一个就可以了,我现在使用的是WordPress。

4.我为什么要用WordPress?

网上看了两个套件的介绍和对比,感觉这两个套件各有千秋,实在难以判断,那就都安装试试吧。首先安装的是Joomla,安装过程还算顺利,虽然群晖提供的版本比较低,安装好了以后Joomla也一直提醒版本太低,好在安装好以后可以升级到最新版,这个应该不是问题。问题有两个,一个是最新版的Joomla 4,强烈要求系统提供更高版本的php(安装时是php 7.4),但在群晖里没有办法修改这个套件的php版本,所以Joomla会一直提醒。第二个问题是Joomla在安装一些插件或组件时,虽然组件标明跟当前版本是兼容的,但还是会导致Joomla数据库的崩溃,崩溃后就只能重新安装,如果网站已经建好,那损失就太大了。经过好几次的重装,也找不到崩溃的原因,就只好放弃了。然后就安装WordPress,装好后折腾了一段时间,安装了好几个插件,兼容的都用上了,不兼容的也没有导致崩溃,目前使用正常。

5.建站的其它方法

在群晖里安装套件是比较简单的,按步骤操作很快就可以完成安装,当然,可供设置的内容也是比较少的。如果想要更强大的功能和更自由的设置,也可以不使用群晖的套件,比如可以在WordPress网站下载软件,上传到NAS手动来安装,还可以在群晖Docker里安装宝塔面板,在宝塔面板上来安装数据库系统和各种服务套件,相关教程可自行查找。

二、访问WordPress动态网站

1.内网访问

群晖对web套件提供了一个标准化的文件目录,安装Web Station后创建默认服务器,同时创建“web”共享文件夹,内网访问默认服务器,只需要“http://IP”即可,访问的是“web”文件夹。而其它服务套件,群晖默认安装在“web_packages”文件夹中,每个套件创建一个子文件夹,路径和名称都是自动创建不能随意修改的。要在内网访问WordPress动态网站,网址为“http://IP/wordpress”,访问的是“web_packages/wordpress”文件夹。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图2

2.外网访问

要实现外网访问NAS上的WEB网站,你的家庭宽带必须要有公网IP地址,群晖的QuickConnect只能用于DSM和群晖自家的套件上,不能用于WEB网站访问。

如果有公网IP,事情就比较简单,首先在群晖里设置好DDNS,群晖也会提供一个免费的二级域名。如我的域名就是“×××××.myds.me”,外部访问默认服务器,就是“http://×××××.myds.me”,访问WordPress动态网站就是“http://×××××.myds.me/wordpress”。当然,事情并没有那么简单,http访问需要用80端口,https访问需要用443端口,NAS的这两个端口都是开放的,所以内网访问的时候没有问题,而路由器的这两个端口一般是被网络运营商关闭的,外网访问就没有办法进行了。所以外网进行http或https访问,必须要使用其它端口并让路由器映射到NAS的80和443端口,我就设置了8000和8001两个端口,在路由器里设置分别映射到NAS的80和443端口。这样一来,访问WordPress动态网站就是“http://×××××.myds.me:8000/wordpress”或者“https://×××××.myds.me:8001/wordpress”。

如果没有公网IP,那也有办法,就是进行内网穿透,这个问题后面来讲。

3.WordPress的访问设置

要成功打开WordPress网站或后台管理页面,还有一个非常重要的因素就是WordPress里网络地址的设定。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图3

WordPress地址(URL)是打开后台管理页面的地址,使用时输入“http://×××××.myds.me:8000/wordpress/wp-admin”,站点地址(URL)是你制作的网站的地址。WordPress设置中这两个地址一定要设置正确,否则即使你在浏览器输入了正确的地址,WordPress也会按这个设置帮你转到设定好的地址上去, 如果设定错误就导致网站无法访问。我一开始设置的时候地址里没有端口号,因为在内网,访问没有问题,等到了外网访问的时候,虽然输入地址时加上了端口号,但因为设置里的地址没有端口号,所以就没有办法访问到网站。

4.别名访问

网站虽然能够访问,但总觉得自己的网站地址里有“wordpress”的字样,一是没有个性,二是也不太想让人一看就知道自己网站的制作工具。但在群晖里又不能随意修改安装路径,真要修改那也是比较复杂的。不过,群晖提供了一个简单的方案,就是使用别名来访问网站。打开“Web Station”,“网页服务门户”里找到“WordPress”,点击编辑,把别名修改为自己喜欢的名字。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图4

假设别名修改为“baidu”,那么网站就可以通过“http://×××××.myds.me:8000/baidu”来访问了。当然,WordPress后台设置里的两个地址也要进行修改,因为别名访问不影响原来名称的访问,如果不修改WordPress后台设置,网站还是能够访问,但地址仍会显示“wordpress”而不是别名“baidu”。

三、申请域名

1.为什么要申请域名

虽然我的家庭宽带有公网IP,在群晖DDNS里申请了一个群晖的二级域名,通过二级域名来访问,但总觉得二级域名不方便,没有一级域名那么高大上,就想着到专门的网站上去申请一个一级域名。如果你的家庭宽带没有公网IP,按目前的形势,要想问运营商申请一个公网IP基本不可能,那就考虑内网穿透,做内网穿透前,先要把域名申请好。在国内申请域名,首选是阿里云或者腾讯云,中文界面,一目了然,配套服务齐全,“.com”“.net”随便挑,明码标价,各取所需。当然,如果不想花钱,也有国外的一些免费域名申请,因为只是作为一个建站尝试,我先申请个免费的试试。

2.在freenom申请.tk免费域名

目前,免费且简洁的一级域名已经不多了,网上多推荐“.tk”,是南太平洋岛国Tokelau的国家顶级域名,申请网址是“https://freenom.com”,该网站提供.tk、.ml、.ga、.cf、.gq等域名后缀的免费注册。网站提供中文服务,但希望英语还行的朋友直接用英文,中文翻译很不到位,英文其实也挺简单。

先注册一个账户,完善个人信息,要注意正确填写电子邮箱和国家、地区等信息,网站会向邮箱发送一些域名到期提醒等邮件,注册完成就可以开始查询你心仪的域名了。

查到可用的域名,就可以进行注册了,我遇到了一个网站bug,明明域名可用,但无法进入下一步,然后尝试在搜索框输入带后缀的全名进行查询,比如“mysitename.tk”,就可以了。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图5

然后按照网页提示一步步完成注册,免费域名默认是3个月,可改为12个月,时间到了再来续期。当然,申请了域名是要用来访问自己的网站的,这里提供了两种访问的方式,一种是转发,前提是你的网站已经有一个域名了。第二种是DNS解析,指向你的固定公网IP地址,如果没有公网IP或者IP不固定,就无法实现,这个地方我考虑使用国内的DNS解析服务,就先搁置一下,回头再来设置。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图6

3.为什么会注册失败?

所有步骤操作完成,最终就可以看到订单信息了,我一开始以为看到订单号,就表明注册成功了,但随后就发现有问题。再仔细看这个订单信息,如果只有上面一段,那说明域名注册成功了。如果还有下面“Attention!”这一段,说明注册过程出了问题,注册失败了。经过分析研究,发现注册失败的原因是我的个人信息登记有问题,在填我所在的国家地区时随便填了其它国家的地方,而freenom网站会通过你上网的IP地址来识别你所在的国家地区,如果跟你在个人信息里面登记的不符,就会导致注册失败。修改好正确的信息,注册成功!

在群晖NAS上搭建WordPress动态网站并实现外网访问插图7

4.购买付费域名

如果像我只是自己学习研究之用,或者在极小的范围内试用,免费域名不会有太大的问题。而网站要投入使用,域名就必须要进行备案,也要宣传推广,免费域名可能会存在一些问题,用户只有免费域名的使用权而无所有权,在某些情况下会被收回,而且像“.tk”这样的其它国家的国家域名,使用在自己的网站上,多少也有些尴尬。如果要正式地做一个网站,建议还是在阿里云或腾讯云注册一个常规的域名。

四、内网穿透

1.内网穿透的基本原理

内网穿透必须要依赖于有公网IP的服务器作为服务端,服务端安装有服务软件,没有公网IP需要内网穿透的主机安装客户软件,或安装集成了软件的网络硬件,在服务端和客户端之间建立起一种特殊的网络联系。在客户端进行必要的设置,主要是通知服务端自己的域名和端口,再通过DNS解析将自己的域名指向服务端,当我们访问域名时,首先访问到了具有公网IP的服务端,然后通过服务端和客户端的连结进行通讯,间接地访问到了我们自已的主机。

内网穿透的服务原理其实比较简单,如果自己有具有公网IP的服务器,也可以自己来做穿透服务,当然,就是因为我们没有公网IP,才需要内网穿透服务。网上有一些知名的内网穿透服务商,但费用是比较高的,因为我们主机的访问都要通过服务端来进行,要占用服务端的带宽,消耗服务端的流量,所以,服务商的服务也是明码标价的,带宽越大,流量越多,使用时间越长,费用就越高。我只是做个建站试验,没必要花那个冤枉钱,就找网上免费的内网穿透服务。

2.使用免费内网穿透服务

在网上找到一个免费的frp内网穿透服务网站,输入网址“freefrp.net”打开网站。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图8

网站不仅提供内网穿透服务,还提供了详细的安装教程,重点阅读了下面两篇教程:

在群晖NAS上搭建WordPress动态网站并实现外网访问插图9
看完教程,就进行实际操作,操作进按教程走就可以了,但还是有几个关键点需要注意一下。

首先,要预先做好配置文件,配置文件的名称是“frpc.ini”,建议用代码编辑器编辑,最好不要用文本编辑器,容易出错。配置文件做好后,上传到NAS的共享文件夹里,建议上传到“/Docker/frpc/frpc.ini”,文件夹没有的就新建。frpc.ini的格式如下:

[common] server_addr = frp.freefrp.net # 服务器IP或者地址,一般不要修改,如果改为其它线路(如frp2),则在配置DNS解析时要保持一致。 server_port = 7000 # 服务器提供的端口号,这个不要修改,freefrp的连接端口只有这一个。 token = freefrp.net # 服务器提供的token,这个不要修改,这是freefrp连接的密码。 [web1_xxxxxx] # 为避免错误,一定需更改为比较特殊的名称,不能和服务器端其他配置重名,保证[]内的名称在freefrp网站上是唯一的。 type = http # http协议 local_ip = 192.168.1.5 # 填写群晖内网IP。 local_port = 5000 # 群晖内网HTTP端口,如果要连接到DSM,默认为5000,如果要连接到WEB网站,改为80。 custom_domains = nas.ioiox.com # 填写你的域名,如果前面申请了一级域名,填写刚刚申请好的域名。 [web2_xxxxxx] # 这是另外一段协议,填写方法和上一段是一样的。用来配置第二个端口,如果要配置更多端口,则可以再复制一段进行修改。 type = https # https协议 local_ip = 192.168.1.5 # 填写群晖内网IP. local_port = 5001 # 群晖内网HTTPS端口,如果要连接到DSM,默认为5001,如果要连接到WEB网站,改为443。 custom_domains = nas.ioiox.com # 填写你的域名,如果要穿透多个域名,不管是一级还是二级域名,每个域名都需要单独写一段。

其次,使用Docker安装配置frpc客户端。按照教程一步步操作,一般不会太大的问题,需要注意一个地方:在“高级设置”里“添加文件”,“文件/文件夹”这个位置要输入前面上传的frpc.ini配置文件的路径“docker/frpc/frpc.ini”,如果文件上传在其它位置,则按实际填写。装载路径是默认的,不能修改。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图10

最后,就是尝试启动这个客户端,如果不能正常启动或自动退出,要检查frpc.ini的路径填写是否正确,配置文件的内容格式是否有问题,配置文件是否用代码编辑器编辑等,如果不存在这些问题,客户端就能正常启动。

3.内网穿透的问题

内网穿透必须要依赖于具有公网IP的服务器,所有的访问流量都要通过服务器中转,所以访问的稳定性和网速受制于服务器提供的服务,还存在一定的信息泄露风险,所以一定要选择可靠的内网穿透服务商。免费的frp服务质量到底如何,还无法确定。当然,在某宝上也有frp服务出售,几十块钱质保一年,保证带宽和流量,也可以去试试。

五、域名解析

1.申请DNS域名解析

通过内网穿透服务,我们在frp服务器和自己的内网主机之间建立了联系,也申请好了自己中意的域名,现在就要让我们的域名来联结到frp服务器,这就需要DNS解析服务了。前面我们在freenom申请了.tk的域名,freenom也提供免费的DNS解析服务,但考虑到毕竟是国外的服务器,而且freenom提供的免费解析服务也不能满足我们的需要,所以就直接使用我们国内的DNS解析服务。华为云和腾讯云都是很好的域名服务商,都提供域名注册、解析等服务,我选择了腾讯云,也没有什么道理,两家都不错。

打开dnspod.cn网站,注册一个账号,完成实名认证,就可以享受DNSPOD的服务了。打开管理控制台,添加前面申请到的×××××.tk域名,网站就会告诉我们提供DNS解析的服务器名称。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图11

因为我是在freenom申请的域名,默认应该由freenom来提供DNS解析服务,现在要让DNSPOD来进行解析,必须得跟freenom说一声,否则就会有问题。那就登录freenom,选择要设置的域名,在“Manage Freenom DNS”选项卡下填上腾讯云DNS服务器的名称,保存即可。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图12

2.添加解析记录

DNS解析的方式有多种,其中“A”记录是最常见的方式,就是将域名指向一个固定IPv4地址,“CNAME”记录是将域名指向另外一个域名。因为我们需要将域名指向frp服务器的域名“frp.freefrp.net”,所以我们要来添加一条“CNAME”记录。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图13

主机记录默认是“@”,指的是一级域名,也可以解析二级域名,如“www.”等,如要解析多个二级域名,需要逐条添加多个记录。这里的主机记录(×××××.tk)和域名(frp.freefrp.net)要和前面编辑的内网穿透frpc.ini配置文件里面的设置完全一致,否则无法实现域名解析和内网穿透。添加好解析记录,网站会告诉我们将把记录发送到各运营商服务器,需要一点时间,但在正常情况下,马上就可以实现解析了。DNSPOD还提供了免费的SSL证书服务,也可以在这里申请免费证书。

3.修改WordPress设置

现在,我们让域名指向了frp服务器,frp服务器又通过内网穿透和我们的内网主机联结起来,我们在外网通过域名就间接地访问到了在内网主机上的WordPress网站。这时,我们还要修改一下WordPress网站地址的设置,WordPress地址(URL)和站点地址(URL)都修改为“http://×××××.tk/wordpress”,这样才能保证网站的正常打开。因为frp服务器开放了80和443端口,所以我们访问网站不再需要添加端口号了,虽然我有公网IP,但通过内网穿透和DNS解析,把二级域名替换成了一级域名,也省略了端口号,网站地址大大地简化了。

六、进一步提升使用体验

1.进一步简化网址

现在,我们的网站地址已经比较简化了,但能不能更加简化一下,用“http://×××××.tk”来直接访问呢?这个就比较简单了,只需要到群晖的Web Station里去设置一下。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图14

在“网页服务门户”里点击“新增”,选择“套件服务器门户”,选择“WordPress”,在主机名中填上我们的域名,其它不要修改,保存即可。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图15

设置好了以后,还是要进入WordPress后台,修改两个地址(URL)为“×××××.tk”,这样我们的WordPress网站就只需要“http://×××××.tk”就可以访问了,其实简单点输入“×××××.tk”也可以,我们的网站一下子就变得高大上了。当然,有一利必有一弊,现在×××××.tk就变成了WordPress网站的专用域名,不能用来访问群晖的其它服务了,不过,我们还可以再去freenom申请一个免费的域名,然后在frpc.ini配置文件里添上几段,到DNSPOD添加好DNS服务,就可以实现对群晖其它服务的访问了。

2.还有问题需要解决

做到这一步,原以为圆满地解决了所有的问题,但打开WordPress后台后,发现网页上有错误警告,打开“工具”-“站点健康”查看状态,错误应该是系统无法将文件写到文件夹里去,估计是权限出了问题。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图16

再点开“信息” 确认,确实是文件夹写入权限的问题。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图17

在网上查找这一问题的解决办法,解决方案多种多样,但都非常烦琐,也尝试了几种方法,没有效果,但基本确认是用户和用户组的权限问题。最后还是回到群晖的文件夹设置来看看吧,打开File Station,找到“web_packages/wordpress”文件夹,右键“属性”-“权限”,发现http用户和http用户组的权限都是“读取”,会不会这个问题?那就来修改试试,全部改为“读取&写入”,应用到子文件夹,“保存”。回到WordPress后台,错误消失,问题解决。

在群晖NAS上搭建WordPress动态网站并实现外网访问插图18

另外,我们在修改网站地址的时候,建议在内网中进行操作,因为WordPress网站地址的设置会影响到网站能否正常访问,内网中操作可以方便地打开WordPress后台,及时修改网站地址。

3.终于完工了

这一次的建站体验,涉及到了几个方面的专业知识,但不想搞得太专业,建站过程中尽量使用最简单的方法,相关软件也尽量使用群晖自带的套件,经过努力,最终实现了貌似较完美的结果。当然,网站要投入使用,特别是要商用的话,这种建站方法就无法满足使用需求了,这种建站方法仅限于自娱自乐。一次建站的尝试,也是一次学习的过程,将体验记录下来和大家分享。可能有更好或更简便的方法来解决我所遇到的问题,可能文中还有一些错误,敬请批评指正。

原文链接:https://blog.csdn.net/weixin_56957163/article/details/126909346?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522167586359916800225521112%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fblog.%2522%257D&request_id=167586359916800225521112&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~blog~first_rank_ecpm_v1~times_rank-20-126909346-null-null.blog_rank_default&utm_term=%E9%BB%91%E7%BE%A4%E6%99%96%2C%E7%BE%A4%E6%99%96%2Cnas%2C%E8%9C%97%E7%89%9B%E6%98%9F%E9%99%85%2CDSM%EF%BC%8C%E5%86%85%E7%BD%91%E7%A9%BF%E9%80%8F%2Cipv6%2C%E8%BF%9C%E7%A8%8B%E8%AE%BF%E9%97%AE%2Cwordpress%EF%BC%8C%E5%BB%BA%E7%AB%99%2C%E9%98%BF%E9%87%8C%E4%BA%91%2C%E8%85%BE%E8%AE%AF%E4%BA%91%2C%E5%9F%9F%E5%90%8D%2C%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8%2C

上一篇
下一篇