服务器部署Hexo博客
dog/god说
最近真是沉迷博客无法自拔啊…在党员丁的“一块钱你买不到。。。”的理论感化下,入坑了腾讯云,顺便买了个.cn的域名(网站备案好繁琐啊)。言归正传,又花了两天把原来部署在github上的博客部署到服务器上,真是折腾了好久,遇到了各种谜之问题。写下安装步骤以防遗忘和以后可能的修复博客。
本地安装Hexo
Windows下安装nodejs和它的包管理器npm以及git
安装Hexo
npm install hexo -g初始化hexo
cd D:/blog
hexo init
服务器配置
创建专用的用户
- 添加用户
useradd -m hexo - 赋予sudo权限
vim /etc/sudoers
修改片段如下
## Allowroot to run any comment anywhere
root ALL=(ALL) ALL
hexo ALL=(ALL) ALL
创建部署静态文件的Git仓库
创建/var/repo 目录,然后修改所有权和用户权限,之后 ubuntu 用户都具备 /var/repo 目录下所有新生成的目录和文件的权限。
sudo mkdir /var/repo/
sudo chown -R $USER:$USER /var/repo/
sudo chmod -R 755 /var/repo/
初始化git仓库,生成.git
cd /var/repo
git –bare hexo_static.git
配置Apache/Nginx 托管文件目录
Apache或者Nginx都可以,因为之前用的Nginx配置的,发现明明部署成功,网页却无法显示,怀疑Nginx有问题,于是换了Apache,结果是愚蠢的我没有把服务器的80端口打开…
创建/var/www/hexo,用于托管,同时修改所有权和权限
sudo mkdir -p /var/www/hexo
配置Apache
sudo apt-get install apache2
修改网站的默认根目录为/var/www/hexo
sudo vi /etc/apache2/sites-available/000-default.conf
ServerAdmin webmaster@localhost
DocumentRoot /var/www/hexo #修改的地方
重启Apache使之生效
sudo /etc/init.d/apache2 restart
配置Nginx
sudo apt-get install nginx
修改 Nginx 的 default 设置
sudo vim /etc/nginx/sites-available/default
将其中的 root 指令指向 /var/www/hexo 目录
root /var/www/hexo;
重启Nginx使之生效
sudo service nginx restart
创建Git hooks
接下来,在服务器上的裸仓库 hexo_static 创建一个钩子,在满足特定条件时将静态 HTML 文件传送到 Web 服务器的目录下,即 /var/www/hexo。在自动生成的 hooks 目录下创建一个新的钩子文件:
vim /var/repo/hexo_static.git/hooks/post-receive
在该文件中添加两行代码,指定 Git 的工作树(源代码)和 Git 目录(配置文件等)。
#!/bin/bash
git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f
保存并退出文件,并让该文件变为可执行文件。
chmod +x /var/repo/hexo_static.git/hooks/post-receive
本地Hexo创建博客及部署
修改 Hexo 配置中的 URL 和默认文章版式
修改URL 和 Deployment目录下的type等
url: http://服务器IP
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: hexo@服务器IP:/var/repo/hexo_static
branch: master
新建博客并发布
先需要安装一个hexo包
npm install hexo-deployer-git --save
hexo n "文章名"
hexo clean
hexo g
hexo d
在部署时需要设置SSH免密登陆,我留到下一篇博客专门讲解SSH。
打开浏览器输入IP就可以查看博客了。