征文投稿丨使用云服务器 ECS 快速搭建 halo 博客
![征文投稿丨使用云服务器ECS快速搭建halo博客](https://static001.geekbang.org/infoq/0d/0d2d021b3cd9edb5521629ff30b02c09.jpeg)
本文来自云服务器 ECS 开发实践征文活动用户投稿,已获得作者(昵称乌龟哥哥)授权发布。文章首发于微信公众号“弹性计算百晓生”。
可能网络上已经有很多关于 Wordpress 的建站教程,但是关于 halo 却很少。本文将从阿里云服务器购买(试用)到搭建一个属于开发者自己的开源博客系统,带你从 0 到 1 了解认识阿里云 ECS 搭建博客网站。
阿里云官网的 ECS 产品介绍描述如下:
“
云服务器 ECS 免去了您采购 IT 硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。
”
在我看来,云服务器 ECS 就是一台永不关机的主机电脑,这台主机也许并不需要屏幕,因此我们可以通过远程登录控制。
Halo 是一款使用 Java 开发的开源博客系统,致力于打造最好的 Java 博客系统,知名度没有大名鼎鼎的 wordpress 高,但是一款非常简洁清新的开源建站系统,所有代码都储存在 github 网站,方便开发者进行二次开发和修改。
01 博客搭建的前期准备
我们搭建网站要准备的包括:
• 阿里云账号注册及实名认证
• 购买云服务器 ECS
• 已经备案的域名(可选)
• 阿里云对象存储 OSS(可选)
1 、注册阿里云账号并实名认证
进入官网后,点击注册账号。
![](https://static001.geekbang.org/infoq/98/98336ff8ec54018fb9fe173e374de348.png)
点击同意并注册。
![](https://static001.geekbang.org/infoq/fc/fc3f808f229785973ab50a6d09f13e82.png)
**也可以直接用淘宝或者支付宝,钉钉绑定扫码;或者下载阿里云 app,用阿里云 app 扫码登录。
点击右侧我的阿里云,进入用户中心。
![](https://static001.geekbang.org/infoq/16/16a37e558d8cd883d3e05e2f7821a24b.png)
点击右上角头像,点击实名认证。
![](https://static001.geekbang.org/infoq/5a/5a441cd341f6fa0e7c050943347c7e3a.png)
按照要求填写个人信息进行实名认证,审核通过后显示如下信息。
![](https://static001.geekbang.org/infoq/e8/e896aacb92b3c13e20553b7bcb17bc00.png)
**只有实名认证的阿里云账号才能进行服务器购买,域名备案等操作。
2 、购买(试用)阿里云服务器 ECS
阿里云针对实名认证的用户提供了多种免费试用产品,减少开发者的资金投入,如果在试用期内对产品满意则可以继续付费使用。
阿里云产品开发者试用专区:https://free.aliyun.com
![](https://static001.geekbang.org/infoq/56/56f8d8a589fc822bfd4cccc085cbea82.png)
找到云服务器共享型 s6,点击零元试用。
![](https://static001.geekbang.org/infoq/3b/3b8ad498a86ec2806b36f78c635cc228.png)
按照提示选择配置。
![](https://static001.geekbang.org/infoq/1c/1cb1ac503c5ec5c802373e349c67ff06.png)
**关于地域,选择距离访客实际物理位置最近的区域可以降低延迟。
操作系统选择 centos 7.9 64 位。
![](https://static001.geekbang.org/infoq/7c/7c5381266ac6427d71e728a04ce2e797.png)
其他配置默认即可,点击立即购买。
![](https://static001.geekbang.org/infoq/e4/e4efa1312a592f17296c69fe8f82ee71.png)
同意服务协议,点击去支付。
![](https://static001.geekbang.org/infoq/88/88dbc8b68379be152c2adc61d1ceb719.png)
点击支付,购买成功。
![](https://static001.geekbang.org/infoq/8c/8ccda75842e73940ad2c42d3c09c5dec.png)
等待 3-5 分钟,进入控制台可以查看购买的 ECS 服务器。
![](https://static001.geekbang.org/infoq/7d/7d3c578ea7bdc09614621f3936da2873.png)
![](https://static001.geekbang.org/infoq/a5/a55e68c9de3f7ea22d0f5027f90b20c1.png)
![](https://static001.geekbang.org/infoq/56/565aaa085ab1b1b3e5826da7e744c358.png)
3 、购买域名并备案
域名购买后需要进行备案才能正常访问,备案大概需要 5 个工作日,需要提前安排时间。
阿里云域名购买地址:https://wanwang.aliyun.com
打开网址后选择你想选择的域名,挑好域名后加入清单,进行购买。
![](https://static001.geekbang.org/infoq/53/5302717bf1f67394e68077fda14129dd.png)
填写模板信息,完善身份证件等资料。
![](https://static001.geekbang.org/infoq/b9/b9a839ae7216ac0c4b0f314798b886f5.png)
模板填写完成后还需要进行审核。
![](https://static001.geekbang.org/infoq/c4/c499f3701c15f5acd03011d2d4283291.png)
待审核信息通过后可以进行域名购买,选择域名持有者为个人,点击立即购买。
![](https://static001.geekbang.org/infoq/36/36092536e530d8db576ff33f8a840de2.png)
4 、阿里云对象存储 OSS(可选)
进入阿里云对象存储试用中心:https://free.aliyun.com
找到存储容量单位包,点击零元试用。
![](https://static001.geekbang.org/infoq/ca/ca02f72800cc786edeeb8c9f2753df08.png)
在配置详情页选好,点击立即购买。
![](https://static001.geekbang.org/infoq/96/9660f19ccbb776b960dcd00c35346b3c.png)
确认参数后点击去支付。
![](https://static001.geekbang.org/infoq/8e/8e8c9a6f4f57ad0fe2ae9f447847bedd.png)
在对象存储控制台可以看到详细信息。
![](https://static001.geekbang.org/infoq/a0/a0b70f9332f0bc782ac34fc3ba20a628.png)
02 搭建 halo 博客
准备好需要的资源后,我们需要进行远程登录域名;在本地安装好 finalshell 终端登录软件后进行登录
1 、Finalshell 下载安装
FinalShell 是一体化的的服务器,网络管理软件,不仅是 ssh 客户端,还是功能强大的开发,运维工具,充分满足开发,运维需求。
特色功能:云端同步,免费海外服务器远程桌面加速,ssh 加速,本地化命令输入框,支持自动补全,命令历史,自定义命令参数等。
百度搜索“Finalshell 官网”,第一个就是;进入后,点击下载,如下图。
![](https://static001.geekbang.org/infoq/76/76fceb53c0b7354b15df324875441feb.png)
保存在本地,下载安装完成后打开主界面。
![](https://static001.geekbang.org/infoq/99/998a6289688583b29401ac22def5b688.png)
Finalshell 常用快捷键如下:
终端:
alt :命令历史
双击 ctrl :切换到命令输入框
命令输入框:
alt :命令历史
tab :补全
双击 ctrl :切换到终端
列表窗口:
backspace :上一级目录
alt/tab/esc :关闭窗口
上下箭头:选择行
2、 阿里云服务器远程登录
打开阿里云云服务器控制台,进入详情页。
![](https://static001.geekbang.org/infoq/5c/5c8850245ecc9d97f5d43ad46de6222d.png)
点击进入详情页,复制公网 IP 地址。
![](https://static001.geekbang.org/infoq/b7/b770bc4748274b3354b8b8b1d07f9a45.png)
打开 Finalshell
![](https://static001.geekbang.org/infoq/c4/c46c18e38fcd820a826b725b52dfdb6b.png)
点击文件夹图标。
![](https://static001.geekbang.org/infoq/8d/8de2e7ed73a4c82e6cf357816ceeaf79.png)
![](https://static001.geekbang.org/infoq/ca/ca5e97510398be6b51ca43a4c49f5495.png)
如上图,点击连接后,选择 SSH 连接。
![](https://static001.geekbang.org/infoq/bd/bd23bf615a7b35e0e8f3db7482065d18.png)
下图中的参数说明如下:
名称:自定义
主机:阿里云服务器的 Ip 地址
用户名:阿里云服务器的登录的用户名称
![](https://static001.geekbang.org/infoq/a5/a5e1c9d45baef98eecbebfb1f6e90a27.png)
点击确认后双击。
![](https://static001.geekbang.org/infoq/99/9961a8b0a5885395f280fa9aaa69cab2.png)
登录成功就可以进行命令控制了,还可以进行编辑文件和上传下载文件;左侧可以查看内存信息。
![](https://static001.geekbang.org/infoq/d1/d1d28bc7de775a76e560f487e86bc403.png)
3 、部署软件环境
本次教程以 centos 为例
在控制台输入以下命令,安装 java:
检查 java 版本:
如果输出以下类似内容即代表成功。
![](https://static001.geekbang.org/infoq/88/88969c0ae36c0a2ef2873afcf3ef9ef7.png)
创建新的系统用户,以用户名 halo 为例(名字可自定义)
授予 halo 管理员权限:
为 halo 用户创建密码:
登录 halo 账号:
创建存放运行包的目录,这里以 ~/app 为例
下载运行包:
创建工作目录:
下载示例配置文件到工作目录:
运行博客:
halo 博客默认用户名为:admin
默认密码:123456
浏览器中打开“http://ip: 端口号” ,即可看到安装引导界面。
Halo 的配置文件名为 application.yaml,其必须位于工作目录 ~/.halo 下;Halo 会读取该目录下的配置文件进行加载;此次设置的登录端口号为 1234。
4 、halo 博客网站信息配置
![](https://static001.geekbang.org/infoq/cf/cf8cc3d14a848334640e0b289f93ded2.png)
填写基本信息,点击安装。
![](https://static001.geekbang.org/infoq/a7/a75b189c9ee1025b6d75aeafc7dab5e8.png)
输入用户名及密码,进行登录。
![](https://static001.geekbang.org/infoq/34/34ad2e7a5a3bba80c1e8d14aa824e425.png)
登录成功后可以看到 halo 的博客后台基本信息。
![](https://static001.geekbang.org/infoq/8b/8b1c69f28e1b56d4730f7f00d71b62c8.png)
我们再看一下博客主页,打开网址:http://ip:端口/
(ip 即上面提到的公网 IP,端口号是单独设置的数字)
![](https://static001.geekbang.org/infoq/c8/c8342a7b6e39032a5e3f119f54839985.png)
可以看到页面非常简单,但是已经可以证明我们安装成。下面我们进入后台对博客进行一下美化,并测试发表文章功能。
![](https://static001.geekbang.org/infoq/12/12d7655fca95d2d5d8527e15abd574d2.png)
主题官网:https://halo.run/themes.html
![](https://static001.geekbang.org/infoq/d3/d36e78c649899e519f0f2b77c4e5eb9f.png)
在官网可以看到很多主题。
![](https://static001.geekbang.org/infoq/cd/cd9ec1becb7659f8581a51f7b91289eb.png)
选择喜欢的主题将压缩包下载到本地,上传到博客后台。
![](https://static001.geekbang.org/infoq/8b/8b76fcabaf11148661bbc11204b7d418.png)
点击启用,进行配置,设置基本信息。
![](https://static001.geekbang.org/infoq/e6/e6142396cc53602496921226304282f8.png)
![](https://static001.geekbang.org/infoq/93/93f1db66108ad61e203ca2724e129877.png)
设置好后回到博客首页。
![](https://static001.geekbang.org/infoq/ed/edb30fc4565f6b59491510e411d423ba.png)
可以看到文章已经美化了很多。下面进行文章编辑测试,回到博客后台控制台仪表盘。
![](https://static001.geekbang.org/infoq/71/71826287e6d4380c8a9718e60b68880e.png)
文章编辑采用经典的 markdown 格式,可以进行实时预览。
![](https://static001.geekbang.org/infoq/f0/f013e97e9208cdd25945d85f31e62652.png)
进行基本信息设置完善,发布文章。
![](https://static001.geekbang.org/infoq/46/466bd10cf55e3593bfbc54a8cdb8ef7b.png)
查看文章如下图所示。
![](https://static001.geekbang.org/infoq/62/62e9abc59a9a34207768d311658451a0.png)
可以看到非常简约美观,当然 halo 博客也支持导入导出博客,方便文章迁移。
![](https://static001.geekbang.org/infoq/ee/ee614e8725aede88fb99a5f20cee147d.png)
还可以自定义界面。
![](https://static001.geekbang.org/infoq/d0/d055e4b4123cbe41853ffd19b9b3cd7c.png)
5、绑定阿里云 OSS 对象存储
在目前环境下,我们博客的文件存储都是放在服务器主机的内存中,当我们长久使用服务器时,内存就会不够用,我们可以使用阿里云的对象存储,将文件单独存储,同时可以减小带宽压力,加快访问速度。
打开 halo 博客后台,进入附件设置。
![](https://static001.geekbang.org/infoq/7a/7ad41c35a6d4200ba46288112dc4de11.png)
选择存储位置为阿里云。
![](https://static001.geekbang.org/infoq/e3/e3fb691a72863658d449919f73558bb8.png)
https://oss.console.aliyun.com/overview
点击上面的网址,打开阿里云对象存储控制台,打开 bucket 列表。
![](https://static001.geekbang.org/infoq/47/474990257ed742e1761db2597b643d99.png)
点击查看详情。
![](https://static001.geekbang.org/infoq/80/80d3c875584e1ba6e14898012942c0bd.png)
将读写权限设置为公有。
![](https://static001.geekbang.org/infoq/18/1802e609f110fc3695fac766a13d6d29.png)
将所需要的信息填写到博客后台对应位置。
![](https://static001.geekbang.org/infoq/93/93176b4dbe409387948959fa7490553a.png)
在控制台/阿里云账号界面,点击右上角头像,获取 Access key。
![](https://static001.geekbang.org/infoq/e8/e82d8dc4746be1ac1d432e5a15b0110e.png)
点击蓝色按钮,新建。
![](https://static001.geekbang.org/infoq/25/25233bcb1497050cb8f3c927d2576fc8.png)
创建成功后进行复制。
![](https://static001.geekbang.org/infoq/ba/bad59c22f24d02779293cad76baa1fe3.png)
![](https://static001.geekbang.org/infoq/1b/1b74f5c243c5bddb0876f1decdd16b38.png)
配置完成后进行图片上传检测,上传一张图片后去阿里云控制台进行查看。
![](https://static001.geekbang.org/infoq/58/58461d563a467584fd709eac4a16db5a.png)
在控制台可以看到我们上传的图片。
![](https://static001.geekbang.org/infoq/c2/c26cd04429df59ea75760ad33df6f923.png)
以后我们编辑博客的文件就会自动上传到对象存储 OSS,而不会保存在服务器内存硬盘中。
6 、设置 halo 自启动
登录 Finalshell 控制终端,退出 halo 账户,登录到 root 账户;下载 Halo 官方的 halo.service 模板:
修改 halo.service:
修改配置
• YOUR_JAR_PATH:Halo 运行包的绝对路径,例如 /home/halo/app/halo.jar,注意:此路径不支持 ~ 符号。
• USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除 User=USER。
![](https://static001.geekbang.org/infoq/0a/0a595f86efd12b1bc813493a5a85a0a4.png)
重新加载 systemd:
运行服务:
在系统启动时启动服务:
查看服务日志检查启动状态:
至此,阿里云 ECS 搭建 halo 博客部署完毕,后续大家可以按照自己喜好进行 DIY 部署。
03 可能遇到的问题 Q&A
1 、halo 访问 IP+端口无法访问
可能是服务没有打开相应端口;需要进入阿里云 ECS 控制台,添加安全组,打开相应端口。
![](https://static001.geekbang.org/infoq/1f/1fad4065e827e95d5090b63508b786cc.png)
![](https://static001.geekbang.org/infoq/9f/9f51b934595c0948e2aafa44a489bf85.png)
![](https://static001.geekbang.org/infoq/1f/1fedb859bbf64d7fd2ab09cd92797cf7.png)
2 、对象存储上传失败
在阿里云对象存储复制秘钥和密码到 halo 后台可能会有多余的空格,需要手动删掉,否则会导致图片上传失败。
![](https://static001.geekbang.org/infoq/ae/aee36cf1667c81cdeb4f2ec794d2d2ed.png)
3 、费用问题
除新用户的部分免费试用活动外,阿里云的域名,ECS 服务器,对象存储,这些都是需要收费的,大家需要根据自己的情况合理进行资源的选购,同样防止被其他人恶意攻击。
部署总结
本文通过大概 3000 字将 halo 博客环境部署在阿里云服务器,为大家详细的介绍了部署流程和服务器等资源的购买配置,希望大家可以通过此案例了解服务器相关资源配置流程,借助阿里云强大的云上资源发挥更大的价值。
微信公众号搜索“弹性计算百晓生”,关注百晓生,笑谈云计算。
版权声明: 本文为 InfoQ 作者【阿里云弹性计算】的原创文章。
原文链接:【http://xie.infoq.cn/article/fea7b253d86ecce346ab04904】。文章转载请联系作者。
评论