本地Hexo部署
参考我的这篇文章:Hexo+Github 搭建个人博客 | lxs
服务器端部署 输入
安装Git
创建git账户
1 2 3 adduser git chmod 740 /etc/sudoers vim /etc/sudoers
添加git ALL=(ALL) ALL
权限
改回权限
设置 git 账户密码(371203)
切换至 git 用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件,并赋予相应的权限
1 2 3 4 5 6 su git mkdir ~/.ssh vim ~/.ssh/authorized_keys chmod 600 /home/git/.ssh/authorized_keys chmod 700 /home/git/.ssh
在本地登录
在本地 Git 终端中测试是否能免密登录 git,其中 SERVER 为填写自己的云主机 IP,执行输入 yes 后输入你之前配置的 git 密码,无报错就说明好了。
配置仓库与相关配置
在 var 目录下创建 repo 作为 Git 仓库目录,返回服务端命令行切换到 root 账户,然后输入:
1 2 3 4 5 sudo su root mkdir /var/repo chmod -R 755 /var/repo chown -R git:git /var/repo/
创建新的库
1 2 cd /var/repo git init --bare hexo.git
创建一个新的 Git 钩子,用于自动部署。在 /var/repo/hexo.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。
1 vim /var/repo/hexo.git/hooks/post-receive
进入编辑模式,然后将下面那两行代码粘贴进去,保存退出。
1 2 3 4 5 6 # !/bin/bash git --work-tree=/www/wwwroot/hexo --git-dir=/var/repo/hexo.git checkout -f chown -R git:git /var/repo/hexo.git/hooks/post-receive chmod +x /var/repo/hexo.git/hooks/post-receive
新建一个文件用做网站的根目录,记得给权限。
1 2 3 mkdir /www/wwwroot/hexo chmod -R 755 /www/wwwroot/hexo chown -R git:git /www/wwwroot/hexo
Nginx
1 yum install -y wget && wget -O install.sh http://download.bt.cn/install/install_6.0.sh && bash install.sh
打开防火墙
复制上述地址即可。用户名与密码也有在用户面板中。 打开软件商店输入Nginx
。选择免费的安装。等待安装结束。
部署完成之后,点击网站,添加站点,填写你的域名(加上3w),没有的话写你的服务器 ip 地址。根目录选我们之前建立的/www/wwwroot/hexo
回到服务器终端,重启宝塔服务
部署本地文件 接下来需要将本地的生成好的/public推送到服务器。进入本地电脑 hexo 博客的根目录,编辑站点配置文件 _config.yml,找到 deploy,修改成以下
1 2 3 4 5 deploy: type: git # repo改为repo: git@域名:/var/repo/hexo.git repo: git@1.15.172.21:/var/repo/hexo.git branch: master
然后使用
1 2 npm i hexo-deployer-git -- save hexo clean && hexo g && hexo d
可能会报错
在服务器终端输入以下命令即可:
1 chown -R git:git /var/repo/
添加HTTPS访问
一般购买域名的网站会配套提供SSL证书服务,这里我采用了两种方式:
在阿里云/腾讯云申请免费SSL证书(有效期90天,限额50次)
在Namecheap 上申请(Github Student Developer Pack 1年免费)
阿里云/腾讯云申请免费SSL证书
参考:将 Hexo 部署到阿里云轻量服务器_hexo部署到阿里云-CSDN博客
因为我的域名是在腾讯云买的,所以顺带申请证书
这里.pem文件和.crt内容是一样的
密钥:下载解压得到的.key文件
证书:下载解压得到的.pem文件
这里换成了namecheap网站的证书,实际腾讯云的免费SSL证书有效期是90天
Namecheap网站申请SSL证书 GitHub Student Developer Pack
购买完成后需要激活SSL证书
参考:Namecheap SSL证书(PositiveSSL)激活和Nginx环境SSL获取 | 老左笔记
登录我们当前VPS服务器,执行下面命令生成CSR。
1 openssl req -new -newkey rsa:2048 -nodes -keyout {}.key -out {}.csr
{}部分换成自己的域名,这样容易辨别证书是哪个域名的。
1 2 3 4 5 6 7 8 9 10 11 12 Country Name (2 letter code) [AU]:CN //国家简称 State or Province Name (full name) [Some-State]: JS //省份简称 Locality Name (eg, city) []:SZ //城市简称 Organization Name (eg, company) [Internet Widgits Pty Ltd]: //组织名称可以不写 Organizational Unit Name (eg, section) []: //可以不写 Common Name (eg, YOUR name) []: laozuo.org //填写我们的域名WWW和不带WWW不同 Email Address []:邮箱地址 Please enter the following 'extra' attributes to be sent with your certificate request A challenge password []://不写 An optional company name []://不写
然后就可以在当前路径中生成2个证书文件 ,一个是KEY,一个是CSR
CSR文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 [root@VM-12-3-centos ~]# cat lxs04.csr -----BEGIN CERTIFICATE REQUEST----- MIICvzCCAacCAQAwejELMAkGA1UEBhMCQ04xCzAJBgNVBAgMAkpTMQswCQYDVQQH DAJTWjEcMBoGA1UECgwTRGVmYXVsdCBDb21wYW55IEx0ZDERMA8GA1UEAwwIbHhz MDQubWUxIDAeBgkqhkiG9w0BCQEWETEzNjI2MzczNjZAcXEuY29tMIIBIjANBgkq hkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEA6dLAT7F0xcWaFRcVtAdhTo7y2pBc2zi8 HSNjYLBLug7iGBICVDPM1JUFa/YI1S68S+Uzs+O5TImnHeguo6Z4tWJbdAL7cJgF vfnCWZVql9I0Hd2nmxOVXoF6U3bmT9zg0nLQxitgY52amJOUO8nhQKhVB6g1m5gv h2P/tM4JMpE36VLCJogCvgIzBw2mqFxL53EGufmN4OL59Mh7k9kNjbnYFuRV1cvO ZdJ2FsGonSFYzdN9KFIaMx7W6wzR98JbTz1FAYIsrFN8eWfS+THkRGfNywF/dThC iaOPcMgrR9waEaXtPO4K1LoYEx5N1MSNXKJ6aebKS7kScMGNLCBdnwIDAQABoAAw DQYJKoZIhvcNAQELBQADggEBAHGN1iKuYxhAA6QgeRDLxdW9ecL7rhBdwPewIsjb KjjW7q3t6MV4XhYBL/2+uDlRXi1DtHjAgXueokkcZMYYH6BLfkUJ7Ckl4dl5CNGt l5C3XLKhI7F9kO9UWF9AHjX6SRVWCvD2A8PR2pX7lMvVfCnAzqVDR4HcxD9fFwlr 8yCxhEe2em5mQEm5AO4tPOexTcWfa4VBtASLPpP1yX/9b7CK0C/3t2xy69UH1aGV c1UZqDwd3g1gZAtNluMgA58Gs4v4f29KR+d/9297llTITirneVguD1P+LDWVc6/H DKsekwctscIaaAHWUpeXZpK9sh9/rLQ0AwUI53g4BiWweMw= -----END CERTIFICATE REQUEST----
KEY文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 [root@VM-12-3-centos ~]# cat lxs04.key -----BEGIN PRIVATE KEY----- MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDp0sBPsXTFxZoV FxW0B2FOjvLakFzbOLwdI2NgsEu6DuIYEgJUM8zUlQVr9gjVLrxL5TOz47lMiacd 6C6jpni1Ylt0AvtwmAW9+cJZlWqX0jQd3aebE5VegXpTduZP3ODSctDGK2BjnZqY k5Q7yeFAqFUHqDWbmC+HY/+0zgkykTfpUsImiAK+AjMHDaaoXEvncQa5+Y3g4vn0 yHuT2Q2NudgW5FXVy85l0nYWwaidIVjN030oUhozHtbrDNH3wltPPUUBgiysU3x5 Z9L5MeREZ83LAX91OEKJo49wyCtH3BoRpe087grUuhgTHk3UxI1conpp5spLuRJw wY0sIF2fAgMBAAECggEAQIUrE9J/ymLwVYl9L6Qpsae4U58qQEOzhMbTEUcUXk7l DIdLpTh1+OL2EAhf/5NZ2gdw8N6RrxD80D/VPssc29A8NBLulu8cBoP4oQed1i7m uqcDLMOGoAFSY92XR8pHL0sHWOd3PYWrtxZh/O2D/nd0nxxHTpv74Xwyfw2rdAwf Ly/0KeCA8H+4WgRKEw3s+lYs0fHhv6qT0sIovGdrP0BO//43QOeVIRsIbi2+A8ps jyi1lbEdmNaDBjbrFl/ZGXXv0v55Wt3t95D0yxJrWHPgwUY5epYPWVcn1b6Y3bY0 Kncpxe8tiTStxwcbnoVfv2BQSQWJN3SPgY607lbUoQKBgQD8TpINYW/lpbm89+RO ou+rMYnlIFUcwcpt88o5nu6AOrBnRMb4Xv/9Oi5bFH/VsFTY9aN87E4fOgi3KvFb 7AI+gmJH0meuDheqcKueFHo+18frf6ixC2TPjOTGgJuEFw+5qT8lHLUEOSyjKqDa AhfFhHKPKwWVjsfs8Y2M/vb/wwKBgQDtPut3iGIVCjsV8U+ta6G9wVpf1DXqODuM UyCiziBLNKK/lNRi+BYxbDDaRQsfLTtAkoVv3T6KUaVUZqth7QSxQGIiQozCGH8U Joj0yz9XWtr7pVaAmYKszz1+hUoPmiIi52uI6s/wH0logvMUuiRz+QdS6AxhASZG bCVbNsqI9QKBgQDdHJZOd6eyoAwomS5R4+UaKG3qiO1OKF8ZAN+mo6vsYIKb3eBp Zgf9ifF6DHsDcGbLRGokXosQPrHIpC+lGS3WTjmHK9OE7AC9c8RS4ytGy5/+uH/D uHJ+mcEcXTTtC7DSSop2IbRZoSmHTSJuLAtdI/eplFBugxSeiAo/GGqqNQKBgFgb nPE4ikyMDyN4CgI6zceeDkU2l4tTtPHJUX6FFMM5WhPSXwoeXoeeSYpWR+odLzss 7zd7MCXIaqEsvAtTLgHyCj/0/Td8R32hTg2zieOUT21TmwuJd1lcYdciAz5GHNVf orUnl2/y/p08vK/+7VjQrGKi4S4JckCHG1yDvbYdAoGBAIrSl2XEGW03cw+ArOYO SVLJkqNiW3bL1Ml0doJTv+9y7KdMM+yZegzotdyspmfGzL7fKwz+5nRJjITtd4KH z/H8tSYlG6DpZHmJF/qK6VTHtxEYfOI3Hl8t7n3BuNVACR6VvmdKg6vMm5gfQmBs 90dLtQkjW08TPmHdIPRxMxhT -----END PRIVATE KEY-----
激活过程可以看这个视频:How to complete the DCV process for an SSL using the CNAME method
验证通过后接收邮件
密钥:服务器端生成的.key文件
证书:下载解压得到的.crt文件