写一篇关于配置halo的坑——涉及服务器,域名,证书。(新手入门windows环境下)
简介:本文为新手所写,为后续新手避坑,大佬勿喷。
- 官网:https://halo.run
- 文档:https://docs.halo.run
- 社区:https://bbs.halo.run
- 主题仓库:https://halo.run/themes.html
- 开源地址:https://github.com/halo-dev/halo
一、安装与配置
(1) 前提工作
首先我们打开文档,把关于文档和写在前面先看了
-
本文使用的是(若与本文不同,可以自行百度相关知识)
- 阿里云服务器、域名。
- 服务器环境Linux
- 塔宝(不用也可看此文)。
- 自带H2的数据库和JDK11。
-
工作目录(来自官网文档 写在前面)
db
:存放 H2 Database 的物理文件,如果您使用 MySQL 数据库,那么不会存在这个目录templates/themes
:里面包含用户所下载的主题。static
:相当于网站的根目录。logs
:运行日志目录。upload
:附件目录。application.yaml
:配置文件。
-
服务器的选购和域名的申请,网上一大堆视频教程,这里做个简单推荐。
- 阿里云服务器ECS新手搭建网站视频教程(详细版)
- 从这里开始你就可以打开上述视频边看边操作。
- 服务器第一次购买的时候有极大的优惠 建议忍痛买久的。
- 关于服务器推荐购买能获取一部分利润此块可自行百度。(找人配合可再便宜)
- 如果经济充裕,建议提高带宽,如果只是个人测试1M即可。
- 域名的申请需要时间。注意一些域名可能不支持免费申请证书等。
-
关于证书的免费申请,上述视频中已经失效了,阿里云域名证书申请步骤如下
首先登陆阿里云,打开域名
点击你的域名,
开启ssl证书
选择中间的购买证书,切记别点快捷购买
配置对了之后会出现证书资源包,点击。 之后直接购买。接着相关操作后,等待证书申请成功。
等待过程中,可以进行验证,打开域名界面,打开域名列表点击相关域名,解析。
是否出现
这个是官网自己要弄的验证,申请成功后应可删除,如果没有自行添加
获取到官方提供的20个整数后,点击证书申请
我这是成功状态,没记错的话这里有一步 域名绑定相关配置,配置完后基本秒到。
由于我使用的是nginx反向代理,所以这里点击下载
Nginx,获取一个压缩包 解压出来,然后先放着 后续会用到;
(2)安装halo
-
我们这里使用官网文档流程(CentOS)
-
Linux教程
-
依赖检查的坑
- 安装完jdk11后,一定要版本检查,如果检查到jdk8版本的话,需要配置成jdk11
- 比较简单的暴力解决方法(删除所有jdk,重新下载jdk11)
-
输入rpm -qa|grep jdk 查看已安装的jdk
-
rpm -e `rpm -qa|grep jdk` 删除jdk
-
rpm -qa|grep jdk 再次查看
-
注释或删除环境变量(根据自己的情况)vi /etc/profile
#export JAVA_HOME=/usr/java/jdk1.6.0_20
#export CLASSPATH=.;$JAVA_HOME/lib/dt.jar;$JAVA_HOME/lib/tools.jar
#export PATH=$PATH;$JAVA_HOME/bin
-
source /etc/profile 加载环境变量
-
然后安装官网操作重新下载和检查
-
安装的坑
-
这里强烈推荐创建新的系统用户,然后一路操作
-
记得在阿里云服务器把端口8090打开不会操作的看视频。
-
端口占用的坑(这里提供两种解决思路)
-
那么到此,你可以访问halo并进行设置了,账号密码别忘了。
-
由于你的服务器正在跑 ,要么你用xshell 打开一个新的会话连接,要么你Ctrl+c暂停运行 ,如果你想以后自动运行该jar包的话。请进行下一步操作
-
-
作为服务运行的坑(这里如果会用插件挂服务的话可以自己配置)
-
修改配置的坑
1.如果有安装上述的创建新的系统用户步骤 请修改 User=halo
2.把YOUR_JAR_PATH删掉换成 /home/halo/app/halo.jar
-
-
(3)配置Nginx
- 官方的配置
建议不要在Nginx.conf里配置,如果你有下载塔宝(并配合了视频食用建议不要直接修改,选择下面方式)
这是配置模板
upstream halo {
server 127.0.0.1:8090;
}
server {
listen 80;
listen [::]:80;
server_name youdomain.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;
}
}
把youdomain.com改成你的域名,server对应端口号
官方提醒 注意:Nginx 默认的 client_max_body_size
配置大小为 1m,可能会导致你在 Halo 后台上传文件被 Nginx 限制,所以此示例配置文件加上了 client_max_body_size 1024m;
这行配置。当然,1024m 可根据你的需要自行修改
- 配置Nginx的坑,如果你安装了Nginx但不知道在哪配置可以使用一下命令
-
nginx -t
然后我们vim /www/server/nginx/conf/nginx.conf
拉到最下面来 找到include
-
我们进入改目录 cd /www/server/panel/vhost/nginx
使用命令
curl -o /www/server/panel/vhost/nginx/halo.conf --create-dirs https://dl.halo.run/config/nginx.conf
过一会就下载好模板了,如果下载失败再试一次 ,如果再失败 ,使用Linux命令自己创建,模板在上面,自己复制
然后按上述要求进行修改。
修改完成之后,输入命令
有宝塔的可以用宝塔重载
# 检查配置是否有误
sudo nginx -t
# 重载 Nginx 配置
sudo nginx -s reload
到此,http下的Nginx配置完成。记得阿里云服务器把80端口打开。
- ssl证书配置
配置模板
server {
listen 80;
# 将改为您自己的域名
server_name catsevenven.com;
# 将所有http请求通过rewrite重定向到https。
rewrite ^(.*)$ https://$host$1 permanent;
}
server {
listen 443 ssl;
server_name catsevenven.com;
client_max_body_size 1024m;
ssl_certificate /www/server/nginx/cert/5415606_catsevenven.com.pem;
ssl_certificate_key /www/server/nginx/cert/5415606_catsevenven.com.key;
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location ~ .*\.(js|css)?$
{
proxy_pass http://127.0.0.1:8090;
expires 12h;
error_log /dev/null;
access_log off;
}
location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
{
proxy_pass http://127.0.0.1:8090;
expires 30d;
error_log /dev/null;
access_log off;
}
location / {
proxy_pass http://127.0.0.1:8090/;
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;
}
}
目前写到此
Q.E.D.