Loading... ## 部署hexo官方教程 (解释比较详细) [从零搭建Hexo博客并部署腾讯云服务器 - 云+社区 - 腾讯云](https://cloud.tencent.com/developer/article/1763272?from=information.detail.%E8%85%BE%E8%AE%AF%E4%BA%91%E9%83%A8%E7%BD%B2git%E6%9C%8D%E5%8A%A1%E5%99%A8) ## 腾讯云 git 与 ssh 安装与配置 (参考这两个就没问题了) [Hexo 博客部署到腾讯云服务器 - 知乎](https://zhuanlan.zhihu.com/p/120322118) [【最全】教你如何用腾讯云服务器+hexo 搭建属于自己的博客_哔哩哔哩 (゜-゜)つロ 干杯~-bilibili](https://www.bilibili.com/video/BV1cp4y1i7C7?p=4) ## 通过Git推送到qcloud [折腾搬瓦工–05–在VPS上结合Git使用hugo搭建静态博客 - wbuntu - Do you remember?](https://wbuntu.com/p/288/) ## 实现脚本: ```1. Git安装 参考官网用dnf的命令复制黏贴完成即可 ``` ```2. Git相关配置 # 创建 git 用户 adduser git ``` ```3. 获取权限 chmod 740 /etc/sudoers vim /etc/sudoers #root ALL=(ALL) ALL #在其后面增加一句: #git ALL=(ALL) ALL ``` ```3.退回权限 chmod 400 /etc/sudoers ``` ```4.设置git用户的密码 passwd git ``` ```5.配置密钥,建立本地与远程连接 # 切换到git用户,然后在~目录下创建.ssh文件夹 su git cd ~ mkdir .ssh cd .ssh # 生成公钥密钥文件 ssh-keygen # 此时在目录下就会有两个文件,分别是 # id_rsa 和 id_rsa.pub # 其中 id_rsa.pub 就是公钥文件 # 在服务器创建.ssh文件夹 su git mkdir ~/.ssh # 创建.ssh/authorized_keys文件 # 将id_rsa.pub内容复制到服务器authorized_keys文件中保存:wq! # 修改权限 chmod 755 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys ``` ```测试本地连接服务器 ssh -v git@yourIp //yourIp为你的服务器ip ``` ```6. 创建git仓库 # 切换到root用户,创建一个目录用于存储网站的根目录 su root mkdir /home/hugo # 给予权限 chown git:git -R /home/hexo ``` ```7. git自动化部署的配置 # 获取root权限,建立git仓库 su root cd /home/git # 创建远程裸仓库, 赋予git用户权限 git init --bare blog.git chown git:git -R blog.git # 在 blog.git下自动生成hook目录, 自己创建一个钩子脚本 # 当有本地代码推送到服务端repo时, 自动触发 vim blog.git/hooks/post-receive # 输入如下内容: 即让blog.git目录管理项目目录,建立对应关系 ``` ```shell #!/bin/bash git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f ``` ```8. 配置web服务 一、安装配置Nginx # 安装Nginx yum install -y nginx # 配置Nginx nginx -t vim /etc/nginx/nginx.conf ---------------------------- server { listen 80 default_server; listen [::]:80 default_server; server_name 域名或/IP; //你的博客域名 root /home/hugo; //git仓库目录 # Load configuration files for the default server block. -------------------- 启动Nginx systemctl start nginx.service 重启Nginx systemctl restart nginx.service ``` ```9. 本地推送设置 - 本地推送项目到qcloud(自动部署) 首先: # 本地推送的文件夹为站点工程文件夹下的public文件夹 # 配置hugo 的config.toml ,将urlBase切换成服务器IP或域名 # 根据命令生成 待发布的public资源文件夹 其次: # 用git命令初始化后添加远程仓库 cd public git add . git commit -m 'first commit' # 以下这句是重点! 与qcloud建立联系 git remote add prod git用户名@IPAddress:/home/blog.git ``` ```ps 1. 如果VPS的ssh不是默认的22,可以直接设置 git remote set-url origin ssh://root@IPAddress:Port/root/blog.git 2. 如果更新了文章,要进行再次推送时 git add -A git commit -m "messages" git push origin maste 3. 也可以设置默认推送的分支 git push --set-upstream origin master # 之后用git push 就默认往这里推送了 ``` ## 总结: * 思路 1. 本质就是: 本地生成的博客(*静态HTML文件*) 同步到 远端服务器(qcloud) 依靠 Nginx解析请求并去服务器的静态HTML目录中拿资源 2. 通过 hugo/hexo 等博客生成器根据你的配置动态生成静态HTML文件, 通过自带命令让你本地预览或者生成public待发布的静态HTML文件包(网站) 3. 通过git工具一键将静态HTML文件同步到qcloud, qcloud通过nginx服务接收http,并获取(Nginx配置的目录)qloud上的HTML文件资源 4. 用户浏览器接收到资源并渲染 © 允许规范转载