文章目录
简 述: 在阿里云服务器上部署 Hexo
博客。
本文初发于 偕臧 https://xmuli.tech,同步转载于此。
背景
初,将 hexo
部署在 GitHub
,因访问较慢;不久,改成 hexo
部署在 GitHub + Coding
双线程解析,实测 coding
是韩国的服务器,访问加速不明显(现在好像升级了,没继续了解);数月后,今改成 阿里云 + GitHub
解析国内外访问,用上我心爱的小服务器(偕臧自家用,豆腐店)。
服务器配置
连接远程服务器
阿里云购买 “轻量应用服务器” ,安装 Ubuntu 20.04
;面板左侧点击 “服务器运维-远程连接” ,设置 root 密码后重启电脑生效,在本机使用 ssh + root@20.21.01.11
登录 (此假设我购买的阿里云服务器公网IP
为 20.21.01.11
,寓意新年)。
创建新用户
创建新用户 xmuli
adduser xmuli
chmod 740 /etc/sudoers
vim /etc/sudoers
找到如下 root ALL=(ALL:ALL) ALL
后,在其下面添加一行
xmuli ALL=(ALL:ALL) ALL # xmuli 替换为自己用户名
获取 root
权限
sudo passwd xmuli
切换新用户
切换为新建的用户后(后面都是此用户和其 ~
目录下工作 ),安装一些常用软件
su xmuli
cd ~
sudo apt update
sudo apt install vim git htop screenfetch curl wget # zsh 暂没安装
配置 SSH
创建 ~/.ssh
和 authorized_keys
文件,赋予权限
mkdir ~/.ssh
vim ~/.ssh/authorized_keys # authorized_keys 名字不能变
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh/
然后切回本机,将 cat ~/.ssh/id_rsa.pub
的结果复制到 远程服务器的~/.ssh/authorized_keys
里面;在本地测试,验证 ssh
无密码登录
ssh -v xmuli@20.21.01.11
配置 Git
创建 Git
裸库 blog.git
,和工作目录 blog
(存放解析后 html
文件)
cd ~
mkdir blog
git init --bare blog.git
vim blog.git/hooks/post-receive # 创建新文件
里面 post-receive
添加 hook
钩子,
#!/bin/sh
git --work-tree=/home/xmuli/blog --git-dir=/home/xmuli/blog.git checkout -f
添加运行权限
chmod +x blog.git/hooks/post-receive
若执行 git clone xmuli@20.21.01.11:/home/xmuli/blog.git
可下载云服务器该 git 仓库
安装 nginx
安装 nginx
和修改对应配置文件
sudo apt install
sudo vim /etc/nginx/sites-available/default
找到
# include snippets/snakeoil.conf;
root /var/www/html;
替换为
# include snippets/snakeoil.conf;
root /home/xmuli/blog;
执行 service nginx status
查看 nginx 状态,其默认状态是运行中(服务开始了) + 开机自启 (若是没有,需要执行此状态 );命令可参考 【译】你必需知道的10个 Nginx 常用命令 。
若此刻直接访问云服务器的公网 IP 会显示 nginx 欢迎界面,因为此时 /home/xmuli/blog
文件夹为空,没有任何 html 文件。
本地配置:
创建 hexo
文件夹
本地创建一个测试的 hexoBlog
的博客文件夹,用来最小化验证部署正确。
cd ~
hexo init hexoBlog # 创建和初始化 hexoBlog 文件夹
cnpm install # 安装插件
cnpm install hexo-deployer-git --save # hexo d 部署插件
修改 hexoBlog
根目录下的配置文件 _config.yml
,末尾修改为
# Deployment
## Docs: https://hexo.io/docs/one-command-deployment
deploy:
type: git
repo: xmuli@20.21.01.11:/home/xmuli/blog.git
branch: master
message: '站点更新:{{now("YYYY-MM-DD HH:mm:ss")}}'
部署到远程服务器
在本机中 ~/hexoBlog
路径下,执行部署
hexo clean # 清理
hexo g # 生成 html 文件
hexo s # 在本机浏览器预览效果
hexo d # 部署,会自动将生成的 html 文件, push 到阿里云服务器的 /home/xmuli/blog 文件夹中
然后重启阿里云服务器后,浏览器输入服务器公网 IP
,即可网页看到解析后的部署网页 “Hello World”。
最后替换为自己的真实博客文件夹的 _config.yml
文件末尾处替换为如上,重新执行 hexo d
部署即可成功;可以生成一个快照哦~,以防万一