授权声明:本篇文章授权活动官方亚马逊云科技文章转发、改写权,包括不限于在 Developer Centre, 知乎,自媒体平台,第三方开发者媒体等亚马逊云科技官方渠道
Bolo博客是一个基于Java的开源博客平台。它使用Apache Tomcat9服务器和Mysql数据库。该平台是完全免费的,前后台设计简洁,没有其他复杂功能的干扰。如果部署服务器的电脑能联网,作为个人博客使用非常合适。
文章目录
1. 亚马逊EC2云服务器和bolo博客介绍
亚马逊EC2云服务器在灵活性,可靠性,安全性,扩展性和功能性都具有明显的优势,性价比相对较高,对于初学者提供了一年的免费试用时长
关于如何购买亚马逊云服务器,我这里不再重复赘述,详细可以查看这篇文章:https://blog.csdn.net/qq_43475285/article/details/134256935
Bolo博客是一个基于Java的开源博客引擎,以简洁、易用和高效为特点。其优点包括:
- 简洁易用:Bolo博客的前后台设计都非常简洁,没有其他复杂功能的干扰,用户可以更加专注于写作和分享内容。同时,它的操作也非常简单,即使是没有技术背景的用户也能够轻松上手。
- 跨平台性:由于Bolo博客是基于Java的开源平台,因此具有很好的跨平台性,可以在各种操作系统上运行,这使得用户可以更加灵活地选择自己的服务器和操作系统。
- 可扩展性:Bolo博客支持通过添加插件来扩展功能,这使得用户可以根据自己的需求来定制自己的博客网站,增加所需的功能和特性。
- 安全性:Bolo博客具有较高的安全性,采用了多项安全措施来保护用户的数据和隐私,使得用户可以更加放心地使用和分享自己的内容。
- 自定义性:Bolo博客支持自定义模板和主题,用户可以根据自己的喜好和需求来定制自己的博客外观和风格,这使得每个用户的博客都具有独特的个性和风格。
2. 登录云服务器
2.1 EC2云服务器登录
登录到EC2控制台:https://ap-southeast-2.console.aws.amazon.com/console
在登录控制台后,一定要注意右上角的资源所在区域选择,不要选错,否则可能会导致网络不通。
这里我选择的资源区域为弗吉尼亚北部
选择登录进入EC2控制台
可以看到我们已经创建的EC2实例
点击查看详情
在这里我们可以查看此实例的详细信息,网卡,存储等主机基本信息,而且很全面
我们可以选择在右上角点击连接,直接连接
注意用户名为ec2-user
也可进行远程登录。
我选择的远程登录shell终端工具为finalshell
打开finalshell,选择新建—新建ssh连接
输入主机基本信息
这里要注意的是,登录的账号名称为ec2-user
选择使用公钥认证,并导入刚才下载的公钥
双击,登录主机
登录成功后需要设置root密码
[ec2-user@ip-172-31-89-160 ~]$ sudopasswd root
Changing password for user root.
New password:
Retype new password:
passwd: all authentication tokens updated successfully.
[ec2-user@ip-172-31-89-160 ~]$
然后登录root用户
登录配置完成
3. 应用部署
3.1 Docker安装
安装必要软件包
sudo yum install -y yum-utils device-mapper-persistent-data lvm2
- 添加Docker的yum仓库
需要添加docker的官方yum仓库,这样你才能下载并安装docker。可以使用下面的命令添加仓库:
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
- 安装docker-ce
sudo yum install -y docker-ce docker-ce-cli containerd
- 启动docker并设置开机自动启动
systemctl start docker
systemctl enable docker --now
3.2部署Mysql数据库
- 在docker hub拉取Mysql镜像,容器镜像为mysql:5.7。
[root@ip-172-31-30-217 ~]# docker pull mysql:5.7
- 创建挂载目录
mkdir-p /data/bolo/mysql
- 创建Mysql容器
[root@ip-172-31-30-217 ~]# docker run -d --name bolo-mysql --restart always -e MYSQL_ROOT_PASSWORD=bolo -e MYSQL_DATABASE=solo -e MYSQL_USER=bolo -e MYSQL_PASSWORD=bolo -p 3306:3306 -v /data/bolo/mysql:/var/lib/mysql mysql:5.7
- 检查Mysql容器状态
[root@ip-172-31-30-217 ~]# docker ps
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
25eeda1c8f4f mysql:5.7 "docker-entrypoint.s…" About a minute ago Up About a minute 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp bolo-mysql
- 设置Mysql用户权限
[root@ip-172-31-30-217 ~]# docker exec -it bolo-mysql /bin/bash
bash-4.2# mysql -uroot -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 3
Server version: 5.7.44 MySQL Community Server (GPL)
Copyright (c)2000, 2023, Oracle and/or its affiliates.
Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.
Type 'help;' or '\h'for help. Type '\c' to clear the current input statement.
mysql>
- 给bolo用户进行授权
mysql> GRANT ALL PRIVILEGES ON solo.* TO 'bolo'@'%' IDENTIFIED BY 'bolo';
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)
mysql>
3.3 构建Bolo容器镜像
- 下载Bolo源码
[root@ip-172-31-30-217 ~]# git clone https://github.com/adlered/bolo-solo
Cloning into 'bolo-solo'...
remote: Enumerating objects: 17180, done.
remote: Counting objects: 100% (2805/2805), done.
remote: Compressing objects: 100% (1114/1114), done.
remote: Total 17180(delta 1464), reused 2684(delta 1415), pack-reused 14375
Receiving objects: 100% (17180/17180), 119.59 MiB |20.96 MiB/s, done.
Resolving deltas: 100% (10125/10125), done.
- 构建镜像
# 进入Bolo项目的根目录,查看目录内容。[root@ip-172-31-30-217 ~]# cd bolo-solo/[root@ip-172-31-30-217 bolo-solo]# ls
bolo-solo.iml Dockerfile git gulpfile.js LICENSE manifest.json package.json package-lock.json pic pom.xml preview README.md src ssh yarn.lock
#再进入到Bolo项目的根目录,构建Docker镜像,需要耐心等待构建完成。[root@ip-172-31-30-217 bolo-solo]# docker build -t "bolo" .[+] Building 52.0s (14/14) FINISHED docker:default
=>[internal] load build definition from Dockerfile 0.0s
=>=> transferring dockerfile: 642B 0.0s
=>[internal] load .dockerignore 0.0s
=>=> transferring context: 2B 0.0s
=>[internal] load metadata for docker.io/library/openjdk:8-alpine 0.2s
=>[internal] load metadata for docker.io/library/maven:3.8.5-openjdk-8-slim 0.2s
=>[mvn_build 1/4] FROM docker.io/library/maven:3.8.5-openjdk-8-slim@sha256:43315490e027cee720ff726fc7aaad09f9f2fe3a2923b3ba876c7ce83848627b 0.0s
=>[internal] load build context 0.2s
=>=> transferring context: 143.57kB 0.2s
=>[stage-1 1/4] FROM docker.io/library/openjdk:8-alpine@sha256:94792824df2df33402f201713f932b58cb9de94a0cd524164a0f2283343547b3 0.0s
=> CACHED [stage-1 2/4] WORKDIR /opt/bolo/ 0.0s
=> CACHED [mvn_build 2/4] WORKDIR /opt/bolo/ 0.0s
=> CACHED [mvn_build 3/4] ADD . /tmp 0.0s
=>[mvn_build 4/4] RUN cd /tmp && mvn package -DskipTests-Pci&&mv target/bolo/* /opt/bolo/ &&cp-f /tmp/src/main/resources/docker/* /opt/bolo/W 47.0s
=>[stage-1 3/4] COPY --from=MVN_BUILD /opt/bolo/ /opt/bolo/ 0.6s
=>[stage-1 4/4] RUN apk add --no-cache ca-certificates tzdata 1.0s
=> exporting to image 1.7s
=>=> exporting layers 1.7s
=>=> writing image sha256:30e620718a1a73348c17bf55a639a237c18d27eb4fcdbad6cd40692c403322d6 0.0s
=>=> naming to docker.io/library/bolo
- 查看Bolo镜像
[root@ip-172-31-30-217 bolo-solo]# docker images
REPOSITORY TAG IMAGE ID CREATED SIZE
bolo latest 30e620718a1a 50 seconds ago 153MB
mysql 5.7 bdba757bc933 5 weeks ago 501MB
部署Bolo开源个人博客
- 创建Bolo容器
[root@ip-172-31-30-217 bolo-solo]# docker run -d -p 8280:8080 --env RUNTIME_DB="MYSQL" \>--name bolo \>--restart always \>--envJDBC_USERNAME="bolo"\>--envJDBC_PASSWORD="bolo"\>--envJDBC_DRIVER="com.mysql.cj.jdbc.Driver"\>--envJDBC_URL="jdbc:mysql://172.31.30.217:3306/solo?useUnicode=yes&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC"\> bolo --listen_port=8080\>--server_scheme=http --server_host=3.94.103.16
34dbb03c30f7e0238ccf4a6dbf45b31592535dcb1a3c089fb8a9b122971c0d95
- 查看容器状态
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
34dbb03c30f7 bolo "java -cp WEB-INF/li…"36 seconds ago Up 35 seconds 0.0.0.0:8280->8080/tcp, :::8280->8080/tcp bolo
25eeda1c8f4f mysql:5.7 "docker-entrypoint.s…"49 minutes ago Up 49 minutes 0.0.0.0:3306->3306/tcp, :::3306->3306/tcp, 33060/tcp bolo-mysql
[root@ip-172-31-30-217 bolo-solo]#
[root@ip-172-31-30-217 bolo-solo]# docker logs bolo[INFO 12-05 23:09:38 ari.HikariDataSource 110] HikariPool-1 - Starting...
[INFO 12-05 23:09:39 ari.HikariDataSource 123] HikariPool-1 - Start completed.
[INFO 12-05 23:09:39 .service.InitService 196] It's your first time setup Bolo, initialize tables in database [MYSQL][WARN 12-05 23:09:40 .service.InitService 166] Bolo has not been initialized, please open your browser to init Bolo
████████████████████████████████████████████████████████████████████████
█ █ █
█ ██████╗ ██████╗ ██╗ ██████╗ █ █
█ ██╔══██╗██╔═══██╗██║ ██╔═══██╗ █ Welcome to Bolo :) █
█ ██████╔╝██║ ██║██║ ██║ ██║ █ █
█ ██╔══██╗██║ ██║██║ ██║ ██║ █ github.com/adlered/bolo-solo █
█ ██████╔╝╚██████╔╝███████╗╚██████╔╝ █ Current Version: v2.6 Stable █
█ ╚═════╝ ╚═════╝ ╚══════╝ ╚═════╝ █ █
█ █ █
████✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩████
█ THANK YOU FOR YOUR CONTRIBUTION TO BOLO ! █
████✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩✩████
█ adlered (Author) █ https://github.com/adlered █
█ expoli (Contributor) █ https://github.com/expoli █
█ zeekling (Contributor) █ https://github.com/zeekling █
█ csfwff (Contributor) █ https://github.com/csfwff █
█ teahouse (Contributor) █ https://github.com/teahouse15 █
█ Gakkiyomi (Contributor) █ https://github.com/gakkiyomi █
████████████████████████████████████████████████████████████████████████
┌
├ HTTP Server Running On: http://3.94.103.16
├ JVM Memory: 178MB / 183MB
└
[WARN 12-05 23:09:42 olo.prop.MailService 201] Cannot load Mailbox Settings, please check.
[INFO 12-05 23:09:42 KanBanNiangProcessor 89] KanBanNiang downloading ...
[INFO 12-05 23:09:43 3log.solo.util.Solos 192] Welfare Lute Service has disabled.
KanBanNiang resource total size: 9.0 MB
00MB 01MB 02MB 03MB 04MB 05MB 06MB 07MB 08MB 09MB
▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉▉ OK
[INFO 12-05 23:09:53 KanBanNiangProcessor 124] Unpacking KanBanNiang ...
[INFO 12-05 23:09:53 KanBanNiangProcessor 129] KanBanNiang is ready.
4. 访问Bolo博客
4.1 关闭防火墙
systemctl stop firewalld
4.2 Bolo的初始化设置
访问地址:http://公网IP地址:8280/,如果无法访问,查看ufw防火墙是否关闭。
设置管理员账号和密码,点击“开始初始化”。
初始化完毕后,自动跳转到Bolo首页。
至此,基于亚马逊EC2云服务器安装Bolo开源博客配置完成
总结
此次文章主要介绍了亚马逊云服务器的优势,如何购买部署EC2服务器以及如何在EC2上部署开源博客系统Bolo。Bolo是一个可以进行大量自定义的开源博客。能够满足很多搭建博客需求的用户,后续还可以继续接入插件来拓展博客系统的功能
版权归原作者 炒香菇的书呆子 所有, 如有侵权,请联系我们删除。