Hexo博客部署腾讯云过程全记录


Hexo博客部署腾讯云过程全记录

简介

​ 首先因为部署在github上访问太慢,其次已经租了云服务器不能浪费呀🎃

部署环境

服务器配置

安装依赖包

yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
yum install  gcc perl-ExtUtils-MakeMaker

看一下有没有git,没有(或者版本太低)就下载

git -v // 没有就下载

cd /usr/local/src   // 选择文件保存位置
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.18.4.tar.gz   // 下载链接
tar -zxvf git-2.18.4.tar.gz    // 解压

编译并安装

cd git-2.19.0                   // 进入文件夹
make prefix=/usr/local/git all  // 编译源码
make prefix=/usr/local/git install  // 安装至 /usr/local/git 路径

编辑环境配置文件

vim /etc/profile

在文件末尾添加如下内容

PATH=$PATH:/usr/local/git/bin   // git 的目录
export PATH

刷新环境变量

source /etc/profile

创建git用户并修改权限

adduser git
passwd git
chmod 740 /etc/sudoers
vim /etc/sudoers

找到以下内容(输入i进入编辑模式)

## Allow root to run any commands anywhere
root    ALL=(ALL)       ALL

在该语句下添加

git ALL=(ALL) ALL

退出(esc + :wq)并修改权限

source /etc/profile

本地使用gitbash创建密钥

ssh-keygen -t rsa //本地有可以直接查找本地的文件直接使用

在腾讯云中创建ssh

// 将本地的id_rsa.pub中的文件内容全部复制到authorized_keys中

su git
mkdir ~/.ssh
vim ~/.ssh/authorized_keys

修改权限

cd ~
chmod 600 .ssh/authorized_keys
chmod 700 .ssh

本地测试

ssh -v git@SERVER //@后是你自己的服务器公网IP,如果不出现failed字样,说明成功

云服务器中创建网站目录并设置权限

su root
mkdir /home/hexo
chown git:git -R /home/hexo

安装Nginx

yum install -y nginx    // 安装
systemctl start nginx.service     // 启动服务
// 以上执行完之后,在浏览器中输入你的公网IP如果可以进入CentOs界面,说明Nginx安装成功

配置Nginx

nginx -t  // 命令查看位置,一般为 /etc/nginx/nginx.conf。
vim /etc/nginx/nginx.conf //修改配置文件,在server_name后添加自己的域名(要备案),root后添加/home/hexo

这里的备案如果是腾讯云服务器的域名可以直接访问备案里面有详细的步骤,我的一周就完成了

重启服务

systemctl restart nginx.service

建立git仓库并修改权限

su root
cd /home/git
git init --bare blog.git
chown git:git -R blog.git

同步网站根目录

vim blog.git/hooks/post-receive

修改权限

chmod +x /home/git/blog.git/hooks/post-receive

在本地Hexo目录下修改

// _config.yml文件中的deploy后的repo改为:
deploy:
   type: git
   repo: git@121.4.41.10:/home/git/blog.git
   branch: master

做完以上配置在执行hexo的一键三连就可以访问啦😲

但是还有一步操作可以完善就是部署ssl证书(可以让网站访问更安全),没有证书的可以先申请证书

SSL证书部署

下载/配置

注意: 要先开放服务器的443端口

就是在证书申请下来以后有四个文件

  • cloud.tencent.com_bundle.crt 证书文件(需要使用)

  • cloud.tencent.com_bundle.pem 证书文件(可忽略该文件)

  • cloud.tencent.com.key 私钥文件(需要使用)

  • cloud.tencent.com.csr CSR 文件(不需要使用)

    就是在证书申请下来以后有四个文件需要将cloud.tencent.com_bundle.crtcloud.tencent.com.key这两个文件复制到服务器的某个文件夹中这里推荐使用WinSCP

    server {
        listen       80;
        server_name  www.xx.com; #你的域名
        rewrite ^(.*) https://$host$1 permanent;//将http 请求跳转https
       }
    server {
       listen 443;
       server_name www.xx.com; #填写绑定证书的域名
       ssl on;
       ssl_certificate 1_www.xx.com_bundle.crt;
       ssl_certificate_key 2_www.xx.com.key;
       ssl_session_timeout 5m;
       ssl_protocols TLSv1 TLSv1.1 TLSv1.2; #按照这个协议配置
       ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE;#按照这个套件配置
       ssl_prefer_server_ciphers on;
        }
    

    接下来就可以重启nginx查看了🤠


文章作者: 洪大俊
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 洪大俊 !
评论
  目录