搭建自己的博客

原文链接 http://www.51vipdy.com/2018/07/10/%E9%98%BF%E9%87%8C%E4%BA%91%E4%B8%AD%E4%BD%BF%E7%94%A8Hexo/

介绍

很久之前就想搭建自己的博客,一直没有时间,又苦于自己没有服务器。所以这件事情一直放着。现在有时间学习后台的相关知识。捣腾了一台服务器。很多东西就可以慢慢的去实践。本来想用 JavaWeb 来实现的。但是发现很笨重。而且还需要搭建一些列的环境。而且国内使用这种方式的很少。 以以往选择框架的原则(社区活跃、稳定、可扩展性高)所以就选择了 Hexo 来搭建自己的博客。

基本原理

  • Hexo 将 Markdown 文件渲染成静态页面。
  • 将染的静态文件,通过 git 上传到自己的服务器。
  • 通过 git-hooks 自动同步上传的文件到部署的目录下。
  • 用户访问域名,通过 nginx 访问部署目录。

流程图:
[图片上传失败...(image-c658b8-1531209367513)]

服务端相关操作

  • 安装git
  sudo yum groupinstall “Development Tools”  //安装编译工具
  sudo yum install zlib-devel perl-ExtUtils-MakeMaker asciidoc xmlto openssl-devel 
  wget -O git.zip https://github.com/git/git/archive/master.zip //下载最新的Git代码 
  unzip git.zip  //解压代码
  cd git-master //切换目录
  yum install autoconf //安装自动配置软件工具
  autoconf //自动配置
  yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel   //安装编译依赖
  yum install  gcc perl-ExtUtils-MakeMaker //安装编译依赖
  ./configure //设置配置
  make && make install //编译安装
  ln -s /usr/local/bin/git /usr/bin/  //创建链接
  git --version // 测试git 是否安装成功  

  • 安装nginx
  sudo yum install epel-release   //安装epel
  rpm -ivh http://nginx.org/packages/centos/6/noarch/RPMS/nginx-release-centos-6-0.el6.ngx.noarch.rpm
  sudo yum install nginx        //安装nginx
  sudo /etc/init.d/nginx start  //启动nginx

  • 创建用户,更改用户密码
  adduser message 
  passwd  message

  • 将本地的公钥复制到服务器中
  1. 使用root身份在,在用户文件夹下面创建.ssh文件夹 > mkdir .ssh (服务器)
  2. 拷贝本机电脑的公钥 vi ~/.ssh/id_rsa.pub   (本地)
  3. 将拷贝后的内容复制到authorized_keysw文件中 vi authorized_keysw (服务器)
  4. 分配ssh文件夹权限给刚创建的用户 chown -R message:message .ssh(服务器)
  5. 测试步骤是否成功 ssh -v message@SERVER (本地)
  6. 关闭该用户使用bash命令 vi /etc/passwd  git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
  • 项目的初始化
   创建git空项目 git init --bare blog.git
   使用git钩子来同步项目  vi post-receive >git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f (hooks文件夹下面)
   将文件修改为可运行文件 chmod +x post-receive
   修改文件夹的所有者。chown -R message:message blog.git
   创建需要部署访问的文件夹 mkdir /var/www/hexo
   修改部署访问的文件夹的所有者 chown -R message:message /var/www/hexo

  • 配置 Nginx
    vi /etc/nginx/conf.d/default.conf
    server {
    listen       80;
    server_name  51vipdy.com; //自己服务器域名
    #access_log  /var/log/nginx/host.access.log  main;
    location / {
        root   /var/www/blog; //项目部署目录
        index  index.html index.htm;
    }
}

到现在,服务端的相关操作都已经完成了。 看起来操作的步骤非常的多。命令也非常的多。 但是原理却是很简单的。 就是在服务端创建一个用户叫做 message。 将本地电脑的公钥复制到刚才创建用户的 authorized_keysw 中。 (这样的话每一次 push 就不用输入密码了)。 在每一次的 push 操作,都会触发 git 的钩子。 钩子就会自动同步代码到部署项目中。

客户端相关操作

  • 安装 git
   brew install git
  • 安装 node
    wget -qO- https://raw.github.com/creationix/nvm/master/install.sh | sh
    安装完成后,重启终端并执行下列命令即可安装 Node.js。
    nvm install stable

  • 安装 Hexo
 npm install -g hexo-cli

  • 配置 Hexo , 修改 _config.yml 文件
    deploy:
    type: git
    repo: ssh://message@SERVER:/var/blog/blog.git
    branch: master
  • 测试 Hexo 是否配置成功
 hexo clean && hexo g && hexo d   //测试发布
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容