本篇博客介绍了如何将hexo博客部署到自己的服务器上,github实在是太慢了2333333……

服务器安装必要环境

安装git

apt-get install git

安装nginx(宝塔一键安装)

apt-get install nginx

本地环境配置就不介绍了

配置ssh,仓库,网站根目录

添加用户

useradd git    //添加git用户

passwd git    //为git用户设个密码

配置ssh

cd /home

如果没有git文件夹创建一个

mkdir /home/git

有的话跳过

su git    //切换git用户

mkdir /home/git/.ssh    

touch /home/git/.ssh/authorized_keys

vi /home/git/.ssh/authorized_keys

里面内容填本机里得对应用户目录下的.ssh/id_rsa.pub的内容

配置完可以ssh登陆一下

配置仓库

可以在/home/git/下新建一个blog.git文件夹,用于建立git仓库

git init --bare blog.git

建立钩子(本地部署到服务器会执行)

vi ~/blog.git/hooks/post-receive

填入以下内容,work-tree是网站目录,git-dir是git仓库目录

git --work-tree=/home/git/hexo --git-dir=/home/git/blog.git checkout -f

建立hexo文件夹

mkdir /home/git/hexo

将git文件夹所有者更改为git用户,并将用户目录权限改为775,即允许git用户写入

1
2
chown -R git:git git	//权限问题可能会是报错的主要原因
chmod -R git 775

配置网站根目录

nginx -t //查看nginx配置文件位置

cat /www/server/nginx/conf/nginx.conf

没有发现有和网站相关的,但是发现了包含了文件

cd /www/server/panel/vhost/nginx/
ls

发现都是网站的配置文件,我用宝塔一键创建的网站(不知道为啥源码不能放在/www/wwwroot下),所以里面有网站.conf

1
2
3
4
5
6
7
8
server
{
listen 80;
listen [::]:80;
server_name 你的服务器地址;
index index.php index.html index.htm default.php default.htm default.html;
root /home/git/hexo;
....

宝塔可以一键修改目录

部署

更改本地_config.yml文件

1
2
3
4
deploy:
type: git
repo:
aliyun: git@你的服务器地址:/home/git/blog.git,master

然后
hexo g
hexo d

还要手动运行一下之前设置那个钩子,用宝塔创建可能会生成.user.ini文件,可能会干扰,建议删除

就可以部署到/home/git/hexo文件夹里了