你要的这里都有,Hexo博客部署到腾讯云工作器全历程

发布日期:2025-05-10 16:04:47 点击次数:163

配景

说来也愧疚,博客照旧搭建很深远,一直免费的部署在 Coding 和 Github Pages 上,前者搬动到腾讯云 Serverless,导致原有的成就恒久有问题,没本事仔细照拂,刚好腾讯工作器有羊毛不错褥,武断作出搬动,至于罗致腾讯云,是因为当初备案在腾讯云,然则购买域名是在阿里,嗅觉好拧巴,然则举座互不关联,没啥影响。

部署环境 环境   土产货环境 MacOS Monterey 12.0.1 工作器环境 CentOS Linux release 8.2.2004 (Core) 土产货环境成就

hexo 土产货搭建历程网上太多了,这里不再赘述,这里仅仅作念少许贯穿工作器的准备责任

生成 Git 密钥

ssh-keygen -C "your@mail.com" 

一皆回车,这时你应该不错在 ~/.ssh/ 目次下看到两个刚刚生成好的密钥文献:

公钥:id_rsa.pub 私钥:id_rsa

咱们一会需要把公钥的实质拷贝到工作器上

工作器环境成就

工作器绝顶皎洁,什么也莫得,是以咱们要少许点装配咱们所需的实质

Git Nginx

狠恶提倡你重置腾讯云工作器的默许密码, 再进行底下操作

Git 装配和成就

装配

切换到 root 用户(输入你刚刚重置的密码就好)

迷水商城迷水商城
su root 

最初需要装配包的依赖

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

干涉指定目次(这里罗致 usr/local/src)罗致最新版块 Git (这里使用 2.34.1)下载并解压

cd /usr/local/src wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.34.1.tar.gz tar -zxvf git-2.19.0.tar.gz 

解压出来的 Git 文献都是源文献,咱们需要进行编译,干涉 Git 解压目次,进行编译和装配, 装配位置(这里罗致 usr/local/git), 所有这个词这个词历程可能需要一定恭候......

cd git-2.34.1 make prefix=/usr/local/git all make prefix=/usr/local/git install 

装配好后,咱们需要成就环境变量,掀开环境变量成就文献:

vim /etc/profile 

在文献底部添加 Git 装配目次信息,给不熟习 Vim 的同学快速操作要领,按照底下规律按字母就不错了(这个保姆工作有莫得很到位)

迷水商城

G (光标快速到文献末尾)

o (添加新空缺行并干涉 Insert 时势)

粘贴底下实质

Esc (干涉 Normal 时势)

:wq(保存并退出)

PATH=$PATH:/usr/local/git/bin export PATH 

刷新环境变量,使之顺利

迷水商城
source /etc/profile 

此时 Git 应该照旧装配完成,不错稽察 Git 版块号是否和你指定的版块一样:

365站群VIP
git --version 

Git 新用户与成就

创建 git 用户和密码

adduser git passwd git 

将 git 用户添加到 sudoers 文献中, 相同给出 Vim 快捷操作

chmod 740 /etc/sudoers vim /etc/sudoers 

/## Allow

这么不错快速定位到如下位置:

迷水商城
## Allow root to run any commands anywhere root    ALL=(ALL)       ALL 

不才面一滑添加 git 用户实质, 保存并退出

git      ALL=(ALL)       ALL 

修改回 sudoers 文献权限

chmod 400 /etc/sudoers 

测试

将上头土产货生成的 id_rsa.pub 公钥实质拷贝到远端工作器, 这个呐喊会默许在远端工作器 git 用户主目次下生成 authorized_keys 文献 (~/.ssh/authorized_keys), 其中 server_ip 为公网 IP,不是里面 IP,别拷贝错了

ssh-copy-id -i ~/.ssh/id_rsa.pub git@server_ip 

此时不错通过 ssh 呐喊(加上 -v 呐喊,不错输出详备 log)测试连合,没问题就不错进行下一步了

ssh -v git@server_ip 

博客网站目次成就

迷水商城 创建博客网站目次位置

相同切换到 root 目次,然后为博客网站创建根目次(这里罗致 /home/hexo)

su root mkdir /home/hexo 

赋予 git 用户权限

chown git:git -R /home/hexo 
自动化成就

