威联通QNAP ts-453bmini 用container架设wordpress并开启SSL
去年双十一入手了威联通的ts-453bmini,使用下来非常满意,今天,刚好折腾了一下如何用这台nas来完美搭建wordpress网站并开启https访问。
在NAS上架设wordpress并不复杂,基本上各品牌的nas的官方商店都提供了wordpress的app,能做到一键搭设,但是,这样的方式架设出来的网站,都会保留着一连串的域名+端口,甚至还有二级目录,既不美观,又暴露了你nas的域名信息,因此,就有了今天的折腾。
我的目的是,网站建在nas上,可以通过自己的域名访问,并开启ssl。
要在nas中架设使用自己域名的wordpress网站,所需的前提条件如下:
一个公网ip+ddns动态域名(没有公网的要设置内网穿透)
一台VPS
一个域名
如果具备了以上3个条件,那么就可以通过以下步骤将自己的网站架设在家里的NAS当中了。
首先是在VPS中打开web环境,我直接安装的宝塔面板5.9,服务器系统我选择的是debian 9,所以采用debian的安装命令:
wget -O install.sh http://download.bt.cn/install/install-ubuntu.sh && sudo bash install.sh
安装完毕后登录宝塔面板,一键安装LNMP环境
至此,服务器的环境安装完毕,我们下一步来解析域名
登录到你的域名服务商,进入DNS解析设置,将域名解析到你的VPS的地址,以freenom为例,设置如下
至此,域名解析步骤就完成了
现在,我们可以进入到nas的后台,来安装container下的wordpress。
其实在QNAP的官方app当中,也有提供wordpress,但为什么要在container中安装呢,两者的区别在于,威联通app的wordpress安装后,域名会默认设置为
http://你的nas的ip:端口号/wordpress
这样的结构显然太过于复杂,不符合折腾的精神,因此我们采用在container当中安装wordpress,来达到域名的美观,同时又保证整个网站是架设在自己的nas中,满足折腾的需要。
进入到container station,在创建菜单里搜索wordpress
安装后,会发现这个app实际上是由两个docker构成的,主程序和数据库
点击主程序链接,会弹出wodpress的后台链接,点击后就会进入到wordpress设置界面
出现安装提示后,不建议点击下一步,我们现在要设置的是如何用自己的域名访问。
现在,要先设置如何在外网访问到刚刚建立好的wordpress,如果你有公网ip的话,通过nas自带的ddns服务,就能顺利访问到,这里以威联通为例:
打开cloudlink云联通,开启myddns,如果有公网ip的话,这里会显示你的动态域名,如果没有公网ip,则需要通过frp等内网穿透工具来设置,这里不展开了
打开DDNS后,还需要在路由器上设置一下端口转发,container的wordpress的端口默认是10084,这里以openwrt的设置为例:
设置保存后,应该就能够通过ddns域名+端口号访问到wordpress了
http://ddns域名:10084
如果对域名没有特殊要求的话,现在这个教程也就可以结束了,如果要用自定义域名访问,并打开SSL的话,那么就请继续往下看!
家庭申请到的公网ip,80端口和443端口基本都是封锁的,如果用域名转发的方式,是可以将自定义域名指向我们的家庭nas的,可是这样的域名会在后面带上自定义端口,如果要去掉这个端口号,那么就需要用到nginx反向代理,宝塔面板中可以很轻松的做到,进入面板,我们先添加网站,因为这个步骤只是为了搭建反向代理,所以不需要添加数据库和FTP。
在域名里,添加自己的域名,带www的和不带的各一个
提交之后,我们点击网站选项,设置反向代理,在目标url里填写我们刚刚的ddns域名+端口号,点击启用反向代理,开启缓存
现在,你可以在浏览器中输入自己的自定义域名了,如果一切都设置正确,会进入到刚刚的wordpress安装界面。
基本上,折腾到这,也就可以说是告一段落了,但是注意细节的你,会发现在浏览器上的“不安全”
现在,我们就来去掉这个提示,启用ssl访问
我们现在的网站是通过反向代理访问的,只需要在最外层开启ssl,大致结构如下
设置方法如下
首先打开wordpress,我们要启用wordpress的https,container中的wordpress无法直接访问到设置文件,所以我们要安装一个插件“wp文件管理器”
打开文件管理器,在根目录文件wp-includesfunctions.php,找到代码 require( ABSPATH . WPINC . ‘/option.php’ );大概在第8行。
在下方添加以下代码
add_filter(‘script_loader_src’, ‘agnostic_script_loader_src’, 20,2); function agnostic_script_loader_src($src, $handle) { return preg_replace(‘/^(http|https):/’, ”, $src); }
add_filter(‘style_loader_src’, ‘agnostic_style_loader_src’, 20,2); function agnostic_style_loader_src($src, $handle) { return preg_replace(‘/^(http|https):/’, ”, $src); }
同样的方式,编辑根目录下的wp-config.php
找到以下代码
**
@package WordPress
*/
然后再其下方添加以下代码
$_SERVER[‘HTTPS’] = ‘on’;
define(‘FORCE_SSL_LOGIN’, true);
define(‘FORCE_SSL_ADMIN’, true);
这时候,如果你刷新页面,会弹出安全提示,因为还没有SSL的证书,我们打开宝塔面板,进入网站选项,选择SSL,Let's Encrypt选项,将下方的域名都勾上,开启SSL并强制打开https,如果设置正确,几秒钟后就会成功申请到SSL证书
再次输入域名,wordpress将正确的运行在ssl模式下
是不是成就感满格?!
最后一步,在wordpress中搜索插件Really Simple SSL,并开启,该插件将会自动设置SSL参数,提高网站的兼容性
终于折腾完了,其实有人会说,为何不直接在VPS上安装wordpress,的确,如果在VPS上安装,几个步骤就能做完,但也就失去了折腾的乐趣。
marundong
校验提示文案
frutive
校验提示文案
值友1527084029
校验提示文案
别说爱情会老
校验提示文案
阿文菌
校验提示文案
nostalgis
校验提示文案
49年入国军
校验提示文案
49年入国军
校验提示文案
别说爱情会老
校验提示文案
nostalgis
校验提示文案
值友1527084029
校验提示文案
阿文菌
校验提示文案
frutive
校验提示文案
marundong
校验提示文案