手把手教学使用Halo搭建自己的博客网站

news/2024/5/20 15:30:59/文章来源:https://blog.csdn.net/ourstronger/article/details/103772640

工作需要学习,学习需要积累。网上有很多好的博客系统。我们可以去"CSDN","博客园"等这种大厂提供的博客空间,也可以自己搭建高逼格的独立博客。例如,适合github的hexo,大众的wordpress,OneBlog,Tale等。对比了一波,我选择halo这款博客系统。对于我它有以下几个优点:

(1)java语言实现,适合java程序员。

(2)动态的主题切换(特别炫支持移动端,响应式页面)

(3)完善的后台管理功能操作方便。

(4)部署超级简单,五分钟完成搭建。

(5)站点迁移方便,复制文件一键迁移。

下面讲讲如何搭建Halo,在这之前,购买自己的云服务器,备案自己的域名。这是搭建自己站点,拉取流量的基础;我这里是阿里云,域名备案也直接在阿里云备案:

使用 Docker 部署 Halo

使用 Docker 部署 Halo 的指南,假设你已经安装Docker 并了解它的基本使用。本篇教程以 CentOS 7.x 为例,其他系统大同小异。

1. 环境要求

为了在使用过程中不出现意外的事故,给出下列推荐的配置 CentOS 7.x 1G 以上内存

2. 服务器配置,配置 Docker 运行环境

  • 请确保服务器的软件包已经是最新的。
sudo yum update -y
  • 启动 Docker 后台服务
sudo systemctl start docker

3. 安装 Halo

1. 自定义配置文件

考虑到部分用户的需要,可能需要自定义比如端口等设置项,我们提供了公共的配置文件,并且该配置文件是完全独立于安装包的。当然,你也可以使用安装包内的默认配置文件,但是安装包内的配置文件是不可修改的。请注意:配置文件的路径为 ~/.halo/application.yaml。

curl -o ~/.halo/application.yaml --create-dirs http://halo.ryanc.cc/config/application-template.yaml

2. 修改配置文件

完成上一步操作,我们就可以自己配置 Halo 的运行端口,以及数据库相关的配置了。

vim ~/.halo/application.yaml

打开之后我们可以看到:

H2 配置如下:

  port: 8090
spring:datasource:type: com.zaxxer.hikari.HikariDataSource# H2 Database 配置driver-class-name: org.h2.Driverurl: jdbc:h2:file:~/.halo/db/halousername: adminpassword: openadminh2:console:settings:web-allow-others: falsepath: /h2-consoleenabled: false

MySQL 配置如下:

  port: 8090
spring:datasource:# MySQL 配置driver-class-name: com.mysql.cj.jdbc.Driverurl: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghaiusername: rootpassword: openroot
  1. 如果需要自定义端口,修改 server 节点下的 port 即可。
  2. 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin 和 123456,这个是自定义的,最好将其修改,并妥善保存。
  3. 如果需要使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取消 MySQL 的相关配置。另外,MySQL 的默认数据库名为 halodb,请自行配置 MySQL 并创建数据库,以及修改配置文件中的用户名和密码。
  4. h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使用请将 h2.console.settings.web-allow-others 和 h2.console.enabled 设置为 true。控制台地址即为 域名/h2-console。注意:非紧急情况,不建议开启该配置。

3. 拉取最新 Halo 镜像

sudo docker pull ruibaby/halo

4. 创建容器并运行

docker run --name halo -d -p 8090:8090  -v ~/.halo:/root/.halo ruibaby/halo

完成以上操作即可通过 ip:端口 访问了。端口默认是8090可以在配置文件或者启动时添加参数修改。虽然可以访问,但是端口暴露很不安全,后续第5步是如何配置域名访问。

4.1 打开博客进行博客的初始化操作。初始化完成进入admin管理页面。

image.png

点击右上角头像位置最左边的按钮,跳转到博客首页。设置主题!

4.2 创建数据库,不需要创建表结构,初始化应用的时候自动生成。

重启服务,打开地址,我们再一次初始化博客。打开数据库,可以看到表和数据已经初始化好了: image.png

服务搭建完成,解释一下后台配置,特别是主题配置

4.3 菜单分为仪表盘,文章,页面,附件,评论,外观,用户,系统这几个,重点解释一下外观。外观菜单可以设置博客的主题显示效果。打开菜单如下:

4.4 如何修改主题打开编辑主题页面:

可以根据自己的喜好设置自己的页面效果,可以自定义友情链接,社交网点等。

5.配置域名访问

使用 Caddy 进行反向代理。Caddy 是一款使用 Go 语言开发的 Web 服务器。其配置更为简洁,并可以自动申请及配置 SSL 证书(这里推荐使用)。

5.1 安装 Caddy

# 安装 Caddy 软件包
yum install caddy -y

5.2 配置 Caddy

# 下载 Halo 官方的 Caddy 配置模板
curl -o /etc/caddy/conf.d/Caddyfile.conf --create-dirs http://halo.ryanc.cc/config/Caddyfile

