前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >从零搭建Hexo博客并部署腾讯云服务器

从零搭建Hexo博客并部署腾讯云服务器

原创
作者头像
用户7978588
修改2020-12-21 11:13:17
2.2K0
修改2020-12-21 11:13:17
举报
文章被收录于专栏:个人博客搭建个人博客搭建

腾讯云服务器已经买了好一阵子了,拖延到现在才搭博客,参考各个社区里挺多教程,最后选择使用Hexo来作为自己的博客框架,好处是不用自己造轮子,而且有很多漂亮的主题可以拿来用。今天上午把搭博客过程做个小结,希望对有想法要做自己的博客的同学们有一些帮助。

一、云服务器和域名的购买

  • 云服务器

服务器我选择的是腾讯云这边的,双十一88块一年,一核两G内存50G云硬盘,这配置实话实说不咋行但搭个个人博客够用了,反正一天也没几个人会访问。阿里云价格也差不多,但今年它双十一的活动要拼团,身边没人一起买,遂放弃。

  • 域名

域名可以上万网自己找自己喜欢的,在这里要说的是,如果是国内的域名是要备案的,我还没买。

二、关于云服务器的操作

本人云服务器配置:1核 2GB 1Mbps**,系统装的**Centos7.5

1.配置**nginx**

nginx是一款轻量级的Web服务器/反向代理服务器以及电子邮件代理服务器,在BSD-like 协议下发行。其特点是占有内存少,并发能力强,nginx的并发能力在同类型的网页服务器中表现较好。

  • 1.安装**nginx**

我们需要nginx作为我们的服务器,所以我们首先要安装nginx。可以使用yum命令直接进行安装。 安装执行命令如下 yum install -y nginx 启动服务器: systemctl start nginx systemctl enable nginx 我们要记住的是/etc/nginx/nginx默认的配置路径,一会要用到。

  • 2.配置服务器路由

安装并启动服务器后,我们就完成了第一步,现在我们可以尝试使用自己的电脑去访问服务器的公网IP。可以发现,公网IP可以打开一个nginx的默认网页。这样,我们就成功了第一步。

但我们实际上是想要让这个地址指向我们的博客,而不是nginx的默认网址,这就需要我们去配置nginx的配置文件。很多关于centOS的资料都是说配置位于etc/nginx/conf.d/ 下的dafault.conf 这个配置文件,但腾讯云和阿里云默认的库下载的是fedora版本的nginx,我们应该配置的是位于 etc/nginx/ 下的 nginx.conf

打开/etc/nginx/目录下的nginx.conf文件 vi /etc/nginx/nginx.conf

用方向键下拉找到下图位置,然后修改配置。

按i键进入编辑模式,编辑完成后按Esc键退出编辑模式,依次按 :wq保存并退出,注意是先按:键,然后输入wq再按回车

