写在前面
搭建个人博客不仅可以将学过的知识融会贯通更好的理解,还可以将自己的经验或者是踩过的坑传授给后来者,帮助他们更好的学习!Halo是在Github上开源的Java博客系统,我将用它从零开始在阿里云服务器上搭建个人博客。点击查看官方文档。
1.云服务器
我使用的是阿里云服务器,也可以使用其他云服务器,例如腾讯云等等。
2.域名
可以在万网查询并注册自己的域名。注:如果不想注册域名也可以使用IP进行访问。
3.系统环境
⑴. CentOS 服务器
⑵. JRE 运行环境
⑶. Nginx Http服务器
⑷. putty SSH连接软件
创建一个实例,并安装CentOS 7.4 64位 操作系统,复制公网IP。
输入账号root和密码,注:密码是不显示的,请不要惊慌,输入后回车即可。
1.依赖检查
目前运行 Halo 的最低依赖要求为 JRE 11,请务必确保在进行下面操作之前已经正确安装了 JRE。
sudo yum install java-11-openjdk -y
检查版本
java -version
如果输出以下类似内容即代表成功
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)
2.安装
创建一个名为 halo 的用户(名字可以随意)
useradd -m halo
给予 sudo 权限
usermod -aG wheel halo
为 halo 用户创建密码
passwd halo
登录到 halo 账户
su - halo
创建存放 运行包 的目录
mkdir ~/app && cd ~/app
下载运行包
wget https://dl.halo.run/release/halo-1.4.12.jar -O halo.jar
创建 工作目录
mkdir ~/.halo && cd ~/.halo
下载示例配置文件到 工作目录
wget https://dl.halo.run/config/application-template.yaml -O ./application.yaml
编辑配置文件,配置数据库或者端口等,注:如不需要可不进行配置,默认端口为8090。
vim application.yaml
测试运行 Halo
cd ~/app && java -jar halo.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
run.halo.app.listener.StartedListener : Halo has started successfully!
在浏览器打开 http://ip: 端口号 即可看到安装引导界面。
如测试启动正常,请继续看作为服务运行部分,第 8 步仅仅作为测试。当你关闭 ssh 连接之后,服务会停止。你可使用 CTRL+C 停止运行测试进程。
如果需要配置域名访问,建议先配置好反向代理以及域名解析再进行初始化。如果通过 http://ip: 端口号 的形式无法访问,请到服务器厂商后台将运行的端口号添加到安全组,如果服务器使用了 Linux 面板,请检查此 Linux 面板是否有还有安全组配置,需要同样将端口号添加到安全组。
点击手动添加,按照图示添加一条配置,开放8090端口。
退出 halo 账户,登录到 root 账户
exit
下载 Halo 官方的 halo.service 模板
wget https://dl.halo.run/config/halo.service -O /etc/systemd/system/halo.service
修改 halo.service
vim /etc/systemd/system/halo.service
修改配置
YOUR_JAR_PATH:Halo 运行包的绝对路径,例如 /home/halo/app/halo.jar,注意:此路径不支持 ~ 符号。
USER:运行 Halo 的系统用户,如果有按照上方教程创建新的用户来运行 Halo,修改为你创建的用户名称即可。反之请删除 User=USER。
[Unit]
Description=Halo Service
Documentation=https://halo.run
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=USER
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
请确保 /usr/bin/java 是正确无误的。建议将 ExecStart 中的命令复制出来运行一下,保证命令有效。
重新加载 systemd
systemctl daemon-reload
运行服务
systemctl start halo
在系统启动时启动服务
systemctl enable halo
您可以查看服务日志检查启动状态
journalctl -n 20 -u halo
进行到这一步就可以通过IP访问服务器并对Halo进行初始化设置。
这是我的博客IPhttp://8.130.25.248:8090
注:http://8.130.25.248:8090/admin 这是博客后台地址,要账号密码才能进后台哦ヾ(•ω•`)o
安装依赖包
//一键安装上面四个依赖
yum -y install gcc zlib zlib-devel pcre-devel openssl openssl-devel
下载并解压安装包
//创建一个文件夹
cd /usr/local
mkdir nginx
cd nginx
//下载tar包
wget http://nginx.org/download/nginx-1.13.7.tar.gz
tar -xvf nginx-1.13.7.tar.gz
安装nginx
//进入nginx目录
cd /usr/local/nginx
//进入目录
cd nginx-1.13.7
//执行命令
./configure
//执行make命令
make
//执行make install命令
make install
配置nginx.conf
# 打开配置文件
vi /usr/local/nginx/conf/nginx.conf
启动nginx
/usr/local/nginx/sbin/nginx -s reload
如果出现报错:nginx: [error] open() "/usr/local/nginx/logs/nginx.pid" failed
则运行: /usr/local/nginx/sbin/nginx -c /usr/local/nginx/conf/nginx.conf
再次启动即可!
查看nginx进程是否启动
ps -ef | grep nginx
若想使用外部主机连接上虚拟机访问端口192.168.131.2,需要关闭虚拟机的防火墙
centOS6及以前版本使用命令
systemctl stop iptables.service
centOS7关闭防火墙命令
systemctl stop firewalld.service
访问服务器ip查看,备注:由于我监听的仍是80端口,所以ip后面的端口号被省略。
修改配置文件
vi /usr/local/nginx/conf/nginx.conf
修改后
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name www.yourdomain.com;
client_max_body_size 1024m;
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;
}
}
Nginx 默认的 client_max_body_size 配置大小为 1m,可能会导致你在 Halo 后台上传文件被 Nginx 限制,所以此示例配置文件加上了 client_max_body_size 1024m; 这行配置。当然,1024m 可根据你的需要自行修改。
以上工作完成后,最后进行域名的解析,将域名指向IP,就可以通过域名访问IP了。在云解析DNS中点击域名。
再点击添加记录,按照图示填写即可。也可点击新手指导按照指导进行。
完成后需要进行实名认证,和ICP备案。
注:不进行备案,国内的Http服务器将无法使用,实名认证2~3天后,数据同步后才可以进行备案。
以上工作全部完成后,就可以通过域名访问我们的博客了。在Halo中我们还可以通过设置主题打造自己的个性博客。
当然,如果有能力还可以自己编写主题(づ ̄ 3 ̄)づ
到这里就完结撒花啦✿✿ヽ(°▽°)ノ✿
欢迎参观我的博客www.huanghaohao.top。