在阿里服务器上利用宝塔面板+GIT搭建hexo博客
看网上大多数教程都要敲许多命令, 但是找到了一篇文章, 利用宝塔面板搭建hexo博客, 配合一点自己的理解, 最终终于搭建成功了.文中的一些解释性的话是按照自己的理解来写的, 可能有些错误, 但是步骤是对的.
参考文章: 腾讯云宝塔面板搭建hexo博客
一. 环境介绍
1. 服务器
介绍: 阿里学生云轻量型应用服务器
配置: 1核2G, 40GSSD, 5M带宽
系统: CentOS Linux 7.6.1810 (Core)
2. 服务器软件
(1) nginx-1.15(通过宝塔面板安装)
(2) git-1.8.3.1
3. 宝塔插件
- 宝塔SSH终端 1.0(可以用xshell等工具替代)
4. 域名
5. 本地需要安装git, 具体一些初始化配置可以看其他教程
6. 服务器防火墙设置
二. 服务器git配置
现在需要在服务器内创建一个git仓库, 本地git推送时需要推送到这里
第一步: 创建文件夹
- 通过宝塔面板文件模块在home文件夹下新建git,hexo这两个文件夹
- 当然, 可以通过命令行方式创建亦可
第二步: 创建git仓库
1
2
3
4
5
6[服务器命令]
cd .. //这里是因为默认执行目录是root,需要返回根目录
cd home
cd git
git init --bare hexoBlog.git第三步: 指定本地git推送到服务器的路径
进入/home/git/hexoBlog.git/hooks,然后新建一个文件:post-receive,不要后缀名。然后编辑它,加入如下两条代码1
2
git --work-tree=/home/hexo --git-dir=/home/git/hexoBlog.git checkout -f这里的目的是对于hexoBlog.git仓库, 指定本地git推送到该仓库时, 文件保存在/home/hexo目录下
第三步: 更改post-receive文件权限
1
2
3[服务器命令]
chmod +x /home/git/hexoBlog.git/hooks/post-receive
三. 配置Nginx!
主要修改nginx.conf文件, 指定网站路径, 以及服务器对应端口等
利用宝塔面板安装的nginx默认的nginx配置文件在根目录->www->serve->nginx->conf下,找到nginx.conf,编辑它,如图:
listen
监听端口, 如果网站需要http访问则需要设置为80, 如果需要https访问, 则需要设置为443(端口号具体看上面环境配置部分的截图)server_name
域名SSL证书配置(如果用Http访问就不用设置此项)
注意其中有些内容需要修改1
2
3
4
5
6
7ssl on;
ssl_certificate path_pem; //path_pem -> SSL证书.pem文件在服务器中的地址
ssl_certificate_key path_key; //path_key -> SSL证书.key文件在服务器中的地址
ssl_session_timeout 5m;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2; # 按照这个协议配置
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; # 按照这个套件配置
ssl_prefer_server_ciphers on;root
本地git推送的文件存放路径, 之前配置git时指定的路径为/home/hexo四. 将本地git的SSH公钥添加到服务器git
获取本地SSH公钥
方式1: 右键点击git gui here, 打开git gui here, 点击help, 再点击show SSH Key, 复制
方式2: win10下路径为C:/Users/[你的用户名]/.ssh/id_rsa.pub, pub就是public, 表示公钥将本地公钥放到服务器中
我这里路径为/root/.ssh/authorized_keys, 编辑authorized_key文件, 添加上面复制的公钥.
这里是使用宝塔面板终端, 使用vim修改该文件的. (宝塔的文件中好像显示不了隐藏文件夹, 只能通过命令行来敲啦)
PS: 如果少了这一步, 可能本地git推送到服务器会被服务器拒绝
五. 修改本地hexo站点的_config.yml文件
1 | deploy: |
六. 推送并重启nginx
本地hexo命令
1
2
3hexo clean //或hexo c
hexo generate //或hexo g
hexo deploy //或hexo d, 博主电脑这里必须输入hexo deploy才行, hexo d说没这个命令, 如果有知道原因的小伙伴不妨在评论区告知我一下(嘿嘿)重启nginx
1
2
3[服务器命令]
service nginx restart