教你用开源项目在自己服务器搭建一个个人博客

原文地址:教你用开源项目在自己服务器搭建一个个人博客
本教程使用的开源项目为github上的:Halo 。仓库地址:https://github.com/halo-dev/halo

1.Halo简介

  • Halo 是一款现代化的个人独立博客系统,给习惯写博客的同学多一个选择。
  • Halo [ˈheɪloʊ],意为光环。当然,你也可以当成拼音读(哈喽)。
  • 轻快,简洁,功能强大,使用 Java 开发的博客系统。

2.Linux服务器安装

本教程以Centos7为例,配置并运行 Halo,其他 Linux 发行版大同小异。

2.1.写在前面

  • 具备一定的 Linux 基础。
  • 如需域名绑定,请先保证已经正确解析 IP,以及确认服务器是否需要备案。
  • 如需使用 IP 访问,请先确保 Halo 的运行端口已经打开,除非你使用 80 端口运行 Halo。
  • 如 3 所述,如果你使用了类似 宝塔面板 之类的 Linux 管理面板,可能还需要在面板里设置端口。
  • 不要想当然,请严格按照文档的流程操作。

2.2.服务器配置

更新软件包
请确保服务器的软件包已经是最新的。

sudo yum update -y

在这里插入图片描述

3.安装 Java 运行环境

若已经存在 Java 运行环境的可略过这一步。

3.1.安装 OpenJRE

# 安装 OpenJRE
sudo yum install java-1.8.0-openjdk -y

3.2.检测是否安装成功

java -version

在这里插入图片描述

当然,这只是其中一种比较简单的安装方式,你也可以用其他方式,并不是强制要求使用这种方式安装。

4.安装 Halo

4.1.下载配置文件

考虑到部分用户的需要,可能需要自定义比如端口等设置项,我们提供了公共的配置文件,并且该配置文件是完全独立于安装包的。当然,你也可以使用安装包内的默认配置文件,但是安装包内的配置文件是不可修改的。请注意:配置文件的路径为 ~/.halo/application.yaml

4.2.下载配置文件到 ~/.halo 目录

curl -o ~/.halo/application.yaml --create-dirs http://halo.ryanc.cc/config/application-template.yaml

在这里插入图片描述
修改配置文件
完成上一步操作,我们就可以自己配置 Halo 的运行端口,以及数据库相关的配置了。

4.3.使用 Vim 工具修改配置文件

vim ~/.halo/application.yaml

打开之后我们可以看到

server:
  port: 8090

  # Response data gzip.
  compression:
    enabled: false
spring:
  datasource:

    # H2 database configuration.
    driver-class-name: org.h2.Driver
    url: jdbc:h2:file:~/.halo/db/halo
    username: admin
    password: 123456

    # MySQL database configuration.
#    driver-class-name: com.mysql.cj.jdbc.Driver
#    url: jdbc:mysql://127.0.0.1:3306/halodb?characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai&allowPublicKeyRetrieval=true
#    username: root
#    password: 123456

  # H2 database console configuration.
  h2:
    console:
      settings:
        web-allow-others: false
      path: /h2-console
      enabled: false

halo:

  # Your admin client path is https://your-domain/{admin-path}
  admin-path: admin

  # memory or level
  cache: memory
  1. 如果需要自定义端口,修改 server 节点下的 port 即可。
  2. 默认使用的是 H2 Database 数据库,这是一种嵌入式的数据库,使用起来非常方便。需要注意的是,默认的用户名和密码为 admin123456,这个是自定义的,最好将其修改,并妥善保存。
  3. 如果需要使用 MySQL 数据库,需要将 H2 Database 的所有相关配置都注释掉,并取消 MySQL 的相关配置。另外,MySQL 的默认数据库名为 halodb,请自行配置 MySQL 并创建数据库,以及修改配置文件中的用户名和密码。
  4. h2 节点为 H2 Database 的控制台配置,默认是关闭的,如需使用请将 h2.console.settings.web-allow-othersh2.console.enabled 设置为 true。控制台地址即为 域名/h2-console。注意:非紧急情况,不建议开启该配置。
  5. server.compression.enabledGzip 功能配置,如有需要请设置为 true,需要注意的是,如果你使用 Nginx 或者 Caddy 进行反向代理的话,默认是有开启 Gzip 的,所以这里可以保持默认。
  6. halo.admin-path 为后台管理的根路径,默认为 admin,如果你害怕别人猜出来默认的 admin(就算猜出来,对方什么都做不了),请自行设置。仅支持一级,且前后不带 /
  7. halo.cache 为系统缓存形式的配置,可选 memorylevel,默认为 memory,将数据缓存到内存,使用该方式的话,重启应用会导致缓存清空。如果选择 level,则会将数据缓存到磁盘,重启不会清空缓存。如不知道如何选择,建议默认。

这里我就不进行修改了,有兴趣的可以改改。

注意
使用 MySQL 之前,必须要先新建一个 halodb 数据库,MySQL 版本需 5.7 以上。
create database halodb character set utf8mb4 collate utf8mb4_bin;

