你要的这里都有,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 版块号是否和你指定的版块一样:

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
至此,距离告捷,咱们只差终末一步
域名明白登陆到你购买域名工作器(比如我在阿里云),成就域名明白,将其指向咱们工作器的公网地址:
接下来,你不错在浏览器中输入域名,进行考证,享受你的后果吧!