Skip to main content

将hexo博客部署到Linux服务器上

SmartDeng...About 2 minLinuxHexoLinuxHexoGit

将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

即可发布到自己的网站上去。

Comments
  • Latest
  • Oldest
  • Hottest
Powered by Waline v3.1.3