5.3 下载完成之后,我们还需要对其进行修改。

# 使用 vim 编辑 Caddyfile
vim /etc/caddy/conf.d/Caddyfile.conf

5.4 打开之后我们可以看到

https://www.simple.com {gziptls xxxx@xxx.xxproxy / localhost:port {transparent}
}

(1)请把 https://www.simple.com 改为自己的域名。

(2)tls 后面的 xxxx@xxx.xx 改为自己的邮箱地址,这是用于自动申请 SSL 证书用的。需要注意的是,不需要你自己配置 SSL 证书,而且会自动帮你续签。

(3)localhost:port 请将 port 修改为 Halo 的运行端口,默认为 8090。

5.5 修改完成之后启动 Caddy 服务即可。

# 开启自启 Caddy 服务
systemctl enable caddy# 启动 Caddy
service caddy start# 停止运行 Caddy
service caddy stop# 重启 Caddy
service caddy restart# 查看 Caddy 运行状态
service caddy status

注意: 如果 Caddy 启动出现诸如 [/usr/lib/systemd/system/caddy.service:23] Unknown lvalue 'AmbientCapabilities' in section 'Service' 这样的问题,请使用 yum update -y 更新系统。然后再使用 service caddy restart 重启,已知 CentOS 7.3 会出现该问题。

6.进阶设置

多网址重定向到主网址,比如访问 simple.com 跳转到 www.simple.com 应该怎么做呢?

使用 vim 编辑 Caddyfile

vim /etc/caddy/conf.d/Caddyfile.conf

打开之后我们在原有的基础上添加以下配置:

https://simple.com {redir https://www.simple.com{url}
}

将 https://simple.com 和  https://www.simple.com修改为自己需要的网址就行了,比如我要求访问 ryanc.cc 跳转到www.ryanc.cc ,完整的配置如下:

http://ryanc.cc {redir https://www.ryanc.cc{url}
}https://www.ryanc.cc {gziptls i@ryanc.ccproxy / localhost:8090 {transparent}
}

最后我们(service caddy restart)重启 Caddy 即可。

到这里,关于 Caddy 反向代理的配置也就完成了,现在你可以访问一下自己的域名,并进行 Halo 的初始化了。

注意: 在设置了反向代理之后,请一定记得去 halo 的管理端设置一下正确的博客地址,否则会造成资源获取不成功。

参考: 

个人博客:https://www.itmengtao.cn

官网:https://docs.halo.run/install/docker

https://ailijie.top/archives/hello-halo

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_734479.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

https改为http访问_网站更改为https后,数据统计不到了

http协议网站更改为https后,很多数据统计不到了。是很多SEO和运营人员会遇到的比较严重的问题,数据渠道计入不准确,那很多的考核就没办继续。该怎么办呢?https协议对比http协议而言,针对于我们的网站来说会更加的安全。…

Hive(27):分析网站uvpv等多指标综合案例

一、实现功能 1.分析网站日志,获得日期,uv,pv,登录人数,游客人数,平均访问时长,二跳率,独立ip数等关键信息。 其中: 登录:userid有值,会员&…

(转)程序员实用工具网站

【原文地址:https://blog.csdn.net/m0_38106923/article/details/100130354】 版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 本文链接:https://blog.csdn.net/m0_3810…

Loadrunner12 - WebTours网站使用录制回放时错误(2)——Session自动关联问题

当你发现你录制回放完成webTours后loadrunner12提示你脚本通过,但实际webTours中并没有发生任何实际的变化时,那可能就是session关联的问题了。 首先,我们重新录制,录制完成后,LR自动扫描可能存在的关联,LR…

宝塔自动备份网站到FTP空间

上次分享了宝塔自动备份网站到阿里云oss中,但是阿里云的oss是要收存储费用的,而且我非常在意的一点就是这样会把阿里云的API密码明文存储在面板后台,感觉这样也不太好,就一直在想其他的自动备份方案,正好前几天腾讯云活…

经营10多年的科技网站月光博客每月可以赚多少钱?[图]

2019独角兽企业重金招聘Python工程师标准>>> 经营10多年的科技网站月光博客每月可以赚多少钱? 相信你也想知道这个问题吧,我反正是充满了好奇。月光博客是十多年前就已经崛起的一个优秀博客,主打科技主题,曾经引得很多…

JSP——实现简单的计数器(统计访问网站的次数)

1.index.jsp文件 <% page language"java" import"java.util.*" pageEncoding"UTF-8"%> <html> <body> <%! int i0; //成员变量 %> <% i; //Java程序片 %&g…

简洁精美的企业单页门户网站(纯静态模板)

为什么80%的码农都做不了架构师&#xff1f;>>> <!DOCTYPE html> <html lang"en" class"no-js"> <!-- BEGIN HEAD --> <head> <meta charset"utf-8"/> <title>钦州日之新科技有限公司</titl…

在官方网站获得JMeter工具的步骤

