基于云服务器的hexo博客搭建(稳)

news2025/1/12 20:50:32

文章目录

  • 一、前置工具的准备
    • 域名购买及服务器购买
  • 二、搭建步骤
    • 1.配置服务器环境
    • 2.nginx 的配置
    • 4.git 及node.js安装
      • 1.安装node.js:
      • 2.安装Git及配置仓库
      • 1.安装git:
  • 5.本地主机配置(这里win+r ,cmd,打开命令行操作)
    • 1.安装node.js
    • 2.安装hexo
    • 3.配置_config.yml完成服务器的部署
  • 最后


在浏览并尝试诸多办法后,小编终于可以在自己的云服务器上部署自己的hexo博客了!很开心但同时也深感这类博客步骤的不完整给新手带来的痛苦,接下来,小编将讲述自己在2023年2月28日的最新搭建过程,以给后来者铺路。


一、前置工具的准备

域名购买及服务器购买

我们想要能够公网访问,主流方式就是购买域名和服务器,小编的域名和服务器都是在腾讯云购买的,但其实本质一样。
服务器我们可以选购2G 2核的,足够我们建站什么的,域名注册可以选取对于自己有意义的。
要注意的是我们购买域名后想要建站的话就需要 1、域名的备案、2、域名的dns解析到服务器上
备案完成后我们才可以通过域名来访问我们网站。

二、搭建步骤

1.配置服务器环境

因为hexo框架的博客主要是nginx环境,所以我们要在服务器上安装nginx。
首先进入我们服务器面板:(由于隐私什么的我就打个码哈)
在这里插入图片描述
点击登录
在这里插入图片描述
之后运行命令行,安装nginx:

yum install -y nginx

很快就安装好了
在这里插入图片描述
然后启动服务器:

systemctl start nginx
systemctl enable nginx

在这里插入图片描述
然后我们访问我们云服务器的公网ip,发现:
在这里插入图片描述
我们可以打开一个默认界面,但是我们实际上是想要让这个地址指向我们的博客,而不是nginx的默认网址,这就需要我们去配置nginx的配置文件。

2.nginx 的配置

对于nginx,我们首先要知道他在服务器上位于 etc/nginx/,然后我们要想能够通过域名访问服务器,就需要在nginx上安装我们申请的ssl证书(基本都是免费申请,安装即表示网站安全可靠),所以我们先把我们的证书安装至nginx。
寻找证书:
在这里插入图片描述
我们在域名解析界面,我这里ssl为绿色是已经申请了,腾讯云申请这个几分钟就好很快,其他的应该也差不多,点击ssl,查看我们证书,在部署文档里有个nginx服务器的文档:

在这里插入图片描述
点击这个蓝色链接,下载相对应的证书文件:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

之后将压缩包解压,我们这里需要注意.key文件和.crt文件
在这里插入图片描述
我们需要把这两个文件夹搞到我们云服务上,我这里用的是WinSCP,(大家如果会vscode的ssh,也可以用vscode),
winscp下载链接如下:
WinSCP下载
在这里插入图片描述
点击下载即可
在这里插入图片描述
这里主机名就是你的公网ip,用户名就是你服务器终端的用户名和密码,输入就能登陆。就是下图中的用户名和密码。
在这里插入图片描述
点击etc:

在这里插入图片描述
选择nginx文件夹:
在这里插入图片描述
点击conf.d文件夹
这里有的服务器可能没有可以参考这篇博客自己创建一个conf文件:
其他服务器参考

在这里插入图片描述
我们把刚刚的,key 文件和.crt文件拉入conf.d文件夹(直接在windows下拉到这里):
在这里插入图片描述
然后我们在命令行中:

输入命令:

cd /etc/nginx

进入这个nginx文件夹:
在这里插入图片描述
输入命令行:

ls

我们可以看到有个 conf.d 和 nginx.conf 的文件
在这里插入图片描述
在这里插入图片描述
先进入我们刚刚处理的conf.d文件夹中:

cd conf.d

在这里插入图片描述
是有我们刚刚拉进去的文件的,我们再手动创建一个myblog.conf文件来启动我们的ssl证书:

sudu vim myblog.conf

大家可以参照我这个写,害,前面的码感觉白打了

server {
     #SSL 访问端口号为 443
     listen 443 ssl; 
     #填写绑定证书的域名
     server_name www.cocount.top cocount.top; 
     #证书文件名称
     ssl_certificate conf.d/cocount.top_bundle.crt; 
     #私钥文件名称
     ssl_certificate_key conf.d/cocount.top.key; 
     ssl_session_timeout 5m;
     #请按照以下协议配置
     ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
     #请按照以下套件配置,配置加密套件,写法遵循 openssl 标准。
     ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:HIGH:!aNULL:!MD5:!RC4:!DHE; 
     ssl_prefer_server_ciphers on;
     location / {
        #网站主页路径。此路径仅供参考,具体请您按照实际目录操作。
         root /home/www/website; 
         index  index.html index.htm;
     }
 }

