当前位置: 首页 > news >正文

如何快速搭建个人博客

说明:本文介绍如何使用Halo框架快速搭建个人博客,我用的是阿里云的云服务器,操作系统是CentOS 7.0。

安装Docker&DockerCompose

(1)Docker安装

Docker的安装参考,Docker安装&卸载;

(2)Docker-Compose安装

DockerCompose安装,参考官网地址:Docker Compose,GitHub地址:Docker Compose。

可以采用手动安装的方式,将docker-compose文件下载下来

在这里插入图片描述

上传到云服务器上的/usr/local/bin目录。

在这里插入图片描述

设置docker-compose文件权限

chmod +x /usr/local/bin/docker-compose

设置完之后,文件的颜色会发生改变,表示此文件为可执行文件;

在这里插入图片描述

可以敲下面的命令,查看版本号,验证一下

在这里插入图片描述

在这提供一下我使用的Docker-Compose文件,大家可以下载下来。Docker-Compose文件地址

启动

(1)安装MySQL

准备工作做好了,就可以搭建个人博客网站了。这里介绍的是Halo框架,该框架提供了Docker-Compose部署方式。

非常方便,不用敲一行代码

在这里插入图片描述

首先,使用Docker拉一个MySQL镜像,并运行;

# 拉取镜像
docker pull mysql# 运行MySQL容器,容器名为mysql[前],镜像名为mysql[后],root账户的密码为root
docker run --name mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 -d mysql

完成后,敲下面的命令,可以查看到正在运行的mysql容器,并且此时通过工具是可以连接到mysql的(云服务安全组、防火墙需要开放3306端口)

在这里插入图片描述

(2)创建数据库

连接到数据库后,创建一个数据库,取名为halo,后面的配置文件中指定使用此数据库。

在这里插入图片描述

(3)创建配置文件

这时候,敲halo官网提供的命令,在根目录root文件夹里创建一个文件夹;

mkdir ~/halo && cd ~/halo

进入到该文件夹,创建一个docker-compose.yml配置文件(首次进入是空的);

在这里插入图片描述

docker-compose.yml内容如下:

version: "3"services:halo:image: halohub/halo:2.11container_name: halorestart: on-failure:3network_mode: "host"volumes:- ./halo2:/root/.halo2command:- --spring.r2dbc.url=r2dbc:pool:mysql://数据库IP:3306/halo- --spring.r2dbc.username=数据库账号- --spring.r2dbc.password=数据库密码- --spring.sql.init.platform=mysql- --halo.external-url=http://139.224.11.83:8090/- --server.port=8090

(4)启动

这时候,就可以输入下面的命令,来启动个人博客;

docker-compose up -d

在这里插入图片描述

可以通过下面的命令,查看日志、停止项目;

# 查看日志
docker-compose logs -f# 停止项目
docker-compose down

在这里插入图片描述

废话少说,启动项目后,可以在浏览器中输入:http://IP:8090/console访问到自己的个人博客网站,完成初始化操作。

出现下面的界面,Congratulations!表示你的个人博客搭建完成了;

在这里插入图片描述

相关文章:

  • c++线程thread示例
  • qt5-入门
  • UE4 CustomDepthMobile流程小记
  • 业务逐字稿
  • 在探最大模定理
  • TR-069/TR-369设备管理
  • vue3 el-pagination 将组件中英文‘goto’ 修改 为 中文到‘第几’
  • Google Chrome 中出现 ERR_SSL_KEY_USAGE_INCOMPATIBLE 错误
  • yolov5 deepsort 行人/车辆(检测 +计数+跟踪+测距+测速)
  • 在数字化营销的大背景下,企业微信营销的挑战与应对策略
  • 【C++】wxWidgets编程的程序入口点
  • 桥接模式解析
  • 【vue】vue.config.js里面获取本机ip:
  • QML语法 | 导入语句(import)
  • WPF自定义控件,聚合器模式传递消息
  • [PHP内核探索]PHP中的哈希表
  • es6
  • ESLint简单操作
  • express如何解决request entity too large问题
  • HTTP中的ETag在移动客户端的应用
  • Idea+maven+scala构建包并在spark on yarn 运行
  • JavaScript DOM 10 - 滚动
  • JavaScript创建对象的四种方式
  • Kibana配置logstash,报表一体化
  • leetcode46 Permutation 排列组合
  • Linux下的乱码问题
  • nfs客户端进程变D,延伸linux的lock
  • nginx 配置多 域名 + 多 https
  • PAT A1017 优先队列
  • PHP的Ev教程三(Periodic watcher)
  • Quartz实现数据同步 | 从0开始构建SpringCloud微服务(3)
  • text-decoration与color属性
  • vuex 学习笔记 01
  • 关于Flux,Vuex,Redux的思考
  • 使用API自动生成工具优化前端工作流
  • 物联网链路协议
  • 学习笔记DL002:AI、机器学习、表示学习、深度学习,第一次大衰退
  • 一起来学SpringBoot | 第十篇:使用Spring Cache集成Redis
  • 责任链模式的两种实现
  • ​configparser --- 配置文件解析器​
  • ​批处理文件中的errorlevel用法
  • !! 2.对十份论文和报告中的关于OpenCV和Android NDK开发的总结
  • # 达梦数据库知识点
  • #我与Java虚拟机的故事#连载12:一本书带我深入Java领域
  • $L^p$ 调和函数恒为零
  • (1)安装hadoop之虚拟机准备(配置IP与主机名)
  • (LeetCode C++)盛最多水的容器
  • (Redis使用系列) Springboot 实现Redis消息的订阅与分布 四
  • (多级缓存)缓存同步
  • (二)JAVA使用POI操作excel
  • (翻译)Quartz官方教程——第一课:Quartz入门
  • (没学懂,待填坑)【动态规划】数位动态规划
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (原創) 如何刪除Windows Live Writer留在本機的文章? (Web) (Windows Live Writer)
  • (转)ObjectiveC 深浅拷贝学习