线上博客预览地址:乐哉开讲 博客使用的是开源halo搭建
写在前面
- 具备一定的 Linux 基础。
- 具备一定的 Docker 使用基础。
- 如需使用 IP 访问,请先确保 Halo 的运行端口已经打开,除非你使用 80 端口运行 Halo。 服务器(虚拟机)配置要求
- CentOS 7.x
- 1G 以上内存
安装docker
- 卸载原有dokcer
yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-engine
- 安装yum工具
yum install -y yum-utils
- 添加docker仓库
yum-config-manager \
--add-repo \
https://download.docker.com/linux/centos/docker-ce.repo
- 添加aliyun docker仓库
yum-config-manager --enable docker-ce-nightly
yum-config-manager --enable docker-ce-test
yum-config-manager --disable docker-ce-nightly
yum-config-manager --add-repo http://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
- 安装docker-ce
yum install docker-ce docker-ce-cli containerd.io -y
- 启动docker
systemctl start docker
- 配置阿里云镜像加速,这里可以去阿里云创建自己的镜像加速链接,会快点。
mkdir -p /etc/docker
tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": ["https://tpsx5wfd.mirror.aliyuncs.com"]
}
EOF
systemctl daemon-reload
systemctl restart docker
- 运行docker 命令测试是否安装成功
docker -v
,注意,以上命令都需要逐行执行。出现下面结果,代表安装成功
如果想开机自启docker,可以继续执行命令systemctl enable docker
docker 环境已经安装完成,现在我们来安装mysql组件,最后再安装博客组件
安装mysql
- 下载镜像
docker pull mysql:5.7
- 创建容器并启动
docker run -p 3306:3306 --name mysql \
-v /mydata/mysql/log:/var/log/mysql \
-v /mydata/mysql/data:/var/lib/mysql \
-v /mydata/mysql/conf:/etc/mysql \
-e MYSQL_ROOT_PASSWORD=root \
-d mysql:5.7
参数说明
-p 容器端口映射到主机端口
-v 将文件挂载到主机
- 修改mysql配置文件
vim /mydata/mysql/conf/my.cnf
#复制以下内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection=utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
lower_case_table_names=1
- 重启容器
docker restart mysql
- 设置开机自启
docker update mysql --restart=always
安装halo
- 下载halo配置文件,halo是基于java写的,下面的配置文件,学习java的同学应该就比较熟悉了
# 下载配置文件到 ~/.halo 目录,路径最好保持一致,不然无法启动
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml
- 修改配置文件内容,设置数据库
vim ~/.halo/application.yaml
修改内容如下
server:
# 修改端口为80
port: 80
# Response data gzip.
compression:
enabled: false
spring:
datasource:
# 我们使用mysql作为数据存储,所以需要注释h2,
# 注释 start
# H2 database configuration.
#driver-class-name: org.h2.Driver
#url: jdbc:h2:file:~/.halo/db/halo
#username: admin
#password: 123456
# 注释 end
# MySQL database configuration.
# 开启mysql start
driver-class-name: com.mysql.cj.jdbc.Driver
# 修改mysql连接
url: jdbc:mysql://mysql/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
username: root
# 修改密码 root
password: root
# H2 database console configuration.
# 注释H2 start
#h2:
#console:
#settings:
#web-allow-others: false
#path: /h2-console
#enabled: false
# 注释H2 end
halo:
# Your admin client path is https://your-domain/{admin-path}
admin-path: admin
# memory or level
cache: memory
- 创建数据库 我们前面已经安装了mysql,我们现在进入到mysql容器
# 进入容器
docker exec -it mysql mysql -uroot -proot
# 创建数据库,数据库名称和库中保持一致
CREATE DATABASE `halodb` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci
- 下载halo镜像
docker pull ruibaby/halo
- 运行halo
docker run -it -d --name halo --link mysql:mysql -p 8090:8090 -v ~/.halo:/root/.halo ruibaby/halo
参数解释:
--link halo需要连接mysql,所以需要与mysql组件建立关联
- 查看运行中的容器
dockr ps
所有组件安装完毕,我们进入到halo组件,查看是否启动完成
docker logs halo
发现halo已经在8090端口启动完成 如果防火墙开启的话,需要执行以下命令开通端口访问
firewall-cmd --zone=public --add-port=8090/tcp --permanent
我们现在获取本机Ip,进行访问
ifconfig
我的IP是172.16.51.127
访问地址:http://172.16.51.127:8090/,如果看到如下界面则代表安装成功。
我们输入基本信息,点击下一步
我们已经来到后台,我们可以调整后台的布局,
好的,现在我们发表第一篇文章,文本编辑器支持markdown语法
大家看到这,会有疑问,为什么和我的博客怎么不一样呢,因为我用了博客主题,现在教大家如何更换主题
http://172.16.51.127:8090/admin,进入设置页面,
点击从本地上传主题,然后启用主题,我们再访问首页
到此,博客快速搭建已经完成了,后面会有专门的教程介绍关于如何使用halo,谢谢大家!!!主题安装包,大家可以关注我的微信公众号“乐哉开讲”领取本篇文档和主题包.
微信搜一搜【乐哉开讲】关注帅气的我,回复【干货】,将会有大量面试资料和架构师必看书籍等你挑选,包括java基础、java并发、微服务、中间件等更多资料等你来取哦。 书读的越多而不加思考,你就会觉得你知道得很多;而当你读书而思考得越多的时候,你就会越清楚地看到,你知道得很少。——伏尔泰