这里之间放树莓派博客的连接了
我的ghost博客搭建教程
这个是我开始写的第一篇正式的博文,哈哈。也是一个教程,留给自己留给看到这篇文章且有兴趣的小伙伴们!
首先,要有毅力和解决碰到问题的恒心,之后要善加思考和会Google问题Baidu问题。
准备的知识有Linux的基础知识
器材有树莓派(或者有自己的Linux服务器也是可以的)
上图的东西就是树莓派了,树莓派是一种很廉价的电脑,计划是为非洲的那些穷苦人用上电脑。再看看我们现在的生活是不是太好了,哈哈。
整个的构建思路就是Ghost博客框架+树莓派+Ngrok(反向代理)+Nginx(开源的服务器,非常强大)+MySql(数据库)+Nodejs(服务器脚本)
Ghost博客框架是大家看到的网站啦,当然,网站只是一部分。我作为整个网站的建站的“码农”还有其他的玩法,比如添加自己写的页面,或者添加评论功能(这个已经安排上了)
树莓派这个我介绍过了,嗯,一小部分。树莓派是我们的物理服务器,在上面烧入Linux系统为了给我们后面要安装的Ghost框架等提供一个基础啊
Ngrok反向代理服务,这个不能说多,不能说多,因为涉及到隧道技术什么的。说实话我看到这个隧道技术还是蛮感兴趣的。Ngrok的作用主要就是内网穿透,啊,不懂,那就是打破内网和外网之间的限制。反正,只要知道用这个才能让别人远程访问到我们的网站(不在同一个局域网下)
Nginx,这个服务器的来头大大的,当初想用Apache,也是一个开源的服务器。这个服务器就很强大了。最强大的地方就在于能够建立很多虚拟服务器能,这样不就能响应很多服务了嘛,就像银行的窗口开一个和开10个的区别哦。
MySql这个东东是什么啊,这个就是要存储我们博客里的博文啊,视频啊,评论啊等等数据喽,要不然怎么用博客啊。
Sqlite3这个和MySQL一致,只是更轻量级。个人博客用这个足够了。
这个Nodejs是可以写服务器的脚本,具体其实在建这个博客的时候至是作为一个重要的依赖来安装的可以不用了解太多的,(嗯,应该没人知道我不太懂这个)
介绍完了这些基础的知识是不是很晕,哈哈,坚持就是胜利啊。
下面我要写各种代码了哦,尽量通俗,尽量通俗啊。对了,我是认为大家都安装好了Linux这种系统了哦,用Linux里面的任意发行版本都可以。啊,千万别用kali Linux啊,好奇宝宝可以查一查。
树莓派的系统用的Debian包管理了,所以在Linux这个系统上安装软件可和Windows不一样哎,要用命令行哦
哇,好高级的有没有,是不是感觉黑客的感觉。别做梦了,其实差的很远。(现实现实)
首先我们要用这些软件就要安装它们,要不怎么用呀(笑)
还有一点就是要在网络环境好的条件下,很多软件的安装源都在国外,很慢的哦。有能力的小伙伴可以“坐飞机上网”
apt-get就是安装的命令,用来安装软件哦。当然,既然只有一个命令行,不会让我用软件都是用命令行吧?嗯,猜对了,就是用命令行用软件。(其实树莓派也有GNOME图形界面)很多人开始欢呼了,因为和Windows很像嘛!
反正你用也要用,不用也要用。分别在命令行下执行
(注意命令之间的空格)
一句话完事,比Windows那种安装是不是快多了?前面的sudo是临时提权的作用,在Linux这个神奇的系统上,权限是一种很重要的概念。
那命令行安装完毕了怎么看我们的软件安没安装好呢?
哎,我们都安装好了是不是可以开始用了,wrong!我们还要去配置这些软件。嗯,没配置怎么用啊?什么,你说没配置可以用,这个有点像Windows安装软件选择路径,选择是不是要添加快捷方式到桌面,安装完登陆用户差不多。
一项一项来吧,心急吃不了热豆腐。(以后的文章会分别详细这几个软件的使用,因为本人还要熟悉熟悉)
ghost的安装以及sqlite数据库的安装
首先,我们要建立一个文件夹,最好再建立一个专门的ghost博客的Linux用户。为了安全不能设置ghost用户登入到Linux系统中(这个可选)
看见了吗,我现在在名叫top的这个文件夹里面,你问前面这些是什么,也是文件夹。我列一个Windows环境下的路径
看差不多吧,你说没有F盘的盘符?哈哈,Linux里可没有盘符的说法,但是有文件挂载的说法。看到/var的那个文件夹了吗,你就可以当成是一个叫var的盘(拓展:这个var文件夹里面主要装这软件的日志文件,可以在分区时多分点空间。你说我为什么不早点说,哈哈,后面的文章还有扩容的教程哦)
好了,就在这个目录里面用npm命令(这个是nodejs 的包管理命令,前面不是说有一个包管理的命令了吗,那个是Linux的哦。如果接触python的话还有一个pip的包管理命令)
这个就是ghost博客框架的安装了,也可以用cnpm(China npm)来安装,快一些。(不喜欢快的同学可以不用)
在这个目录下用
(这句话安装了两个东东,一个ghost一个sqlite3)
好了,我们现在来看看ghost的结构。
蓝色名字的为文件夹,白色名字的就是文件(大家要习惯哦)
上面的一张图片是图示的架构,下面的就是我们看到的结构啦
content文件夹是ghost博客的内容,这个是放博客基础内容的地方,比如我们的博客的主题和我们上传到博客的背景等。我们写的博客不在这里哦,别弄混了
core(核心)文件夹顾名思义就是ghost框架的核心文件了,如Windows的同名文件夹
上面的这两个是最最主要的ghost的文件\夹了
进入到core/server/config/env文件夹里头
其中有两个文件是很重要的
首先,我们先说明一下ghost博客的三种工作模式:开发者模式、生产模式、和测试模式。
个人博客可以用开发者模式,只要在启动ghost的时候加一个选项就好了哦
这里先丢一个官方的文档,养成编程查看文档是一个很好的编程习惯的呀
这里有几个重要的配置文件选项
url:这个是统一资源定位符,人话来讲就是一个定位到网站的地址(好像也不人话)
database:这个是数据库哦,还记得前面的sqlite和MySQL吗,要用数据库就要在里面配置哦
path:这个是制定ghost里面的content文件夹的位置
privacy:这个是自定义一些隐私的规则,比如不想让xxx看你的博客什么的啦
server:嘿嘿,这个是定义服务器配置哦,里头有host(主机)和port(端口)这两个属性,可以不用Nginx直接进行IP映射
mail:这个是邮箱服务器的设置,比如我们现代人密码太多记不住总是要用到找回密码,这个选项就可以提供这个功能。前提你要有邮箱(呵,8102年了,谁没有邮箱啊)
cache:这个是缓存的设置,可以让你的博客加载的更快呢
这几个够用了啦,个人博客嘛,没太多的配置呦。还有,这些如果安装完成了前面讲的东西都自动配置了呦。
好了,回到我们的ghost主目录,有一个package.json文件,记住呦,有这个文件的文件夹才是ghost博客的根目录。在这个目录才能用npm start这个命令开启ghost的,且默认是以开发者模式(npm start -development)启动的。所以,要是启动有错误,首先来检查你的config.development.json这个文件吧,_
接下来就是简单的配置代码了,直接上图吧,哈哈。
Tip.域名是啥,嗯…~ o( ̄▽ ̄)o就像“www.baidu.com”这种就是域名。
我去,都默认啊,美滋滋哎…
这个没有,不!默!认!敲这些代码的时候注意json这种语言的语法哦,贴的教程站吧—W3C的json教程
transport这个是邮件传输的协议,有SMTP、POP、IMAP三种哦
from是邮箱的替换,把下面options里auth里的user的邮箱用户名替换成你的
options里面要用到你注册的邮箱的发件邮箱服务器啦(host)这个我用的163的,qq邮箱是smtp.qq.com的。port是端口,163的SMTP协议的端口是25哦。我大概找了下,QQSMTP邮箱服务器的端口也是25,auth就是验证的意思。里面就是你注册的用户名和密码。
这些都是必要的呦,一项都不能少。
好了,这些基础的配置都完成了。现在就能开始启动我们的ghost博客了哦。
有没有激动的感觉,折腾了这么久。颇有一点成就感啊。嘻嘻!
哎哎,等等。好像还没完吧,是的,认真的同学发现了吧,我们这少了不少步骤呢,比如nginx的配置以及ngrok的反向代理软件。
Nginx的配置
首先来看看nginx的目录吧
这次的目录在/etc下,这个目录才是正经八百的Linux上的软件的安装目录,有点像Windows的program files的那个文件夹
最重要的就是配置,好,我们开始找conf后缀的文件(这里拓展下,Linux文件系统是不强调文件名的后缀的,而Windows就不一样了,我们实验一下)
把后缀名改成.txt
来看看Linux下
看rw前面都是一个“-”,这表示都是文件
所以啊,这点和Windows的不同大家也要尽快的适应才行。
好了,看看我们nginx默认的配置文件
额,其实这个文件我们用不到,我们只需要屏蔽两句话(注释两句话,注释符号是“#”)
分别是这两处,因为不注释就会用nginx在那两个文件夹下的配置文件的,会引发很多恼人的问题哦。这里别看这些都是细枝末节的小问题,其实啦,平时出bug的都是这些小问题
那我们怎么配置啊,更改那两个文件的内容吗,不行,绝对的不行。要在另一个文件夹conf.d下创建我们的配置文件了哦。(细心的同学已经…不说了)
这里不是json的语法,其实也有键值对的感觉。
server:虚拟服务器配置(告诉nginx这里是一个虚拟服务器哦)
listen:服务器监听的端口(为什么监听啊,因为只有一致开放一个端口监听才能随时响应大家的访问喽)
server_name:这个虚拟服务器名就用自己的域名,不能乱起名字呀,当初踩的坑 ┭┮﹏┭┮,这里是让虚拟服务器知道是你配置的域名在请求虚拟服务器呦(绕口令多读几遍…还是不懂,加油)
location:这个是用来映射到本地IP和端口到域名和指定的80端口监听啦
proxy_pass:这个是最绕的。呦呦,看到locatio后面的“/”了吗,这个location后的参数很讲究,我设定的“/”是直接加到http://127.0.0.1:2368后面。换一句人话将就是可以代理到本地ghost的网络位置,ghost的网络位置在http://127.0.0.1:2368
好啦,配置完就可以用命令启动了,任何地方都能用哦,因为在/usr/bash里的。
启动nginx这个服务
嘿,everybody。这时我们可以制定ghsot的url为http://127.0.0.1:2368就可以在树莓派的浏览器上面输入http://127.0.0.1访问了哦。
哎,跳什么舞,激动什么。看到在树莓派的浏览器上访问几个大字了嘛,这时你的ghost只是在本地能访问。局域网底下也可以,但是我怎么给我远在青岛的同学看呐,不可能让她连我的WiFi吧(笑)
下面我们就来解决这个问题
Ngrok反向代理的使用:
反向代理,嗯,又要给各位科普了。
这里我翻译下,反向在服务端ngrok向客户端转发数据,而不是回复数据,而客户端正好相反。为什么要这么麻烦,直接发送不行嘛,不行的哦。连局域网的网关是没法穿过去的,即便穿过去怎么让数据就发送到目的地呢。为了解决这些,就要用一台在外网的ngrok服务器和本地的ngrok客户端了。
sock1客户端请求建立一个隧道,隧道可以转发任何的数据哦,都是重新封装过的。可以想到我们现实中的隧道啦,有点像哦。隧道里可以走任何车辆,大车,小车。哈哈,所以很多技术都是借鉴我们现实生活中的呢。
好,我们下面就介绍如何使用喽,我的ngrok服务器是别人提供的,哈哈,自己没有太好的服务器,为了高带宽和高速度就用别人的了。要下载适合自己的客户端的,Ubuntu或者centos都是用的Linux版的32位或者64位的客户端,而如果你用树莓派的话就是用到arm的客户端喽,千万别下错啦。
这几个客户端在我的ftp服务器也有的,看我这里好多好玩的啊。
看第一个ngrok和第二个ngrok.cfg就行了
cfg就是配置文件了,来吧,又是一个配置文件,且是最后一个配置文件了。
这里因为不是直接安装ngrok,是直接解压就能用(就问问Windows里有多少软件能直接解压完就用?)
所以要用
来,又到选项部分了,官方文档走你
这里,多介绍一点。ngrok可以建立tcp,http,tls三种协议的隧道,我们用http就够了呦,最后的“80”就是制定隧道为http的。
-config是来制定配置文件,我们这里制定的就是刚才的第二个文件ngrok.cfg喽
-subdomain这个是指定自己的子域名,随便起喽。不能瞎搞!!
当启动成功之后,可以看到online
okok,这时在进入ghost的安装目录之中用npm启动就OK了。
好了好了,快快让青岛的同学试一试吧,直接输入你的域名就行,是不是成功了呢:)
尾巴
这一次也是我趁热打铁赶出来的第一篇博文,也是介绍了我安装时候遇到的一些事情。大家别>﹏<踩坑。感觉东西挺多,其实啦。真的不是很多,很多都是一些基础的配置就行。但是我也说过,最致命的问题就是这些小问题。