halo建站教程
一、服务器购置
本站于2023年4月20日使用halo开源工具搭建,最新版为halo2.4,以下为服务器配置和搭建过程:
服务器:腾讯云 新加坡ip
CPU: 2核 内存: 2GB
系统镜像:CentOS 7.6 64bit
应用软件:宝塔面板(安装宝塔后,要从服务器安全组/防火墙开放对应端口,否则打不开宝塔后台)
运行环境:Nginx 1.22.1
二、宝塔安装Docker管理器并搭建halo容器网站程序
宝塔面板->软件商店->Docker管理器3.9.2->设置->镜像管理->获取镜像->官方库->halohub/halo:2.4->获取并等待完成
服务器终端运行以下命令:(镜像拉取完成可以重复使用,每次部署halo出错,可以先从容器删除halo,使用下面命令重新安装)
mkdir ~/.halo2 && cd ~/.halo2
注释:此命令在root目录下创建.halo2目录并进入.halo2目录,.halo2目录为halo工作目录,包含所有的halo网站数据文件
docker run \
-it -d \
--name halo \
-p 8090:8090 \
-v ~/.halo2:/root/.halo2 \
halohub/halo:2.4 \
--halo.external-url=http://localhost:8090/ \
--halo.security.initializer.superadminusername=admin \
--halo.security.initializer.superadminpassword=P@88w0rd
代码注释:
这是一个在 Docker 中启动 Halo 博客系统的命令,具体参数及其含义如下:
docker run:运行 Docker 容器的命令。
-it:开启输入功能并连接伪终端。
-d:让容器在后台运行,并打印出容器的 ID 号。
--name halo:为运行的容器命名为 halo。
-p 8090:8090:将主机的 8090 端口映射到容器的 8090 端口,使得在主机上可以通过 http://主机IP地址:8090 访问 Halo 博客系统。
-v ~/.halo2:/root/.halo2:映射主机的 ~/.halo2目录到容器内的 /root/.halo2目录,并将该目录用于存储 Halo 博客系统的数据文件。通常,主机的.halo2目录存放着数据文件,而容器的.halo2目录是空白的,因为直接引用了主机.halo2目录的数据文件,除非主机找不到.halo2时,会存放到容器.halo2目录。
halohub/halo:2.4:Docker Hub 上 Halo 博客系统的镜像名称和版本号。
--halo.external-url=http://域名 设置 Halo 博客系统的外部访问URL,也可以是ip+端口,如果开启证书则用https。
halo.security.initializer.superadminusername 初始超级管理员用户名
halo.security.initializer.superadminpassword 初始超级管理员密码
总之,该命令利用 Docker 技术启动了一个 Halo 博客系统的容器,并将容器内的 8090 端口映射到主机的 8090 端口,使得用户可以通过主机的 IP 地址或域名和 8090 端口访问 Halo 博客系统。此外,该命令还指定了一个用于存储 Halo 数据文件的挂载目录,并设置了 Halo 博客系统的外部访问 URL。
8090端口可以自定义,一般不做修改,宝塔和腾讯云要开放端口。
这里是直接用Docker部署了,没有用Docker Compose,所以没有官网说的配置文件,只有容器的启动参数config.v2.json文件如下:
我也遇到了相同问题,版本2.3.0,docker部署,我的解决方案:
关闭所有docker容器并停掉docker进程,我是直接 systemctl stop docker
修改docker配置文件 vim /var/lib/containers/容器id/config.v2.json
找到http://localhost:8090处修改为自己网站域名地址并保存
重启docker进程和重启容器即可(如果没有第一步会修改失败)
三、设置反代理
安装Nginx后,建立一个网站,正常配置域名。找到反向代理,设置如图,其中目标URL是容器ip和容器端口。
四、运行检查
通过 http(s)://域名 可以访问到部署的Halo博客前台,这时候还没初始化。
通过 http(s)://域名/console/ 可以访问到部署的Halo博客后台,第一次登录进行初始化,前台页面才会更新。管理账号和密码可以点击Docker管理器->容器列表 ,点击日志,搜索找到初始账密并复制。
五、整站备份与迁移
直接复制root/.halo2目录,网站所有的数据文件都在目录里面,包括网站源码、数据库、主题、插件、上传的文件等。
迁移或恢复前,把.halo2目录放到root目录下,类似第一步创建该目录,这里不过是直接把目录和文件都挪过来了。
然后改好docker run重新创建容器即可,容器会自动调用.halo2目录下的数据文件。这里要注意的是,登录后台使用的用户名和密码还是之前的,不管你有没新设置,因为备份过来的.halo2目录里面的数据库也带过来了。
当然,反向代理别忘了设置。
六、开启宝塔自动备份
宝塔面板->计划任务->任务类型选择备份目录->选择执行周期->选择要备份的目录和最高份数->选择是否接受备份通知和方式->添加任务
评论区