瞎折腾系列(一)--搭建自己的Git服务器并部署Hexo站点
前言
以前自己的博客站点是托管在Github的,使用过Netlify,coding,但速度都不是很理想。也曾使用过Gitee(速度虽然不从,但绑定域名要付费99, 放弃 )。最近买了阿里云的学生机来玩,国内速度还不错,1核2G5Mbps。所以今天计划把自己原来托管在github的网站迁移到阿里云服务器。迁移过程还算顺利。
我迁移大体的思路是,继续用hexo部署。搭建自己的git服务器,然后用hexo部署到自己的git服务器。然后通过nginx挂载git仓库,实现全静态访问。速度可想而知。
开始操作
搭建Git服务器
安装git
|
|
创建仓库
先创建一个git
用户,用来运行git
服务:
|
|
- 在
home/git
的目录下,创建一个名为hexoBlog
的裸仓库(bare repo)。
|
|
上面已经创建的裸仓库没有工作区,因为服务器上的Git仓库纯粹是为了共享,所以不让用户直接登录到服务器上去改工作区,并且服务器上的Git仓库通常都以.git
结尾。然后,把owner改为git
用户
|
|
禁用shell登录:
出于安全考虑,第二步创建的git用户不允许登录shell,这可以通过编辑/etc/passwd
文件完成。找到类似下面的一行:
|
|
改为:
|
|
克隆远程仓库:
现在,可以通过git clone
命令克隆远程仓库了,在自己的电脑上运行:
|
|
出现上面信息,基本说明搭建完毕,剩下的推送就简单了。
创建Hooks钩子
创建hooks钩子的目的是把,git仓库里的代码拉到一个路径下,便于查看修改和以后的nginx挂载
在hooks下创建post-receive脚本,它将在仓库接收到push时执行。
|
|
写到这里,用户组对/home/hexoBlog路径只有读的权限,没有写的权限。上边的配置都没有什么问题,就这个权限折腾了一天,用户组默认的权限是没有写权限的,配置好不能上传代码,问题就在用户组的权限。 修改目录及其子文件的权限
|
|
之后push之后就可以在 /home/hexoBlog看到push的文件了
部署hexo网站
云服务器端配置 Nginx
安装 启动 测试Nginx
|
|
能够正常获取以下欢迎页面说明Nginx安装成功。
|
|
查看 Nginx 的默认配置的安装位置
nginx -t
修改Nginx的默认配置,其中 vim 后边就是刚才查到的安装位置(每个人可能都不一样)
|
|
重启 Nginx 服务
|
|
至此,服务器端配置就结束了。接下来,就剩下本地 hexo 的配置更改了。
修改 hexo 站点配置文件 git 相关设置
打开你本地的 hexo 博客所在文件,打开站点配置文件(不是主题配置文件),做以下修改。
|
|
在 hexo 目录下执行部署,试试看。
|
|
打开你的公网 IP,看是不是已经部署成功了。
参考文章
- 原文作者:devhg
- 原文链接:https://ihui.ink/post/other/build_git_server/
- 版权声明:本作品采用知识共享署名-非商业性使用-禁止演绎 4.0 国际许可协议进行许可,非商业转载请注明出处(作者,原文链接),商业转载请联系作者获得授权。