关于
这篇博客将简单介绍如何将 Hexo 部署到服务器上(我使用的是腾讯云服务器),并且可以通过 git 对网站进行同步和更新。
参考链接:
目录
SSH 配置
为了使本地可以跟远程的 github 建立联系,需要在本地配置 SSH 密钥。
检查
SSH Key
是否已经存在:1
ls -al ~/.ssh
如果key存在,会有
id_rsa.pub
文件,可以直接将SSH key
复制。SSH 密钥路径:/Users/(your user name)/.ssh/id_rsa.pub
如果之前没有生成过
SSH Key
,可以先设置 git 用户名字和邮箱,再生成SSH Key
:1
2
3git config --global user.name 'your_name'
git config --global user.email 'your_email'
ssh-keygen -t rsa -C 'your_email'
服务器部署
部署 Hexo 选择的是腾讯云的云服务器,操作系统:CentOS 8.2。通过服务器的控制台可以远程连接到服务器终端。
git 配置
切换到root账号:
1 | sudo su root |
配置 git:
1 | # check whether git is installed: git --version |
然后找到以下内容的地方,并添加:
1 | ## Allow root to run any commands anywhere |
保存退出文件后,改回权限:
1 | chmod 400 /etc/sudoers |
设置 git 账户密码:
1 | sudo passwd git |
切换至 git 用户,创建 ~/.ssh
文件夹和 ~/.ssh/authorized_keys
文件,并赋予相应的权限:
1 | su git |
在文件里输入复制好的 SSH Key
, 然后保存退出。
接着,输入一下命令,赋予权限:
1 | chmod 600 /home/git/.ssh/authorized_keys |
在本地 git 终端中测试是否能远程连接并登录服务器端的 git:
1 | $ ssh -v git@your_server_ip |
创建仓库目录及相关配置
在服务器端创建项目目录,并赋予权限。注意:项目目录路径可以自定义,以下创建的项目目录在 /www/
文件夹下:
1 | mkdir /www/repo |
接下来创建一个文件作为网站根目录,并赋予权限:
1 | mkdir /www/hexo |
接下来创建一个空白的 git 仓库:
1 | cd /www/repo |
创建一个新的 git 钩子,用于自动部署:
1 | vim /www/repo/hexo.git/hooks/post-receive |
进入编辑模式,然后将下面那两行代码粘贴进去:
1 | #!/bin/bash |
保存退出,并修改权限:
1 | chown -R git:git /www/repo/hexo.git/hooks/post-receive |
到这里 git 仓库已经搭建完毕了。
配置 Nginx
用宝塔面板配置 Nginx,先安装宝塔面板:
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh |
然后在宝塔商城里安装免费版的 Nginx 即可。
建站
在宝塔面板添加站点,并将网站的根目录设置为我们的项目路径 /www/hexo/
:
重启宝塔:
1 | service bt restart |
修改 Hexo 配置 & 实现部署
在本地打开 Hexo 项目的 config.yml
文件,修改以下配置:
1 | deploy: |
在服务器终端:
1 | chown -R git:git /www/repo/ |
回到本地,部署 Hexo:
1 | hexo d -g |
到这里 Hexo 部署到服务器就完成了!