阿里云部署halo


给一个试用链接:点我~ 点我~

可以在这里看看主题:对对对,就是这~

1.购买域名、服务器

我这边讲的是阿里云的,如果考虑腾讯云或其他可以网上找找,基本都一样的

域名

域名不是必须,但是,如果想要对外分享,给别人看就需要了。没有域名,就是通过ip访问,这种还是避免的好。

阿里云域名注册:呦吼吼~

随便选咯,喜欢的就行。当然,后缀可能被抢走了,顺便一提,越受欢迎的域名越贵。

购买的时候可以选择购买的年限,同时选择域名的持有者。我们在这里选择个人就可以。另外一点, 购买的时候需要首先确保你的阿里云账号已经实名认证。后面会有一个ICP的备案,这个备案需要在实名认证三天之后才能送审。(所以备案就不急啦)

之后可以在域名控制台看到自己的域名。(不用急着关,留着,买完服务器还有用)

服务器

2024弹性计算会场_爆款云服务器每天低至0.27元_金秋云创季-阿里云权益中心

99/年喔,ecs服务器,镜像选择centOS 7.9 64位

其他默认,

之后先重置实例密码

云服务器管理控制台 这里选中你的服务器,点击更多,重置实例密码,然后改就行了

(root改不了)

之后点击远程连接就可以输入密码进入了。点击实例ID/名称,可以看到实力详情,下面有公网IP,记下来。

2.服务器绑定域名

回到域名控制台,点击你的域名后面的解析,添加记录主机记录分别www和@各填一次,记录值填写公网ip(两次都是),之后就是备案了,在备案完成之前,依旧只能通过公网ip访问,完成后就是可以通过域名访问了。

网站备案_ICP备案_备案迁移_App备案_小程序备案_备案-阿里云

按照要求填写,两个表要打印下来再写,然后视频需要露脸并显示到你的表上的域名字样。(不通过一次之后的教训),之后等短信,有一个验证,然后就是送审了。再之后还有给公安审查,那个到时候按着网站来填就行。这里备案就完成了。

3.安装Halo

进入远程连接的服务器。

安装halo有两种方式: 一种是基于ECS上的linux(CentOS),另外一种是基于docker

这边介绍第一种

输入代码:

1
sudo yum install java-11-openjdk -y

安装完成后验证一下

1
java -version

如果看到了以下类似内容,那就是成功了

1
2
3
openjdk version "11.0.10" 2021-01-19 LTS
OpenJDK Runtime Environment 18.9 (build 11.0.10+9-LTS)
OpenJDK 64-Bit Server VM 18.9 (build 11.0.10+9-LTS, mixed mode, sharing)

之后就开始安装Halo

首先创建账号操作

1
2
3
4
useradd -m halo        #新建一个账号
usermod -aG wheel halo #增加账号权限
passwd halo #给新账号设定密码
su - halo #切换到新账号

创建运行包的目录,我们命名为app

1
mkdir ~/app && cd ~/app

把halo的包下到~/app这个目录当中

1
wget https://dl.halo.run/release/halo-2.20.0.jar -O halo.jar

创建工作目录

1
mkdir ~/.halo2 && cd ~/.halo2

创建 Halo 配置文件

1
vim application.yaml

按i进入编辑模式