指定目次位置(这里罗致 git 用户主目次 /home/git)创建一个名为 blog.git 的 bare repo

cd /home/git  git init --bare blog.git 

什么是 bare repo,以及 bare repo 的一些高等使用,性药市场不错看底下这三篇著作,底下的一些细节仅仅不作念过多先容

恩华三唑仑 Git Worktree 大法真香 Git Worktree 高等使用

一键生成Git Worktree 责任目次

相同赋予 git 用户相应权限

chown git:git -R blog.git 

使用自动化成就,当然是要用到 Git 的钩子函数,这里咱们需要 post-receive,在博客 hooks 目次下新建该文献:

迷水商城
vim blog.git/hooks/post-receive 

然后添加如下实质(扫视目次匹配),保存并退出:

迷水商城
#!/bin/sh git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f 

终末,赋予这个文献可奉行权限

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

接下来,创建个贯穿,以防后续 deploy 历程出错

迷水商城迷水商城
sudo ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack 

至此,基本的准备责任就完成了,接下来咱们需要处分 Nginx 的实质

Nginx 装配和成就

装配

迷水商城

相同切换到 root 用户,然后装配 nginx,并最终运行

迷水商城
su root yum install -y nginx systemctl start nginx.service 

这时,在浏览器中输入公网 IP 地址,应该不错看到 Nginx 默许的接待界面

成就

这里成就 Nginx,将所有这个词 Http 请求都重定向为 Https 请求,这就需要咱们有 SSL 文凭,文凭不错在云工作器上肯求,并下载相应的版块(这里罗致 Nginx 文凭),下载后解压,以我的文凭为例:

迷水商城
. ├── 6317712_www.dayarch.top.key └── 6317712_www.dayarch.top.pem  0 directories, 2 files 

通过 scp 呐喊将上述文凭拷贝到远端工作器, 昔时应该将 Nginx 的文凭存放在 /etc/nginx/cert 目次下,这里罗致存放在 /home/ssl_cert 下(如若目次不存在,请自行创建)

scp ~/Downloads/6317712_www.dayarch.top_nginx/6317712_www.dayarch.top.key root@server_ip:/home/ssl_cert scp ~/Downloads/6317712_www.dayarch.top_nginx/6317712_www.dayarch.top.pem root@server_ip:/home/ssl_cert 

然后掀开 Nginx 的成就文献进行举座成就

server{     listen 80;     server_name dayarch.top; # 个东说念主域名     rewrite ^(.*)$ https://$server_name$1 permanent; # 重定向 }  server {     listen 443;      server_name dayarch.top;  # 个东说念主域名     ssl on;      ssl_certificate      /home/ssl_cert/6317712_www.dayarch.top.pem; # .pem 文凭     ssl_certificate_key  /home/ssl_cert/6317712_www.dayarch.top.key; # .key 文凭     ssl_session_cache    shared:SSL:1m;     ssl_session_timeout  5m;     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;     ssl_protocols TLSv1 TLSv1.1 TLSv1.2;     ssl_prefer_server_ciphers  on;      location / {         root   /home/hexo;  # 博客网站主目次         index index.php  index.html index.htm;      }      error_page  404              /404.html;     location = /404.html {         root   /usr/share/nginx/html;     }      error_page   500 502 503 504  /50x.html;     location = /50x.html {         root   /usr/share/nginx/html;     } } 

通过 nginx -t 呐喊进行检查,一切昔时会输出如下边界:

迷水商城
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok nginx: configuration file /etc/nginx/nginx.conf test is successful 
重启 Nginx 工作
systemctl restart nginx.service 

至此,所有这个词的准备责任都作念收场,接下来,咱们需要作念一些博客成就

土产货博客成就修改

咱们需要将远端工作器的 Git 仓库信息成就到 Hexo 站点成就文献(_config.yml)中

deploy:   - type: git     repo: git@server_ip:/home/git/blog.git     branch: master 

不时奉行 hexo 的呐喊进行部署

hexo clean hexo generate hexo deploy 

至此,距离告捷,咱们只差终末一步

域名明白

登陆到你购买域名工作器(比如我在阿里云),成就域名明白,将其指向咱们工作器的公网地址:

考证 

接下来,你不错在浏览器中输入域名,进行考证,享受你的后果吧!