喜迎
元旦

把hexo博客部署到服务器


使用的系统是Linux Centos7.6
环境 git nginx


git安装与配置

1. 安装依赖库和编译工具


 yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel

  Is this ok [y/d/N]:  

输入y继续安装,后面也是。

2. 安装编译工具:


  yum install gcc perl-ExtUtils-MakeMaker package 

下载 git并解压编译安装

1. 查看服务器已有的git版本


git --version

git version 1.8.3.1

2. 将陈旧版本的git删除


yum remove git 

3.选择一个目录来存放下载下来的 git 安装包。我这里选择了/usr/local/src 目录


cd /usr/local/src   

4. 下载最新版git到/usr/local/src,目前最新版本是2.26.0。


wget http://ftp.ntu.edu.tw/software/scm/git/git-2.26.0.tar.gz  

5. 解压到当前目录


tar -zvxf git-2.26.0.tar.gz 

6. 进入 git-2.26.0.tar.gz 目录下


cd git-2.26.0

7. 执行编译


make prefix=/usr/local/git all  

有点慢,耐心等待,去喝口水。

8.安装 git 到 /usr/local/git 目录下


make prefix=/usr/local/git install  

配置 git 环境变量

1.打开环境变量配置文件


vim /etc/profile  

按i键进入编辑模式,按向下键到底部,添加如下命令:


PATH=$PATH:/usr/local/git/bin   # git 的目录
export PATH  

添加完毕按esc退出,输入:wq保存编辑。(注意是先:再是wq)后面一样

2.使 git 环境变量生效


source /etc/profile

3.验证安装完成,查看 git 的版本号


git --version

git版本已经变成了:


git version 2.26.0
1

创建 git 用户

1.创建git用户


adduser git

2.获取权限


chmod 740 /etc/sudoers
vim /etc/sudoers

按向下键找到如下字段:


root    ALL=(ALL)       ALL

在后面增加如下字段:


git     ALL=(ALL)       ALL

3.退回权限


chmod 400 /etc/sudoers  

配置密钥

1.将密钥保存在服务器(之前有密钥的直接复制就可以)

将你电脑的id_rsa.pub文件里面的密钥复制,在服务器运行下面命令,创建.ssh文件夹


su git
mkdir ~/.ssh

创建.ssh/authorized_keys文件,打开authorized_keys文件并将刚才在本地电脑复制的内容拷贝其中并保存


vim ~/.ssh/authorized_keys

2.修改权限


chmod 755 ~
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

3.测试本地连接服务器

在本地电脑打开git bash here


//yourIp为远程服务器的ip地址
ssh -v git@yourIp  

连接成功显示如下:


git@vm_0_centos~

创建git仓库

1.切换到root用户,创建一个目录用于存储网站的根目录


su

2.创建网站的根目录


mkdir /home/hexo

3.给予权限


chown git:git -R /home/hexo

安装Nginx

1.安装配置Nginx


yum install -y nginx

配置Nginx:


nginx -t

使用vim打开nginx.conf文件:


vim /etc/nginx/nginx.conf

修改如下信息:


server { 
         listen     80 default_server;
         listen     [::]:80 default_server;
         server_name www.muyiio.com; //你的博客域名
         root /home/hexo; //git仓库目录
         # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf;
         location / {
         }
         j 
         error_page 404 /404.html;
         location = /40x.html {
         }
         error_page 500 502 503 504 /50x.html; location = /50x.html { } 
         }

2.启动Nginx


systemctl start nginx.service

3.重启Nginx


systemctl restart nginx.service

自动化部署

1.登录root账户


su

2.建立git仓库


cd /home/git
git init --bare blog.git

3.修改blog.git权限


chown git:git -R blog.git

4.在 /home/hexo/blog.git 下,有一个自动生成的 hooks 文件夹,创建一个新的 git 钩子 post-receive,用于自动部署。


vim blog.git/hooks/post-receive

将下边的代码粘贴进去,指定 Git 的工作树(源代码)和 Git 目录:


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

5.修改文件权限,使得其可执行。


chmod +x /home/git/blog.git/hooks/post-receive

修改本地hexo根目录配置文件

1.博客根目录_config下增加


- type: git
  repo: root@***(服务器ip,内网外网都行):/home/git/blog.git    #仓库地址
  branch: master    #分支

2.部署


 hexo clean&hexo g&hexo d

输入hexo d的时候,一会儿会要求你输入自己的服务器密码,输入密码不会有显示,输完回车就可以。

注意

如果出现bash: git-receive-pack: command not found,则到服务器运行:


sudo ln -s /usr/local/git/bin/git-receive-pack  /usr/bin/git-receive-pack

根目录配置文件最好使用上面的格式。


文章作者: Ming xin
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Ming xin !
评论
  目录