hexo博客搭建并部署阿里云
基本使用
- 安装
1 | npm install -g hexo-cli |
创建一个文件文件夹
在此问价夹内初始化一个博客
1 | hexo init |
- 启动博客
1 | hexo s |
- 新建一个博客文章
1 | hexo n "名字" |
- 清理缓存
1 | hexo clean |
- 生成文章
1 | hexo g |
- 部署
1 | hexo d |
部署阿里云
nginx 配置
1 | server { |
docker
1 | docker run -d \ |
本地自动化部署
服务器端
- 基本配置
1 | #安装git |
- 配置git仓库
1 | cd ~ |
git init --bare blog.git
:此命令初始化一个 裸仓库(bare repository),blog.git
就是这个仓库的目录名。裸仓库与普通仓库不同,它不包含工作目录(即不含文件的实际内容)。裸仓库仅用于存储 Git 版本控制数据,适用于作为远程仓库。
--bare
选项表示仓库不包含工作目录,仅存储 Git 版本信息,通常用于作为中央仓库,其他机器可以通过它进行git push
和git pull
。
vim ~/blog.git/hooks/post-receive
:该命令会打开 Git 仓库的钩子目录中的post-receive
文件。如果该文件不存在,vim
会创建它。Git 提供了一些钩子(hook),用来在特定操作后自动执行某些任务。post-receive
钩子是指在git push
操作成功后执行的脚本,可以用来执行自动部署或其他任务。
git --work-tree=/mydata/nginx/html/blog --git-dir=/home/git/blog.git checkout -f
:这是在post-receive
钩子中执行的命令,作用是将更新的 Git 内容拉取到指定的目录。
--work-tree=/mydata/nginx/html/blog
:指定了 工作目录,即更新内容将被检出到/mydata/nginx/html/blog
目录。工作目录就是实际存放文件内容的地方,在这里我们希望 Git 将仓库中的文件内容部署到/home/www/website
目录。
--git-dir=/home/git/blog.git
:指定了 Git 仓库的目录(blog.git
)。这是仓库的路径,post-receive
钩子会从这个仓库中提取最新的提交。
checkout -f
:执行git checkout
命令将最新的提交检出到指定的工作目录,并且-f
表示强制覆盖文件(如果目标目录中已经有文件,git checkout
会覆盖这些文件)。通过这条命令,你将仓库中的最新内容(代码或静态文件)同步到
/mydata/nginx/html/blog
目录。/mydata/nginx/html/blog 目录为
nginx html
文件目录配置 权限
chmod 777 -R /mydata/nginx/html/blog
本地主机
- 生成 SSH 密钥对(如果没有) 默认路径在 ~/.ssh/下
1 | ssh-keygen -t rsa -b 4096 |
**
-t rsa
**:指定密钥类型为 RSA。**
-b 4096
**:指定密钥长度为 4096 位。
- 将公钥复制到远程服务器
1 | ssh-copy-id user@remote_host |
该命令会将本地的 ~/.ssh/id_rsa.pub
公钥复制到远程服务器的 ~/.ssh/authorized_keys
文件中
hexo配置
打开blog/_config.yml配置
1 | deploy: |
将本机部署到服务器中
1 | hexo d |