hexo部署到阿里云
因为最近工信部在查空壳备案,我有点懒,怕再次备案,正好因为之前的服务器是放在韩国的aws上,响应有点慢,正好趁着这个机会,迁回来。本来是不想写这个blog的,因为我本来就写了一篇部署到aws上的bloghexo部署到aws。但是无奈阿里云和aws还是有很多区别的。因此还是记录下来。
区别
登录服务器
这个什么新用户免费使用一年的云服务器就不说了。在aws上登录服务器是不使用密码的,而是默认使用公私钥的。aws会给你一个私钥文件,然后通过:
ssh -i xxx.pem ec2-user@hsulei.com
这样我就可以免输入 密码就可以登录云服务器了,安全性比较高,相比asw而言,阿里云一开始还是使用密码登录,只有等登录了云服务器后,在root用户下面创建.ssh
文件,然后在.ssh
文件中创建authorized_keys
文件,然后把自己生成的公私钥中的公钥内容写到这个文件中,并且需要修改权限成0700
,我的公私钥是在mac上生成的,在mac和Ubuntu上能够直接使用登录云服务器。
ssh root@hsulei.com
能够这样登录,需要生成的公私钥文件分别为id_res.pub
和id_res
,并且这两个文件要存在于本地电脑用户的.ssh
文件。在window上就比较奇怪。我直接使用这两个公私钥不能直接登录我的阿里云服务器。依然要我输入密码。通过googl发现对于公私钥我需要赋予不同的权限 ,公钥的权限是0644
,私钥的权限是0600
,这样我就能在window上使用ssh
命令登录了。
用户权限
在阿里云上直接是root用户,而在aws上是ec2-user用户。这都是小问题。我重新跟着之前的那篇blog搭建云上环境,创建git用户,初始化git仓库,编写post-receive
hook文件 ,但是在使用sudo chmod 775 -R /var/www/hexo
的时候,出现git is not in the sudoers file
,通过切换到root用户后修改/etc/sudoers
,在修改之前需要赋予/etc/sudoers
文件0600
的权限,然root用户可以对其修改。然后在:
root ALL=(ALL) ALL
后面添加
git ALL=(ALL) ALL
这样就没有问题了。但是当我在本地运行hexo -d
命令后,上传失败,显示权限问题。顿时就懵逼了。因为当时已经凌晨了。想赶紧迁移完就去睡觉了,然后就想我直接在root用户下做操作就应该没有什么权限问题之类的吧。然后,就使用root用户重新操作了一遍。(这时我使用的私钥是没有密码的,因为不知道在hexo的配置中如何配置,没有密码也没有什么问题,反正没人会用我的云服务器)。直接使用hexo d
,chrome打开自己的网站,恩,可以看见内容了。就去休息了。但是就在后一天,因为要上传一个新的blog,在本地看输出发现这个blog的内容已经生成了。但是无论网页如何刷新,就是没有这个内容显示。又是一个懵逼。什么鬼。一直怀疑是否是git上传出了了问题,然后通过google搜到这篇文章阿里云VPS搭建自己的的Hexo博客,按照他写的post-receive
重新修改了之前的内容。再次hexo d
,刷新自己的网页,发现新的blog已经出现了。恩,到此就结束了。
一些说明
如果你也看见到了这篇文章。
- 千万不要学我直接使用root做git操作,还是创建git用户。在git用户中进行git操作。
- 我使用nginx,nginx中关于如何配置ssh可以看imququ的这盘文章:本博客 Nginx 配置之完整篇