美文网首页
hexo + nginx 搭建个人博客

hexo + nginx 搭建个人博客

作者: iamdev | 来源:发表于2019-06-12 22:45 被阅读0次

    1.安装hexo

    参考官方安装文档https://hexo.io/zh-cn/docs/

    2.选择一套自己喜欢的主题

    github搜索hexo themes

    或者在hexo的主题官网上查看

    3.开始写作

    hexo new article-name

    4.搭建git服务器

    #创建git用户
    useradd git
    #给git用户设置密码,或者在git用户的.ssh目录的authorized_keys文件里面添加自己的公钥
    passwd git
    #切换到git用户
    su git
    #创建一个文件夹存放git的代码
    cd ~;mkdir git/project/blog.git
    #初始化git仓库
    cd ~/git/project/blog.git
    git init --bare
    #回到本地仓库
    git init
    git add .
    git commit -m 'initial commit'
    #这里的gitserver就是你的git服务器的ip或者域名
    git remote add origin git@gitserver:~/git/project/blog.git
    git push -u origin master
    

    5.部署网站

    #在服务器选择一个放置网站的目录,假设这个目录为/var/www/blog
    mkdir -p /var/www/blog
    cd /var/www/blog
    git clone ~/git/project/blog.git
    #安装npm的依赖
    npm install
    #生成静态文件
    hexo generate
    

    6.自动部署

    git 有个功能叫做hook,也就是说在我们提交代码的时候会触发一些操作,这就是hook
    Git的挂钩(Hook)主要包含:

    applypatch-msg
    post-update
    pre-rebase
    commit-msg
    pre-applypatch
    update
    post-commit
    pre-commit
    post-receive
    prepare-commit-msg

    我们要用到的是post-update这个hook
    进入到我们的git服务器的文件夹~/git/project/blog.git
    进入到hook文件夹
    使用ls命令可以看到许多hook脚本的sample

    hooks]$ ls
    applypatch-msg.sample  pre-applypatch.sample      pre-rebase.sample
    commit-msg.sample      pre-commit.sample          update.sample           prepare-commit-msg.sample
    post-update.sample     pre-push.sample
    

    新建一个post-update脚本
    输入以下命令

    #!/bin/sh
    cd /var/www/blog
    env -i git pull
    hexo generate
    

    保存退出,chmod +x post-receive.

    7.配置nginx

    编辑nginx的配置文件/etc/nginx/conf.d/default.conf

    server {

    ​ server_name your_server_name;

    ​ #charset koi8-r;

    ​ #access_log /var/log/nginx/host.access.log main;

    ​ location / {

    ​ root /var/www/blog/public;

    这里主要修改server_name为你的域名
    修改root目录为hexo静态文件的目录,以上面目录举例/var/www/blog/public
    要注意nginx需要有该目录的文件读取权限

    8.配置nginx ssl

    安装certbot工具帮我们签发证书

    yum install certbot python2-certbot-nginx
    #certbot自动配置nginx证书,按照提示配置即可
    certbot --nginx
    #cron job 自动更新证书
    systemctl start crond
    crontab -e
    0 0,12 * * * python -c 'import random; import time; time.sleep(random.random() * 3600)' && certbot renew
    crontab -l 
    

    相关文章

      网友评论

          本文标题:hexo + nginx 搭建个人博客

          本文链接:https://www.haomeiwen.com/subject/vzcdfctx.html