首先我们了解一下JMeter是什么&#xff0c;以下是百度百科对于JMeter的解释说明。 Apache JMeter是Apache组织开发的基于Java的压力测试工具。用于对软件做压力测试&#xff0c;它最初被设计用于Web应用测试&#xff0c;但后来扩展到其他测试领域。 它可以用于测试静态和动态资…

做SEO需要掌握哪些核心技术

每一个像我咨询SEO培训的学员都问同一个问题&#xff0c;做SEO需要掌握哪些技术&#xff0c;SEO分为专职SEO跟兼职SEO&#xff0c;无技术也能做SEO&#xff0c;我认为掌握更多的技术是提高SEO的基本。做SEO优化不像做数学加减法&#xff0c;更像是文章写作&#xff0c;没有固定…

nginx 1.18 没有sbin文件夹_提升网站安全性隐藏nginx信息

一般使用nginx的web网站&#xff0c;访问网站时&#xff0c;可以从请求头中看到使用了nginx以及nginx的版本号。暴露这些信息将给网站带来一定的风险&#xff0c;因此安装nginx时最好把这些信息隐藏。隐藏nginx 版本号与WEB服务器信息如果未安装nginx&#xff0c;先去官网下载压…

新手前端练手网站_影视后期新手大礼包

点击上方蓝色字关注我们~为什么很多人学习影视后期学不下去&#xff1f;为什么很多人学习影视后期不知道是为了什么&#xff1f;无论是工作需要&#xff0c;或者兴趣爱好&#xff0c;又或者转行设计。还在迷茫的你&#xff0c;请认真看完下面的视频&#xff0c;会对你有十分大的…

什么叫基于web的网站_什么叫响应式网站?响应式网站的好处

响应式网站又叫自适应网站(三站合一网站)是一项新技术&#xff0c;那么什么是响应式的网站呢&#xff1f;响应式web设计(responsive web design)的理念是&#xff1a;集中创建页面的图片排版大小&#xff0c;可以智能地根据用户行为以及使用的设备环境(系统平台、手机屏幕尺寸、…

如何在页面上加个日历_想知道网站是如何工作的么?

上网是大多数人的第二天性。我们每天搜寻无数个网站查询信息&#xff0c;但是你是否静下心来思考过什么是网站&#xff0c;它是如何工作的&#xff1f;为了回答这些问题(以及更多其他问题)&#xff0c;我们开始了一个新系列&#xff1a;我们将在这个月的每个星期都发布一篇新文…

wamp修改php,wampserver改变默认网站目录的办法

开发过php项目的都知道&#xff0c;大多数都会用到wampserver&#xff0c;接下来小编为大家分享下wampserver改变默认网站目录的方法。需要修改的文件有以下三个&#xff1a;apache2的配置文件 httpd.conf 和 Wampserver的 配置文件wampmanager.ini和wampmanager.tpl其中httpd.…

linux查看服务器网络延迟,查看实时网速 - 远程操作Linux网络设置_服务器应用_Linux公社-Linux系统门户网站...

工具一&#xff1a;slurm安装sudo apt-get install slurm (Ubuntu系统)查看网速命令slurm -i eth0 (etho为网卡名)工具二&#xff1a;nloadubuntu的安装可以使用apt进行&#xff0c;其他系统安装过程如下wget http://www.roland-riegel.de/nload/nload-0.7.2.tar.gztar zxvf …

zabbix免客户端监控网站URL

1.我们需要在zabbix服务器端(这台服务器需要能正常上网)同时安装zabbix-agent客户端&#xff0c;使其正常监控zabbix服务器 2.创建web监测 点击web监测 创建web监测 3.配置异常报警&#xff0c;在添加里找到类似的值和对应的刚才添加的网站&#xff0c;后面那个参数一般选择200…

搜索关键词分析——以个人博客网站为例

背景 我做了一个个人博客网站&#xff0c;希望能够记录自己的学习&#xff0c;工作和成长笔记。同时为更多有相同需求的人提供帮助和支持。那么用户应该怎么来找到我这个博客网站呢&#xff1f;通过什么关键词能够快速找到这个博客网站呢&#xff1f; 接下来本文就来探讨一下关…

大型网站技术架构(三)架构核心要素

2019独角兽企业重金招聘Python工程师标准>>> 所谓架构&#xff0c;一种通俗的说法就是“最高层次的规划&#xff0c;难以改变的决定”&#xff0c;这些规划和决定奠定了事物未来发展的方向和最终的蓝图。 而软件架构即“有关软件整体结构与组件的抽象描述&#xff0…

[转]Stimator:评估您的网站/博客的价值

转自&#xff1a;http://blog.bingo929.com/index.php 今天发现一个好看的网站&#xff0c;发现一篇有意思的文章“Stimator:评估您的网站/博客的价值”。试着测了一下自己的博克&#xff0c;居然值这么多美元&#xff0c;没想到。 试一试您的地址&#xff1a;Stimator