最新公告
  • 欢迎您光临起源地模板网,本站秉承服务宗旨 履行“站长”责任,销售只是起点 服务永无止境!立即加入钻石VIP
  • Hexo 博客部署到私有云服务器

    正文概述 掘金(i前端民工)   2021-07-03   483

    前言

    喜欢分享是程序员的天性,所以大部分的程序员都会有一个自己的博客,里面的内容可以是一些工作中遇到的问题和解决思路,也可以是最近学习到的新技术的总结,也可以是对生活的思考和感悟。搭建个人博客的方式也有很多,可以直接在第三方博客平台上写作,如掘金、博客园、CSDN 等等,也可以使用 hexo 搭建博客部署到 github pages,当然如果拥有私有云服务器的还可以在上面借助 wordpress 博客系统搭建一个博客。本文要介绍的是使用 hexo 搭建博客,但是部署到私有云服务器。

    准备工作

    本文重点介绍的是将博客部署到私有云服务器上,所以一些准备工作默认是已经做好了。具体包括以下几点:

    • 一台已经安装Nginx的私有云服务器,安装 Nginx 推荐使用军哥的LNMP一键安装包
    • 一个博客域名:如果服务器是国外购买的,域名就不需要工信部备案,如果服务器是在阿里云/腾讯云等平台购买的,则域名需要工信部备案。并将域名解析到私有云服务器。
    • 本地已经安装node.js、hexo博客环境、git

    部署步骤

    搭建git仓库

    新建git用户并设置密码
    adduser git
    passwd git
    

    修改权限

    chmod 740 /etc/sudoers
    vim /etc/sudoers
    

    找到root ALL=(ALL) ALL并在其下面添加

    git     ALL=(ALL)       ALL
    

    保存后改回sudoer权限:

    chmod 400 /etc/sudoers
    
    创建免密登陆证书

    在服务器中打开RSA认证

    vim /etc/ssh/sshd_config
    

    找到以下三项并开启,若没有找到则添加

    RSAAuthentication yes
    PubkeyAuthentication yes
    AuthorizedKeysFile  .ssh/authorized_keys
    

    切换到git用户并开始配置ssh

    su git
    cd ~
    mkdir .ssh && chmod 700 .ssh
    

    接着,要为git用户里的.ssh添加开发者公钥,以便免密向git仓库推送数据。

    在本地电脑通过 C盘用户目录/.ssh/id_rsa.pub找到ssh的公钥,在服务端.ssh里新建authorized_keys文件并将其复制到里面。

    注意:公钥在authorized_keys文件中是一行添加一个

    touch /home/git/.ssh/authorized_keys
    sudo chmod 600 /home/git/.ssh/authorized_keys
    vim /home/git/.ssh/authorized_keys
    

    若之前未有上传文件至github等仓库的经历,本地客户端无ssh的keys,则要先生成一下。

    修改git用户权限

    给git用户设置权限,限制其只能使用git-shell向git仓库push或pull等,而不能登陆机器并取得普通shell命令控制系统。

    使用which git-shell判断是否安装了git-shell。如果未安装,则yum install git 判断shells文件路径是否存在:cat /etc/shells,如果shells文件不存在或者文件中没有/usr/bin/git-shell,则

    sudo vim /etc/shells
    

    在最下面添加

    /usr/bin/git-shell
    
    创建仓库

    在/var/repo创建空仓库(切换为root用户)

    mkdir /var/repo
    cd /var/repo
    git init --bare blog.git
    

    配置git hooks使得在仓库更新的时候,nginx配置文件中root指向的目录同步更新(这里root指向的是/home/wwwroot/www.blogdomain.com/)

    vim /var/repo/blog.git/hooks/post-receive
    

    添加

    #!/bin/sh
    git --work-tree=/home/wwwroot/www.blogdomain.com/ --git-dir=/var/repo/blog.git checkout -f
    /home/wwwroot/www.blogdomain.com/
    chmod -R 777 *
    

    保存退出并设置权限

    chmod +x /var/repo/blog.git/hooks/post-receive
    

    更改blog.git拥有者

    sudo chown -R git:git blog.git
    
    使用chsh命令修改任意系统用户的shell权限
    sudo chsh git
    

    在 Login Shell [/bin/bash]后输入:

    /usr/bin/git-shell
    

    修改完后验证cat /etc/passwd是否以git-shell结尾,例如:

    git:x:1003:1003:,,,:/home/git:/usr/bin/git-shell
    

    修改后,在本地客户端使用ssh git@serverip登陆将被拒绝(第一次登陆该网址会提示continue connecting,输入yes):

    $ ssh git@gitserver
    fatal: Interactive git shell is not enabled.
    hint: ~/git-shell-commands should exist and have read and execute access.
    Connection to gitserver closed.
    
    git测试

    完成上述步骤后,通过测试判断git服务器是否部署成功,在本地客户端执行

    git clone git@serverip:/var/repo/blog.git
    

    如果远程服务器禁用22端口登陆,则可以使用如下语句:

    git clone ssh://git@serverip:port/var/repo/blog.git
    

    输入密码后(如果秘钥配置成功则不用输入密码)若blog.git中没有内容将会提示:

    ···
    git@serverip`s password:
    warning: You appear to have cloned an empty repository
    

    Nginx 配置

    本文假定你是使用了 lnmp 一键安装包,可使用以下命令将博客域名添加到虚拟主机:

    lnmp vhost add
    

    具体选项可按需要选择配置:

    Hexo 博客部署到私有云服务器

    最后回车,即可完成虚拟主机的添加。

    hexo 本地配置

    在本地hexo博客根目录修改_config.yml文件

    # Deployment
    ## Docs: https://hexo.io/docs/deployment.html
    deploy:
      type: git
      repo:
            vps:    git@serverip:/var/repo/blog.git
      branch: master
    

    将博客部署到私有云服务器

    在 hexo 博客根目录依次执行以下命令即可:

    hexo clean
    hexo g
    hexo d
    

    到这里就完成了hexo博客的配置和部署了,在浏览器输入域名(文章中示例用的是 www.blogdomain.com ) 即可访问博客了。


    起源地下载网 » Hexo 博客部署到私有云服务器

    常见问题FAQ

    免费下载或者VIP会员专享资源能否直接商用?
    本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
    提示下载完但解压或打开不了?
    最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器下载的bug,建议用百度网盘软件或迅雷下载。若排除这种情况,可在对应资源底部留言,或 联络我们.。
    找不到素材资源介绍文章里的示例图片?
    对于PPT,KEY,Mockups,APP,网页模版等类型的素材,文章内用于介绍的图片通常并不包含在对应可供下载素材包内。这些相关商业图片需另外购买,且本站不负责(也没有办法)找到出处。 同样地一些字体文件也是这种情况,但部分素材会在素材包内有一份字体下载链接清单。
    模板不会安装或需要功能定制以及二次开发?
    请QQ联系我们

    发表评论

    还没有评论,快来抢沙发吧!

    如需帝国cms功能定制以及二次开发请联系我们

    联系作者

    请选择支付方式

    ×
    迅虎支付宝
    迅虎微信
    支付宝当面付
    余额支付
    ×
    微信扫码支付 0 元