将博客部署到自己的服务器
本教程基于阿里云轻量应用服务器,系统为AliyunLinux
一、配置 Git
1、安装 git
用 Xshell
或其他工具连接到服务器,在命令框输入
1 | yum install git |
等待安装完成。
2、创建 git 账户
在命令框输入
1 | adduser git |
3、添加 git 账户权限
1 | chmod 740 /etc/sudoers |
按回车之后,进入编辑界面
先按i键进入编辑模式,然后找到如下内容
添加以下内容
1 | git ALL=(ALL) ALL |
然后按 “Esc
” 键,此时最底下的—INSERT—
消失,再输入 “:wq
”,即保存退出。
4、改回权限
1 | chmod 400 /etc/sudoers |
5、设置 git 密码
1 | sudo passwd git |
输入两次密码就设置成功了。注意,Linux
下输入密码是不显示****的,你直接输入,输完回车就行了。
6、切换至 git 用户,创建 ~/.ssh
文件夹和 ~/.ssh/authorized_keys
文件,并赋予相应的权限
1 | su git |
按”i”进入编辑模式,将我们在win10中生成的id_rsa.pub
文件中的公钥复制到authorized_keys
中,按”esc”,然后按”:wq”,保存退出。
接着,输入一下命令,赋予权限
1 | chmod 600 /home/git/.ssh/authorized_keys |
在本地Git终端中测试是否能免密登录git,在本地Git终端中输入以下命令,其中SERVER填写自己的云主机ip,执行输入yes后不用密码说明配置成功了。
1 | ssh -v git@你的服务器ip |
二、创建仓库目录及相关配置
1、创建目录
在var
目录下创建repo
作为Git仓库目录,返回服务端命令行切换到root
账户,然后输入:
1 | mkdir /var/repo |
赋予权限:
1 | chown -R git:git /var/repo |
接下来创建hexo
目录作为网站根目录,并赋予权限:
1 | mkdir /var/hexo |
接下来创建一个空白的git
仓库
1 | cd /var/repo |
创建一个新的Git
钩子,用于自动部署.
在 /var/repo/hexo.git
下,有一个自动生成的hooks
文件夹。我们需要在里边新建一个新的钩子文件 post-receive
。
1 | vim /var/repo/hexo.git/hooks/post-receive |
进入编辑模式,然后将下面那两行代码粘贴进去,保存退出。
1 | #!/bin/bash |
修改权限:
1 | chown -R git:git /var/repo/hexo.git/hooks/post-receive |
到这里Git
仓库已经搭建完毕了。
2、配置 Nginx
为了部署和维护,我们使用宝塔面板来一键部署Nginx
1 | yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh |
中途输入”y”回车等待一会就好了。在执行结果最后会出现地址,用户名,密码等。
复制这个地址打开,输入账号密码即可进入宝塔面板。
注意:这里也有可能你进不去面板页面,是因为你的服务器没有开8888
这个端口(具体看你的宝塔面板连接的端口),去阿里云轻量服务器控制台中的“安全”->“防火墙”,右上角的”添加规则”,添加相应的端口即可。看下面的第二张图。
另外如果忘记了宝塔用户名密码,可以去这里查看解决方案,链接忘记Linux 3.X/4.x/5.x/6.x 宝塔面板密码的解决方案
进入面板之后,会提示叫你修改端口,点击”立即修改”,可以看到”面板端口”这时候是8888
,自己选一个值,然后先去服务器防火墙上开放这个端口,跟刚刚的”添加规则”操作一样。
再回到宝塔面板页面将”面板端口”的值修改成你刚刚开放的端口值。
然后需要用新端口,重新进入宝塔面板,就是将原有的链接”:”后面的值改成你的端口即可。
在宝塔面板,进入软件商店,输入”Nginx
”,然后搜索,安装免费的那个。
等待部署完成。
部署完成之后,点击网站,添加站点,填写你的域名,没有的话写你的服务器ip地址。其他的不要改。
填写完之后提交,然后点击”设置”
点击”配置文件”
1 | server |
保存,然后选择“设置”-“网站目录”,将网站目录修改成以下,保存。
1 | /var/hexo |
回到服务器终端,重启宝塔服务,使之生效。
1 | service bt restart |
3、修改 hexo 配置
进入本地电脑hexo
博客的根目录,编辑站点配置文件 _config.yml,找到deploy,修改成以下
1 | deploy: |
最后在本地终端中,输入以下命令部署
1 | hexo clean |
这时候可能出现权限问题,导致部署到git
失败。
在服务器终端输入以下命令即可:
1 | chown -R git:git /var/repo/ |
最后再hexo d -g部署,应该就可以看到部署成功了。
自此,已经将博客搬到阿里云服务器了。
4、将网站添加 https 访问
去阿里云申请一个免费的SSL
证书,好像要备案,有点忘记了,很快就申请下来了。
进入宝塔面板,”网站”,”设置”,”SSL
“,”其他证书”
将你申请的证书*.key以及*.pem内容,粘贴进去然后保存,然后点击窗口右上角的强制HTTPS
即可。