hexo部署到centos服务器


将hexo部署到服务器

系统centos 7.6 64bit

环境 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

按 i 键进入文件的编辑模式,按向下键找到如下字段

root    ALL=(ALL)       ALL

在其后面增加一句:

git     ALL=(ALL)       ALL

按 Esc 键退出编辑模式,输入:wq 保存退出。(先输入:,然后输入wq回车)

3.退回权限

chmod 400 /etc/sudoers  

配置密钥

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

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

su git
mkdir ~/.ssh

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

vim ~/.ssh/authorized_keys

按i进入编辑模式粘贴完按 Esc 键退出编辑模式,输入:wq 保存退出。(先输入:,然后输入wq回车)

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 root

2.创建网站的根目录

mkdir /home/hexo

3给予权限

chown git:git -R /home/hexo

安装Nginx

1.安装配置Nginx

安装Nginx

yum install -y nginx

配置Nginx

nginx -t

使用vim打开nginx.conf文件

vim /etc/nginx/nginx.conf

按i进入编辑模式粘贴完按 Esc 键退出编辑模式,输入:wq 保存退出。(先输入:,然后输入wq回车)

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 root

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

按 i 键进入文件的编辑模式,在该文件中添加两行代码(将下边的代码粘贴进去),指定 Git 的工作树(源代码)和 Git 目录

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

按 Esc 键退出编辑模式,输入:wq 保存退出。(先输入:,然后输入wq回车)

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

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

配置本地Hexo

1.博客根目录_config下增加

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

2.部署

hexo clean
hexo g
hexo d

输入hexo d的时候,会要求你输入自己的服务器密码

Branch 'master' set up to track remote branch 'master' from 'https://e.coding.net/godxiaolon/godxiaolon.git'.
On branch master
nothing to commit, working tree clean
root@119.25.56.82's password:
Enumerating objects: 182, done.
Counting objects: 100% (182/182), done.
Delta compression using up to 12 threads
Compressing objects: 100% (61/61), done.
Writing objects: 100% (95/95), 73.08 KiB | 3.18 MiB/s, done.
Total 95 (delta 45), reused 0 (delta 0)
remote: hooks/post-receive: line 1: t: command not found
To 118.25.27.52:/home/git/hexoBlog.git
   8df3691..7d63b39  HEAD -> master
Branch 'master' set up to track remote branch 'master' from 'root@118.25.27.52:/home/git/hexoBlog.git'.
INFO  Deploy done: git

输入密码不会有显示,输完回车就可以

3.如果出现bash: git-receive-pack: command not found,则运行:

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

4.访问服务器ip,看看有没有成功

5.补充

在同一个服务器第二次部署hexo时要将C盘.ssh文件夹中kown_host中服务器主机记录删掉否则会报错两次信息不同。


文章作者: 不染轻裳
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 不染轻裳 !
评论
 上一篇

阅读全文

文摘
文摘 文摘
世界上第一位百万富翁洛克菲勒对他儿子说我不相信天赐的好运气,但我靠规划平步青云。生活没有一夜暴富的美梦,也不必最好的年纪委屈自己,更多我们是要分清想要和必要,在合理的规划中行止由心得偿所愿。 2020.10.24 时也命也运也,天有不测风
2020-10-24
下一篇 

阅读全文

matery主题优化
matery主题优化 matery主题优化
matery主题的优化: 这一部分是我花的时间最长,但是为了把网站做的好很值,通过这一步也更好的了解了hexo的运行方式。这部分将只包括我选用的功能,试了好多,有些功能很鸡肋或者不是很好看。被我抛弃了。 1.matery主题下
2020-10-24
  目录