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.crt
和cloud.tencent.com.key
这两个文件复制到服务器的某个文件夹中这里推荐使用WinSCPserver { 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查看了🤠