4.4.运行 Halo

Halo 的整个应用程序只有一个 Jar 包,且不包含用户的任何配置,它放在任何目录都是可行的。需要注意的是,Halo 的整个额外文件全部存放在 ~/.halo目录下,包括 application.yaml(用户配置文件),template/themes(主题目录),upload(附件上传目录),halo.db.mv(数据库文件)。一定要保证 ~/.halo的存在,你博客的所有资料可都存在里面。所以你完全不需要担心安装包的安危,它仅仅是个服务而已。

# 下载最新的 Halo 安装包,{{version}} 为版本号,不带 v
wget http://halo.ryanc.cc/release/halo-{{version}}.jar -O halo-latest.jar

# 或者
wget http://halo.ryanc.cc/release/halo-latest.jar -O halo-latest.jar

# 或者,{{version}} 为版本号,不带 v
wget https://halo.nova.moe/release/halo-{{version}}.jar -O halo-latest.jar

# 备用地址(建议海外服务器使用)
wget https://github.com/halo-dev/halo/releases/download/v1.2.0/halo-1.2.0.jar -O halo-latest.jar
# 启动测试
java -jar halo-latest.jar

如看到以下日志输出,则代表启动成功.

run.halo.app.listener.StartedListener    : Halo started at         http://127.0.0.1:8090
run.halo.app.listener.StartedListener    : Halo admin started at   http://127.0.0.1:8090/admin

在这里插入图片描述

4.5.进阶配置

上面我们已经完成了 Halo 的整个配置和安装过程,接下来我们对其进行更完善的配置,比如:需要开机自启?更简单的启动方式?

实现以上功能我们只需要新增一个配置文件即可,也就是使用 Systemd来完成这些工作。

# 下载 Halo 官方的 halo.service 模板
sudo curl -o /etc/systemd/system/halo.service --create-dirs http://halo.ryanc.cc/config/halo.service

下载完成之后,我们还需要对其进行修改。

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

打开之后我们可以看到

[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target

[Service]
Type=simple
ExecStart=/usr/bin/java -server -Xms256m -Xmx256m -jar YOUR_JAR_PATH
ExecStop=/bin/kill -s QUIT $MAINPID
Restart=always
StandOutput=syslog

StandError=inherit

[Install]
WantedBy=multi-user.target

参数:

  • -Xms256m:为 JVM 启动时分配的内存,请按照服务器的内存做适当调整,512 M 内存的服务器推荐设置为 128,1G 内存的服务器推荐设置为 256,默认为 256。
  • -Xmx256m:为 JVM 运行过程中分配的最大内存,配置同上。
  • YOUR_JAR_PATH:Halo 安装包的绝对路径,例如 /www/wwwroot/halo-latest.jar。

提示

  • 如果你不是按照上面的方法安装的 JDK,请确保/usr/bin/java是正确无误的。
  • systemd 中的所有路径均要写为绝对路径,另外,~systemd 中也是无法被识别的,所以你不能写成类似 ~/halo-latest.jar 这种路径。
  • 如何检验是否修改正确:把 ExecStart中的命令拿出来执行一遍。

在这里插入图片描述

# 修改 service 文件之后需要刷新 Systemd
sudo systemctl daemon-reload
# 使 Halo 开机自启
sudo systemctl enable halo
# 启动 Halo
sudo service halo start
# 重启 Halo
sudo service halo restart
# 停止 Halo
sudo service halo stop
# 查看 Halo 的运行状态
sudo service halo status

在这里插入图片描述

以上内容同项目文档,原文档地址:在 Linux 服务器部署 Halo

4.6.进入Halo

输入以下网址进入:

http://ip地址:8090/ #这里的端口使用的是默认的

第一次进入可以看到下面的界面
在这里插入图片描述
填好信息后点击安装即可
在这里插入图片描述
安装成功后登录
在这里插入图片描述

4.7.安装成功

在这里插入图片描述
网站主页的默认主题是这种,可以修改。
在这里插入图片描述

5.修改博客主题

主题仓库地址:https://halo.run/s/themes

5.1.主题仓库

在这里插入图片描述

5.2.选择主题

选择一个你喜欢的点击详情。接着找到主题Github地址,点击进入
在这里插入图片描述
接着复制主题地址
在这里插入图片描述

5.3.修改主题

在网站后台中进入主题界面,界面右下角有添加主题按钮,点击后,选择安装主题
在这里插入图片描述
输入刚才复制的地址,点击下载
在这里插入图片描述
如果不能下载成功,可以手动下载下来,然后使用本地上传。成功后点击启用即可。
在这里插入图片描述

5.4.设置主题

点击主题的设置可以修改主题的一些配置。
在这里插入图片描述
设置主题后网站主页如下:
在这里插入图片描述
主题有很多配置大家可以参照文档多试试。

6.最后

个人博客地址:小张技术博客

发布了59 篇原创文章 · 获赞 13 · 访问量 2万+

猜你喜欢

转载自blog.csdn.net/qq_41941875/article/details/104233507