将hexo博客部署到Linux服务器上
...About 2 min
将hexo博客部署到Linux服务器上
部署前的准备工作
- Linux服务器一个
- 域名,并且已经解析至自己的服务器
- 本地电脑ssh客户端,用户连接远程服务器
安装所需软件
RPM 系
yum update
yum install git wget vim nginx
deb系:
apt update
apt upgrade
apt install git wget vim nginx
管理git用户
adduser git
chmod 740 /etc/sudoers
vim /etc/sudoers
找到以下内容:
# User privilege specification
root ALL=(ALL:ALL) ALL
在下面添加一行:
git ALL=(ALL) ALL
保存并退出后执行:
chmod 440 /etc/sudoers
配置nginx
新建一个配置文件,用来指向hexo网站,编辑:
vim /etc/nginx/conf.d/hexo.conf
输入以下内容:
server {
listen 80;
root /var/www/hexo;
server_name www.yourdomain.com ;
access_log /var/log/nginx/blog_access.log;
error_log /var/log/nginx/blog_error.log;
error_page 404 = /404.html;
location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
root /var/www/hexo;
access_log off;
expires 1d;
}
location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
root /var/www/hexo;
access_log off;
expires 10m;
}
location / {
root /var/www/hexo;
if (-f $request_filename) {
rewrite ^/(.*)$ /$1 break;
}
}
location /nginx_status {
stub_status on;
access_log off;
}
}
将其中域名改成自己的,如果网站目录设置的不一样,记得也要修改。
然后新建网站目录,并将所有者付给git用户:
mkdir -p /var/www/hexo
chown -R git:git /var/www/hexo
然后就可以启动nginx了:
systemctl enable nginx
systemctl start nginx
git 用户配置
切换到git用户:
su git
然后:
cd /home/git //切换到git用户目录
mkdir hexo.git //创建git仓库文件夹,以blog.git为例
cd hexo.git //进入仓库目录
git init --bare //使用--bare参数初始化为裸仓库,这样创建的仓库不包含工作区
配置ssh
每次hexo d部署时都要输入ssh密码,比较麻烦,可以配置秘钥,从而免密部署:
cd /home/git //切换到git用户目录
mkdir .ssh //创建.ssh目录
cd .ssh
vim authorized_keys
将电脑本地的ssh秘钥中的内容复制到文件中,linux系统在~/.ssh/id_rsa.pub 文件中如果没有,可使用ssh-keygen生成。
然后需要修改文件权限才可使用秘钥登录选项:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
配置git hooks
在git用户下:
cd /home/git/hexo.git/hooks
vim post-receive
在文件中输入以下内容:
#!/bin/bash
GIT_REPO=/home/git/hexo.git
TMP_GIT_CLONE=/tmp/blog
PUBLIC_WWW=/var/www/hexo
rm -rf ${TMP_GIT_CLONE}
git clone $GIT_REPO $TMP_GIT_CLONE
rm -rf ${PUBLIC_WWW}/*
cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW}
保存并退出后修改可执行权限即可:
chmod +x post-receive
本地hexo配置文件修改
在本地hexo的配置文件中修改如下内容:
# Deployment
## Docs: https://hexo.io/docs/deployment.html
deploy:
type: git
repo: [email protected]:hexo.git
branch: master
- 注意:将以上192.168.1.1改成你的服务器ip地址
然后
hexo clean && hexo d
即可发布到自己的网站上去。
Powered by Waline v3.1.3