在这里插入图片描述
然后按esc键,输入

:wq

保存并退出
然后
在/etc/nginx/目录下创建一个文件夹 叫 vhost:

cd /etc/nginx
mkdir vhost
cd vhost
vim blog.conf

编辑 blog.conf文件内容:

server{
	listen    80;
	root /home/www/website;这里填博客目录存放的地址
	server_name 这里填域名如(www.baidu.com) 如果暂时没有域名就填阿里云的公网ip,以后有了再改回来;
	location /{
	}
}

保存并退出:

:wq

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

sudo vim nginx.conf

在这里添加:

include /etc/nginx/vhost/*.conf;

在这里插入图片描述

按i键插入,之后按esc键,输入:

:wq

保存并退出
在刚才我们自己写的blog.conf配置文件中root的路径相应路径建立博客的目录:

cd /home
mkdir www
cd /www
mkdir website

重启服务器:

sudo nginx -s reload

这样之后我们也可以通过域名访问了.

4.git 及node.js安装

1.安装node.js:

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

安装完成后执行 node -v 和 npm -v 如果打印版本号则安装成功
在这里插入图片描述

2.安装Git及配置仓库

这一部分主要目的是让我们个人的电脑可以通过ssh方式连接到云服务器,然后我们就可以通过命令行方式将我们的博客pull到服务器上。操作如下:

1.安装git:

(这里下载的界面较长就不一 一截图了)

yum install git

配置git用户:

adduser git

修改用户权限:

chmod 740 /etc/sudoers

修改:

sudo vim /etc/sudoers

找到此位置添加下面这句话
git ALL=(ALL) ALL
在这里插入图片描述

在这里插入图片描述
保存退出后 将sudoers文件权限改回原样

chmod 400 /etc/sudoers

设置git用户的密码:

sudo passwd git

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

su git
cd ~
mkdir .ssh
cd .ssh

在这里插入图片描述
生成公钥密钥文件:

ssh-keygen

这里直接三连enter键,直接跳过
在这里插入图片描述
此时在目录下就会有两个文件,分别是
id_rsa 和 id_rsa.pub
在这里插入图片描述
其中 id_rsa.pub 就是公钥文件 我们复制一份:

cp id_rsa.pub authorized_keys

在这里插入图片描述
这样目录下就会有一个authorized_keys文件,它和id_rsa.pub一模一样。
最后我们修改它的权限:

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

在这里插入图片描述

然后我们在自己的电脑上自己的电脑上自己的电脑上(重要的事说三遍),打开cmd,使用ssh方式连接我们的云服务器:
在这里插入图片描述
这里访问不成功的可以试着把之前的备份删除:
这样连接成功:
在这里插入图片描述
现在我们要创建一个git的仓库:

cd ~
git init --bare blog.git

在这里插入图片描述
之后我们打开blog.git文件夹:

cd hooks

发现有个pre-receive.sample,我们将其改名为pre-receive
(若没有,我们可以自己手动创建一个:

sudo vim pre-receive

)
下面这张图圈错了,其实是有pre-receive.sample 文件的,大家知道有这个东西就行:
在这里插入图片描述

mv pre-receive.sample pre-receive 

改名成功(这张也圈错了):
在这里插入图片描述
然后修改pre-receive文件,类似把他当作脚本,其功能为把我们后期在windows本地更新的东西,自动跟新到我们服务器上:

sudo vim pre-receive

输入以下内容:

git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f

在这里插入图片描述
保存退出并授予该文件可执行权限:

chmod +x pre-receive

至此我们就完成了所有关于服务器端的配置。

5.本地主机配置(这里win+r ,cmd,打开命令行操作)

1.安装node.js

下载地址:node.js
安装过程基本直接 下一步 就可以了。
安装完成后使用cmd查看是否安装成功

node -v
npm -v

出现版本号说明安装成功

2.安装hexo

由于使用npm直接下载会有很多人遇到卡顿的问题(国外服务器),所以我们要做的第一步工作是将npm换成淘宝的服务器。
cmd输入下面的命令:

npm config set registry https://registry.npm.taobao.org

然后下载hexo:

npm install -g hexo-cli

在这里插入图片描述

然后我们选一个目录用来初始化博客程序:(我这里d盘为例)

D:
cd Blog
hexo init

在这里插入图片描述

执行成功后安装两个插件:

npm install hexo-deployer-git --save
npm install hexo-server

在这里插入图片描述
之后我们就可以在自己的本机上查看自己的博客了

hexo g
hexo s

在这里插入图片描述

在这里插入图片描述

3.配置_config.yml完成服务器的部署

在刚才生成hexo的目录下,找到_config.yml,打开它。
在这里插入图片描述

找到deploy (在最下面)做如下配置:
在这里插入图片描述

deploy:
  type: git
  repo: git@这里改为服务器公网IP:/home/git/blog.git       
  branch: master                           
  message:                                  

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

hexo new "Hello My First Blog"
hexo clean && hexo generate --deploy

在服务器上重新运行nginx服务器:

sudo nginx -s reload

最后

完成部署后可以去Hexo主题下载自己喜欢的主题,美化博客。
现在去本地主机浏览器上输入域名或者公网IP,访问你的博客吧!
样例博客:
ZIKH26’s Blog

本文主要用到的参考链接:
关于从零搭建Hexo博客并部署阿里云服务器(奶妈级教学)
服务器部署网站后,公网ip可以访问,域名不能访问问题(稳)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/379585.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

c++11 标准模板(STL)(std::unordered_set)(十二)

定义于头文件 <unordered_set> template< class Key, class Hash std::hash<Key>, class KeyEqual std::equal_to<Key>, class Allocator std::allocator<Key> > class unordered_set;(1)(C11 起)namespace pmr { templ…

【计算机二级python】综合题目

计算机二级python真题 文章目录计算机二级python真题文本文件“红楼梦. txt”中包含了《红楼梦》小说前20章内容&#xff0c;“ 停用词. txt”包含了需要排除的词语。请修改模板&#xff0c;实现以下功能。‪‬‪‬‪‬‪‬‪‬‮‬‭‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‭‬‪…

【安卓】安卓设备实现wifi display解决方案

看文章前&#xff0c;我们需要知道的几个概念&#xff1a; 1、Wifi Direct技术&#xff1b; 2、Wifi Display技术&#xff1b; 3、Miracast标准&#xff1b; 安卓手机用户都知道我们的安卓手机有一个wifi直连功能&#xff0c;在点击设置–》WIFI–》更多Wifi设置–》Wifi直连&a…

回顾2-JAVA的标识符和关键词

JAVA的标识符和关键词 标识符概念: 所有地方都需要名称 如: 类的名字>类名 如:变量的名字,方法的名字,特殊关键词语的名字 这些符号就是一种标识, 涵盖一些意思 简单理解, 就是一种标记,识别,的符号关键词 这些词语, 在JAVA程序中, 被赋予了特殊的意义, 使用时候要避开同名…

编写SPI设备驱动程序

编写SPI设备驱动程序 文章目录编写SPI设备驱动程序参考资料&#xff1a;一、 SPI驱动程序框架二、 怎么编写SPI设备驱动程序2.1 编写设备树2.2 注册spi_driver2.3 怎么发起SPI传输2.3.1 接口函数2.3.2 函数解析致谢参考资料&#xff1a; 内核头文件&#xff1a;include\linux\s…

Python实现GWO智能灰狼优化算法优化BP神经网络回归模型(BP神经网络回归算法)项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档视频讲解&#xff09;&#xff0c;如需数据代码文档视频讲解可以直接到文章最后获取。1.项目背景灰狼优化算法(GWO)&#xff0c;由澳大利亚格里菲斯大学学者 Mirjalili 等人于2014年提出来的一种群智能优…

Shell高级——Linux中的文件描述符的本质(数组的下标)

以下内容源于C语言中文网的学习与整理&#xff0c;非原创&#xff0c;如有侵权请告知删除。 前言 Linux中一切接文件&#xff0c;比如 C 源文件、视频文件、Shell脚本、可执行文件等&#xff0c;就连键盘、显示器、鼠标等硬件设备也都是文件。 一个 Linux 进程可以打开成百上…

第15天-商城系统架构,首页渲染三级分类及搭建域名访问商城

1.商城系统介绍 1.1.技术方案 前后端分离服务端模板渲染&#xff08;选择&#xff09;商品详情页面静态化改造&#xff08;优化&#xff09; 1.2.动静分离架构 2.模板引擎Thymeleaf 2.1.Thymeleaf介绍 官方文档&#xff1a;https://www.thymeleaf.org/doc/tutorials/3.0/usin…

今天,小灰37岁了!

人们常常说&#xff0c;35岁是互联网人的中年危机。现在&#xff0c;小灰已经跨过了中年危机&#xff0c;倒不是因为小灰财务自由了&#xff0c;而是因为今天是小灰37岁的生日。年轻时候&#xff0c;小灰总觉得30岁是一个很遥远的年龄&#xff0c;而现在&#xff0c;小灰距离40…

KingbaseES V8R6 运维系列 --单机小版本升级

​ 案例说明&#xff1a; 在KingbaseES V8R6版本提供了sys_upgrade的升级工具&#xff0c; 本案例描述了KingbaseES V8R6单机环境下数据库的小版本升级操作&#xff0c;案例涉及的版本从‘(Kingbase) V008R006C005B0041’通过sys_upgrade升级到‘ (Kingbase) V008R006C005B0054…

【Java】Java进阶学习笔记(四)—— 抽象类与接口

【Java】Java进阶学习笔记&#xff08;四&#xff09;—— 抽象类与接口一、抽象类1、抽象类的概念抽象类的定义格式2、抽象类的注意点抽象方法的介绍3、抽象类的具体作用4、抽象类实例二、接口&#xff08;一&#xff09;、接口的概念1、接口与类的区别2、接口特性3、抽象类和…

MyBatis 查出数据不一致 MyBatis返回数据和数据库查询不一致

MyBatis 查出数据不一致 MyBatis返回数据和数据库查询不一致 --- MyBatis查询到的数据 和 Sql 查询到的数据不一致 一、背景 近期工作中&#xff0c;遇到一个MyBatis查询数据不一致的问题&#xff0c;表现是&#xff1a; sql在数据库中查询出10条数据&#xff0c;mybatis 返回的…

【服务器数据恢复】VSAN数据迁移中断导致容量盘故障的数据恢复案例

VSAN简介&#xff1a; VSAN是以vSphere内核为基础开发&#xff0c;可以扩展使用的分布式存储架构。该架构在vSphere集群主机中安硬盘及闪存构建VSAN存储层&#xff0c;通过存储进行管理与控制&#xff0c;最终形成一个共享存储层。 VSAN数据存储是一个对象存储&#xff0c;以文…

MySQL事务的12连问

事务的12连问&#xff0c;相信大家看完肯定会有帮助的。 1. 什么是数据库事务&#xff1f; 事务&#xff0c;由一个有限的数据库操作序列构成&#xff0c;这些操作要么全部执行,要么全部不执行&#xff0c;是一个不可分割的工作单位。 假如A转账给B 100 元&#xff0c;先从A的…

windows@系统环境变量备份@注册表操作@reg命令行操作注册表

文章目录备份注册表&#x1f388;备份环境变量powershell函数从注册表文件还原命令行操作注册表更新某个key备份注册表&#x1f388; 完整的注册表备份可能达到500MB打开register editor 命令行里可以输入regedit.exe打开 可以局部备份 备份环境变量powershell函数 function …

JavaEE进阶第五课:SpringBoot的创建和使用

上篇文章介绍了Bean 作用域和生命周期&#xff0c;这篇文章我们将会介绍SpringBoot的创建和使用 目录1.为什么要学习StringBoot1.1什么是SpringBoot1.2SpringBoot的优点2.如何用Idea创建SpringBoot项目3.项目目录介绍和运行3.1输入Helloworld结尾1.为什么要学习StringBoot 在前…

Python 算法交易实验49 Step1 DataETL

说明 万丈高楼平地起 按照前面的规划&#xff0c;开始有序推进我的【15% 资金加速器】计划。这一步是通过某个源&#xff0c;获取分钟级数据&#xff0c;然后送到第一个ADBS。 Sniffer : 读取数据并发送到入队列。一开始我会把文件以离线形式上传到某个folder&#xff0c;所以…

VMware16安装MacOS【详细教程】

安装VMware workstation 双击安装包&#xff0c;然后一直下一步就行了。 进行VMware安装&#xff0c;一直 下一步 在输入产品密钥这一步&#xff0c;如果有查找到可用密钥就填进去&#xff0c;没有就跳过&#xff0c;进入软件后也能输入密钥的。 输入密钥。 最后一步&#xff…

MyBatis——进阶操作

resultMap xml中可以通过returnType来指定返回的对象&#xff0c;只需要一个对象名就可以返回所有的属性 但是&#xff0c;如果sql中的属性名和对象的名称不一致&#xff0c;那么就需要resultMap来指定返回的数据了 当数据库中是username&#xff0c;而对象是name时&#xf…

zabbix主机发现、zabbix下的API、服务的监控部署

文章目录前言一、zabbix主机发现1.手动添加2.自动发现3.自动注册二、zabbix api1.获取token2.使用api检索主机3.通过api删除主机4.使用api添加主机5.纯代码过程三、服务监控1.nginx监控2.mysql监控&#xff08;1&#xff09;zabbix自带mysql模板&#xff08;2&#xff09;perco…