学习笔记 | 生活平淡又惊奇

使用腾讯云搭建Halo学习笔记网站

2020.10.18

1 服务器

1.1 购买服务器

此处使用腾讯云校园云服务器,2核4G
相关的信息可以去这个网站查看:https://cloud.tencent.com/act/campus?from=16841
image
购买的服务器是CentOS7.6-Docker20-Tud4(建议直接购买安装了Docker的,后续不用再安装;CenyOS的版本也不要太高,7点几左右就行)

1.2 服务器密码配置

image-1650511360907
在方框处重置一下密码,此处的密码在后面Tabby连接服务器的时候会用到

2 Tabby

2.1 安装Tabby

Tabby内置就有SFTP,传输文件会更方便,或者安装xshell也可以
tabby-1.0.174-setup的安装包:
链接:https://pan.baidu.com/s/1ClXavMWO4tFuwgPip3MY3A
提取码:lu7h

2.2 Tabby建立新的连接

建立连接的具体操作:
https://blog.csdn.net/m0_61541067/article/details/122882451
其中用到的密码就是1.2节中设置的密码

3 服务器各种环境配置

3.1 Docker

Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。
因为购买的腾讯云服务器已经安装了Docker,所以此处可以直接使用

image-1650511814808

3.2 Mysql

使用Docker来安装 MySQL

  • 拉取 MySQL 镜像
docker pull mysql:latest
  • 拉取后查看本地镜像已经存在mysql
docker images

image-1650512438692

  • 安装完成后,运行 mysql 容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
  • 查看是否安装成功
docker ps -a

image-1650512706930

  • 进入安装了mysql的容器,从上面一个截图可以看见容器的ID是55b095049ced,所以现在要进入ID为这个的容器
docker exec -it [container id] bash

image-1650518922203

  • 进入容器后登录mysql,同时建立一个新的数据库,叫做halodb,在之后的Halo配置中会用到
mysql -u root -p
create database halodb character set utf8mb4 collate utf8mb4_bin;
show database

image-1650519031522
image-1650519050165
image-1650519068832

  • Ctrl + d 退出并停止容器

3.3 Java

一定要注意java版本!安装的java版本不能太低,否则就会报错

image-1650519374676

根据报错的要求可以发现安装的jdk版本必须>55,所以安装了jdk56(java12)
image-1650519355020

  • 下载JDK
wget https://download.java.net/java/GA/jdk12/GPL/openjdk-12_linux-x64_bin.tar.gz
  • 先新建一个jdk文件夹
mkdir /usr/localk
  • 在文件夹下解压安装包
tar -zxf openjdk-12_linux-x64_bin.tar.gz -C /usr/localk
  • 配置环境变量:使用vim编辑查看,然后在文档里增加红框里的内容
vim ~/.bash_profile
PATH=$PATH:$HOME/bin
JAVA_HOME=/usr/localkk-12
CLASSPATH=$JAVA_HOMEb/
PATH=$PATH:$JAVA_HOME/bin
export PATH JAVA_HOME CLASSPATH

image-1650519750590

  • 验证是否安装成功
java -version

image-1650519805363

3.4 NGINX

nginx主要是用于后面的部署,先提前安装好

cd /usr/local/
mkdir nginx
cd nginx

image-1650520150543

  • 将Nginx安装包解压到/usr/localinx中
tar zxvf /rootinx-1.17.10.tar.gz -C ./
  • 解压后/usr/localinx ⽬录中会出现⼀个nginx-1.17.10 的⽬录

image-1650520293191

  • 安装依赖
yum -y install pcre-devel
yum -y install openssl openssl-devel
  • 进入nginx-1.17.10 的⽬录,编译安装
cd nginx-1.17.10
./configure
make && make install

image-1650520427813
image-1650520446380

  • 安装完成后,Nginx的可执⾏⽂件位置位于:/usr/localinx/sbininx
  • 启动nginx
/usr/local/nginx/sbin/nginx

image-1650520655959

4 安装Halo

  • 下载配置文件
curl -o ~/.halo/application.yaml --create-dirs https://dl.halo.run/config/application-template.yaml
  • 配置halo的运行端口
vim ~/.halo/application.yaml

此处使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉

image-1650541333366

  • 可以发现application.yaml中配置的端口为8090,因此在服务器控制器面板增加一个8090端口

image-1650541498721

  • 随便找一个文件夹下载Halo的jar包
wget https://halo.cary.tech/release/halo-1.5.2.jar -O halo-latest.jar
  • 启动Halo,在刚才下载jar包的文件夹运行如下的命令
java -jar halo-latest.jar

image-1650541858594

  • 此时使用服务器ip:8090(如192.168.200.2:8090)可以访问Halo界面,进行相应设置,完成安装向导后就算成功了

5 Halo安装部署Nginx

为了不输入端口号就可以访问(如192.168.200.2),需要使用nginx进行部署,部署前别忘了先启动nginx(在3.4节可以看见)

  • 启动nginx后,在网页打开IP对应的网站能够显示成功的界面
  • 现在修改配置文件让nginx代理8090端口对应的Halo网页
cd usr/local/nginx/conf
vim nginx.conf
upstream blog{
   server 127.0.0.1:8090;
}
proxy_pass http://blog;
proxy_set_header HOST $host;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;

image-1650542654012

修改成如下图所示的样子

image-1650542867456

  • 将配置文件重置
./nginx -s reload

至此不需要输入8090这个端口就可以访问Halo对应的网页

image-1650543023813

6 域名访问

外人不可能使用服务器的IP进行访问,所以我们需要购买一个域名,然后将域名与服务器IP进行绑定

image-1650543569281
image-1650543661790

  • 网站备案
    只要是有服务器的网站就必须要进行备案,在控制台根据提示进行操作即可,好像是域名购买三天后才可以进行备案,不备案就没法正确展示界面
    image-1650543804571
  • 部署域名证书,腾讯可以领取一个一年的免费证书
    https://cloud.tencent.com/product/ssl?from=dnspodqcloud
  • 完成备案并且领了证书后通过域名能够成功访问

7 后台运行Halo框架网页

nohup java -jar xxxxx.jar &

把jar文件换成对应的文件halo就能在后台运行了,就算关掉服务器目前开了还是能顺利的浏览网页的