部署hexo(二):服务器实例配置

前言

hexo 部署服务器的原理:将代码上传至 git 库 -> 触发 git push 钩子函数 -> 钩子函数将代码拷贝到 www 文件夹下


hexo-deploy-原理.jpg

连接远端服务器

ssh 用户名@ip

安装 git、node、nginx

  • 安装 git
yum install git

检测是否安装成功 git --version

  • 安装 nodejs
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs

检查是否安装成功 node -vnpm -v

  • 安装 nginx
yum install -y nginx

新建用户、git 仓库

新建用户
adduser git # 创建 git 用户
chmod 740 /etc/sudoers # 修改 git 用户的权限
vim /etc/sudoers # 打开文件

找到 root ALL=(ALL) ALL,在下面添加一行 git ALL=(ALL) ALL
保存退出后改回权限

chmod 400 /etc/sudoers

设置 git 用户密码

sudo passwd git

这样就可以使用 git 用户远程登录阿里云服务器了

为 hexo 创建部署目录
mkdir -p /var/www/hexo
新建 git 仓库
mkdir /var/repo
cd /var/repo
git init --bare blog.git

添加核心钩子函数

vim /var/repo/blog.git

输入

git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

然后授权钩子文件可执行权限,让它可以将文件拷贝到部署目录

chmod +x /var/repo/blog.git/hooks/post-receive
sudo chmod -R 777 /var/www/hexo

改变 blog.git 目录的拥有者为 git 用户(这一步是确保安全性)

chown -R git:git blog.git

配置 Nginx

/etc/nginx/nginx.conf 配置(保持默认配置)

 server {
        listen       80;
        server_name  _;
        root         /var/www/hexo;

        # Load configuration files for the default server block.
        include /etc/nginx/default.d/*.conf; #这句是重点

        location / {
        }

        error_page 404 /404.html;
            location = /40x.html {
        }

        error_page 500 502 503 504 /50x.html;
            location = /50x.html {
        }
    }

/etc/nginx/conf.d下新建 hexo.conf,并添加配置

server {
    listen         80;
    root /var/www/hexo;
    server_name *.xxx.com;
    access_log  /var/log/nginx/hexo_access.log;
    error_log   /var/log/nginx/hexo_error.log;
    location ~* ^.+\.(ico|gif|jpg|jpeg|png)$ {
            root /var/www/hexo;
            access_log   off;
            expires      30s;
    }
    location ~* ^.+\.(css|js|txt|xml|swf|wav)$ {
        root /var/www/hexo;
        access_log   off;
        expires      30s;
    }
    location / {
        root /var/www/hexo;
        if (-f $request_filename) {
            rewrite ^/(.*)$  /$1 break;
        }
    }
}

这里之所以重新创建一个 .conf 文件是因为一台机器上往往会有多个站点,每个站点都有一个单独的 conf 文件更方便维护,出错了也容易排查( nginx 经常一个配置出问题就全部罢工)讨论详情

启动nginx并设置开机自启

service nginx start
systemctl enable nginx

更改 nginx 文件并重启 nginx 服务,可以使用 niginx -s reload 命令

hexo 项目修改 _config.xml

deploy:
  - type: git
    repo: git@XXX:/var/repo/blog.git
    branch: master
    message: "commit_message"

执行 hexo deploy 即可发布到服务器
注意:hexo deploy要在 git bash下执行,否则会报错

hexo-deploy-报错.png

如果用 git bash 依旧部署依旧报错,且本机可以通过 ssh 连上远端服务器,首先考虑是不是 .deploy_git 缓存导致的,先清除 .deploy_git 和 node_modules 再尝试。

常见问题

部署后访问网站,网站报错”拒绝连接“,查看是不是 nginx 出了问题。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容