hexo部署到阿里云服务器

说明:这里其实是分为两个部分,第一个部分是将hexo生成的静态文件上传到服务器,第二个部分就是部署网站了(个人理解)

文件上传到服务器

创建git用户

1
adduser git

修改git用户密码

1
sudo passwd git

根据提示操作即可

设置权限

使用vim编辑/etc/sudoers(vim的使用方法很简单,不会可以百度)

1
vim /etc/sudoers

找到User privilege specification部分,添加如下内容:
1
git     ALL=(ALL:ALL) ALL

如下图:

切换至git用户

1
su git

这里需要输入git的用户密码

添加密钥

1
2
3
4
5
mkdir -p ~/.ssh
touch ~/.ssh/authorized_keys
chmod 600 ~/.ssh/authorzied_keys
chmod 700 ~/.ssh
vim ~/.ssh/authorized_keys #将ssh密钥粘贴进去

登录测试

在本地打开终端,以ssh的方式登录云服务器

1
ssh -v git@你的ip地址

创建git仓库

1
2
3
4
mkdir /www/git/ 
cd /www/git/
git init --bare blog.git #在/www/git下创建新仓库blog.git
chown git:git -R blog.git #给予git用户权限

blog.git/hooks 文件夹下创建一个 post-receive 钩子

1
2
cd blog.git/hooks
vim post-receive

post-receive 文件中输入以下代码
1
2
#!/bin/bash 
git --work-tree=/www/wwwroot/hexo --git-dir=/www/git/blog.git checkout -f

授予 post-receive 文件可执行权限
1
chmod +x /www/git/blog.git/hooks/post-receive

创建www/wwwroot/hexo目录,用于Nginx托管(**git用户下操作**
1
2
3
sudo mkdir -p /www/wwwroot/hexo
sudo chown -R $USER:$USER /www/wwwroot/hexo/ 设置目录所有权
sudo chmod -R 755 /www/wwwroot/hexo/

到这里,服务器上git就已经弄好了

Hexo配置

在hexo的_config.yml中设置:

1
2
3
4
deploy:
type: 'git'
repo: git@服务器ip:/www/git/blog.git
branch: master

最后三连就可以了hexo clean && hexo g -d

到这里,还只是将hexo的静态文件上传到服务器,下面我们进行下一步。

搭建网站

搭建网站比较简单

安装宝塔

注意:宝塔安装完后需要安装nginx,首次进入宝塔会有安装提示,根据提示安装即可。

添加网站

在宝塔界面直接添加网站即可,填写自己的域名,根目录选择服务器存放hexo静态文件的文件目录即可,如下图


整个过程踩的几个坑

网站部署完后域名无法访问

可能性:
1、运行目录选择错误。
解决方法:查看运行目录下是否有本地推送上来的文件
2、域名是否解析
域名要正常解析到自己的服务器
3、网站是否有SSL证书
博主这里就是遇到了这个问题,网站没有配置SSL证书,域名始终打不来,配置好证书后可以正常访问

文件无法推送

全部配置好在执行三连的时候可能会遇到本地文件无法推送的问题,可能是因为服务器上存放这些文件的文件夹权限问题,修改好权限即可。