1 服务器
1.1 购买服务器
此处使用腾讯云校园云服务器,2核4G
相关的信息可以去这个网站查看:https://cloud.tencent.com/act/campus?from=16841
购买的服务器是CentOS7.6-Docker20-Tud4(建议直接购买安装了Docker的,后续不用再安装;CenyOS的版本也不要太高,7点几左右就行)
1.2 服务器密码配置
在方框处重置一下密码,此处的密码在后面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,所以此处可以直接使用
3.2 Mysql
使用Docker来安装 MySQL
- 拉取 MySQL 镜像
docker pull mysql:latest
- 拉取后查看本地镜像已经存在mysql
docker images
- 安装完成后,运行 mysql 容器
docker run -itd --name mysql-test -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 mysql
- 查看是否安装成功
docker ps -a
- 进入安装了mysql的容器,从上面一个截图可以看见容器的ID是55b095049ced,所以现在要进入ID为这个的容器
docker exec -it [container id] bash
- 进入容器后登录mysql,同时建立一个新的数据库,叫做halodb,在之后的Halo配置中会用到
mysql -u root -p
create database halodb character set utf8mb4 collate utf8mb4_bin;
show database
- Ctrl + d 退出并停止容器
3.3 Java
一定要注意java版本!安装的java版本不能太低,否则就会报错
根据报错的要求可以发现安装的jdk版本必须>55,所以安装了jdk56(java12)
- 下载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
- 验证是否安装成功
java -version
3.4 NGINX
nginx主要是用于后面的部署,先提前安装好
- 下载nginx-1.17.10.tar.gz安装包,并将其放在root ⽬录下,安装包可以在下面这个网站下载:
链接:https://pan.baidu.com/s/1kf5kBW0xRHAEApl6RZtskA
提取码:rcbx - 新建文件夹命名为nginx
cd /usr/local/
mkdir nginx
cd nginx
- 将Nginx安装包解压到/usr/localinx中
tar zxvf /rootinx-1.17.10.tar.gz -C ./
- 解压后/usr/localinx ⽬录中会出现⼀个nginx-1.17.10 的⽬录
- 安装依赖
yum -y install pcre-devel
yum -y install openssl openssl-devel
- 进入nginx-1.17.10 的⽬录,编译安装
cd nginx-1.17.10
./configure
make && make install
- 安装完成后,Nginx的可执⾏⽂件位置位于:/usr/localinx/sbininx
- 启动nginx
/usr/local/nginx/sbin/nginx
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 的所有相关配置都注释掉
- 可以发现application.yaml中配置的端口为8090,因此在服务器控制器面板增加一个8090端口
- 随便找一个文件夹下载Halo的jar包
wget https://halo.cary.tech/release/halo-1.5.2.jar -O halo-latest.jar
- 启动Halo,在刚才下载jar包的文件夹运行如下的命令
java -jar halo-latest.jar
- 此时使用服务器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;
修改成如下图所示的样子
- 将配置文件重置
./nginx -s reload
至此不需要输入8090这个端口就可以访问Halo对应的网页
6 域名访问
外人不可能使用服务器的IP进行访问,所以我们需要购买一个域名,然后将域名与服务器IP进行绑定
- 域名购买,还是在腾讯云购买了域名,地址如下:https://buy.cloud.tencent.com/domain
- 域名解析,把服务器IP和购买的域名绑定
- 网站备案
只要是有服务器的网站就必须要进行备案,在控制台根据提示进行操作即可,好像是域名购买三天后才可以进行备案,不备案就没法正确展示界面
- 部署域名证书,腾讯可以领取一个一年的免费证书
https://cloud.tencent.com/product/ssl?from=dnspodqcloud - 完成备案并且领了证书后通过域名能够成功访问
7 后台运行Halo框架网页
nohup java -jar xxxxx.jar &
把jar文件换成对应的文件halo就能在后台运行了,就算关掉服务器目前开了还是能顺利的浏览网页的