代码语言:txt
复制
server {
        listen       80 default_server;
        listen       [::]:80 default_server;
        server_name  _;   #把server_name后面的_换为自己的域名,没有域名可以先填公网ip
        root         /home/hexo;       #root后面改为git仓库目录
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
​
    location / {
    }

  • 2.安装Git 安装Git及配置仓库 默认已经在本地电脑装了git并创建过ssh密钥,如果没有,就先找其他教程在本地创建个ssh密钥。这一部分主要目的是在云服务器上创建个git仓库,本地文件就可以通过git上传到云服务器的仓库中,并使用git的post-receive钩子将文件提交到仓库的同时同步到指定目录。这样我们就可以通过命令行方式将我们的博客推到服务器上。操作如下: 安装git: yum install git 配置git用户 adduser git 修改用户权限: chmod 740 /etc/sudoers vi /etc/sudoers 按向下键在文件中找到字段 root ALL=(ALL) ALL 按i进入编辑模式,在这一句下面加上一句 git ALL=(ALL) ALL

按Esc退出编辑,再按:wq回车保存退出后,然后将sudoers文件权限改回原样

chmod 400 /etc/sudoers

设置git用户的密码

sudo passwd git

注意git用户的密码要在root用户下修改,否则会提示权限不足。下面操作也是一样,要注意是在git用户还是root用户

切换到git用户,然后在~目录下创建.ssh文件夹

su git cd ~ mkdir .ssh cd .ssh

生成公钥密钥文件

ssh-keygen

此时在目录下就会有两个文件,分别是

id_rsa 和 id_rsa.pub

其中 id_rsa.pub 就是公钥文件,我们把它复制一份

cp id_rsa.pub authorized_keys

这样目录下就会有一个authorized_keys文件

然后我们修改它的权限

chmod 755 ~ chmod 700 ~/.ssh chmod 600 ~/.ssh/authorized_keys

这样我们就可以在自己的电脑上打开cmd,使用ssh方式连接我们的云服务器

ssh -v git@公网ip #@后面输入云服务器公网ip

输入密码,就能成功登录服务器

注:如果之前用ssh连接过该服务器且重装过系统,会报错ECDSA host key for [ip address] has changed and you have requested strict checking,这时要先清除known_hosts中保存的该服务器的公钥,再重新连接,会提示要不要继续连接,输入yes,就会在known_hosts中创建新公钥

接着我们创建一个git的仓库,并且新建一个post-receive文件,用来把提交到服务器仓库操作如下:

su root cd /home/git git init --bare blog.git #在/home/git下创建新仓库blog.git chown git:git -R blog.git #给予git用户权限

/home/hexo/blog.git 下,有一个自动生成的 hooks 文件夹,我们创建一个 post-receive钩子,把提交到/home/git/blog.git仓库里的文件同步到/home/hexo中。

cd blog.git/hooks vim post-receive

post-receive中输入

#!/bin/bash git --work-tree=/home/hexo --git-dir=/home/git/blog.git checkout -f

保存退出后授予该文件可执行权限

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

到这里我们关于服务器端的配置就完成啦。

三、关于本地主机的操作

  • 1.安装Node.js 官网下载Node.js 安装过程基本直接 下一步 就可以了。 安装完成后使用cmd查看是否安装成功 node -v ​ v14.15.2 ​ npm -v ​ 6.14.9

出现版本号说明安装成功

  • 2.安装Hexo 由于使用npm直接下载会有很多人遇到卡顿的问题(国外服务器),所以我们要做的第一步工作是将npm换成淘宝的服务器。 cmd输入下面的命令: npm config set registry https://registry.npm.taobao.org # 然后安装cnpm npm install -g cnpm --registry=https://registry.npm.taobao.org

接下来就直接安装 hexo

代码语言:txt
复制
  cnpm install -g hexo-cli

然后我们选一个目录用来初始化博客 例如D:/Blog

cmd输入:

代码语言:txt
复制
D:
  cd Blog
  hexo init

执行成功后安装两个插件

代码语言:txt
复制
npm install hexo-deployer-git --save
  npm install hexo-server

之后我们就可以在自己的本机上查看自己的博客了

代码语言:txt
复制
hexo g
hexo s

打开浏览器复制网址就能访问

  • 3.配置**_config.yml**完成服务器的部署 在刚才生成博客的目录下,找到_config.yml,打开它。

找到deploy 做如下配置,注意deploy:下面几行一定要缩进两格

代码语言:txt
复制
  deploy:
    type: git
    repo: root@服务器仓库位置   #@后输入 服务器公网IP:/home/git/blog.git       
  branch: master                                                       

保存退出

服务器上重新运行nginx服务器 nginx -s reload

注意每次修改配置文件按后都要重启nginx使之生效

然后尝试写一篇文章并且发布到服务器上

代码语言:javascript
复制
  hexo new "Hello My First Blog"
  hexo clean && hexo generate --deploy

打开本地博客目录,会发现`deploy_git`目录下有了`Hello My First Blog`文件夹,里面是个简单的`index.html`文件。

在服务器的`home/hexo/2020/12/17`目录下可以发现也有个`Hello My First Blog`文件,这说明文件上传成功。

Hexo博客到这里就完成啦,快去用浏览器访问服务器公网ip看看是否成功。

接下来就可以改改主题美化下博客,愉快玩耍把。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、云服务器和域名的购买
  • 二、关于云服务器的操作
  • 本人云服务器配置:1核 2GB 1Mbps**,系统装的**Centos7.5
  • 1.配置**nginx**
  • 三、关于本地主机的操作
相关产品与服务
云服务器
云服务器(Cloud Virtual Machine,CVM)提供安全可靠的弹性计算服务。 您可以实时扩展或缩减计算资源,适应变化的业务需求,并只需按实际使用的资源计费。使用 CVM 可以极大降低您的软硬件采购成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档