将以下内容复制到 application.yaml 中,根据下面的配置说明进行配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
server:
# 运行端口
port: 8090
spring:
# 数据库配置,支持 MySQL、MariaDB、PostgreSQL、H2 Database,具体配置方式可以参考下面的数据库配置
r2dbc:
url: r2dbc:h2:file:///${halo.work-dir}/db/halo-next?MODE=MySQL&DB_CLOSE_ON_EXIT=FALSE
username: admin
password: 123456
sql:
init:
mode: always
# 需要配合 r2dbc 的配置进行改动
platform: h2
halo:
caches:
page:
# 是否禁用页面缓存
disabled: true
# 工作目录位置
work-dir: ${user.home}/.halo2
# 外部访问地址
external-url: http://localhost:8090
# 附件映射配置,通常用于迁移场景
attachment:
resource-mappings:
- pathPattern: /upload/**
locations:
- migrate-from-1.x

配置完成之后,保存即可。(保存是先点击esc,然后输入:wq)

测试运行 Halo

1
cd ~/app && java -Dfile.encoding=UTF-8 -jar halo.jar --spring.config.additional-location=optional:file:$HOME/.halo2/

如果没有观察到异常日志,即可尝试访问 Halo

访问地址就是公网ip:运行端口号(上面复制的代码没改的话就是8090)

正常的,就会跳转到初始化页面。

4.部署为持续运行的服务

退出 halo 账户,登录到 root 账户

如果当前就是 root 账户,请略过此步骤。

1
exit

创建 halo.service 文件

1
vim /etc/systemd/system/halo.service

将以下内容复制到 halo.service 中,根据下面的配置说明进行配置。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
[Unit]
Description=Halo Service
Documentation=https://docs.halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
User=halo
ExecStart=/usr/bin/java -Dfile.encoding=UTF-8 -server -Xms256m -Xmx256m -jar /home/halo/app/halo.jar --spring.config.additional-location=optional:file:/home/halo/.halo2/
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target
  • USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除 User=USER。(教程这边是新建的halo,所以就改成了halo,第9行,已经修改)

请确保 /usr/bin/java 是正确无误的。建议将 ExecStart 中的命令复制出来运行一下,保证命令有效。

配置完成之后,保存即可。

重新加载 systemd

1
systemctl daemon-reload

运行服务

1
systemctl start halo

在系统启动时启动服务

1
systemctl enable halo

可以查看服务日志检查启动状态

1
journalctl -n 20 -u halo

成功

5.设置代理,使用域名访问服务

这里使用宝塔面板

首先登陆我们的ECS的机器,然后执行

1
yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && sh install.sh

安装之后,会显示对应的外网访问地址和用户名和密码。然后我们通过显示的外网访问地址,登陆到宝塔面板的web页面当中。但是,如果你之前没有宝塔的账号的话,你还需要注册一下才能登陆。注册完毕之后,再按照上面提到的地址登陆进去,就可以看到相应的管理页面。

进入我们的宝塔面板配置页面之后,点击左侧的安全,把一些端口打开。

放行端口8090(http)、39000-40000(FTP被动模式端口范围)、22(SSH远程服务)、8888(宝塔Linux面板默认端口)、80(网站默认接口)

安装nginx

软件商店搜索nginx

配置域名以及更新配置

点击 网站->添加站点

完成后站点修改,修改配置文件

首先在根目录下加

1
2
3
upstream halo {
server 127.0.0.1:8090;
}

其中的 8090Halo 的运行端口,请按需修改。

在 server 节点添加:

1
2
3
4
5
6
7
location / {
proxy_pass http://halo;
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;
}

修改 server 节点中的 location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$ 节点:

1
2
3
4
5
6
7
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://halo;
expires 30d;
error_log /dev/null;
access_log off;
}

修改 server 节点中的 location ~ .*\.(js|css)?$ 节点:

1
2
3
4
5
6
7
location ~ .*\.(js|css)?$
{
proxy_pass http://halo;
expires 12h;
error_log /dev/null;
access_log off;
}

配置完成后,就是等备案过了就可以域名访问了,这之前依旧是只能ip+8090进入,不过可以开始编辑内容了。

在ip:8090/console可以进入后台,建议备案完成前可以把两个给收藏一下,省的忘记。

然后你的博客就可以随便你折腾了

相关设置都可以看官方文档,很简单的。

至于备案完成后的备案号需要放到页面页脚,可以通过后台设置里有代码注入,页脚部分改一改就行了

示例:

1
2
<img src="图片地址"><a href="" target="_blank">公网安备号</a>
<a href="https://beian.miit.gov.cn/" target="_blank">XICP备xxxxx号</a>

文章作者: ZTGD
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 ZTGD !
评论
  目录