原文地址(转载请注明来源):http://www.qiaojintao.top/2020/04/23/myblogs_construction/
博客的搭建如果有Linux的相关基础知识,搭建起来可能会更加省时省力!
小提示:
- Linux中在编辑配置文件时,vim 文件名->按i键即可编辑,退出时先按ESC->然后按shift+:(冒号键)->输入wq回车即可保存退出
- 阿里云ECS选择操作系统镜像时,我这里采用的时Centos7.5版本,切记不要选择最新版,我在第一次搭建时的系统镜像为Centos8.3版本,由于系统版本过高,然后会导致nginx服务无法编译安装这是一个大坑,不要去踩
- 安装好的主题及myblogs下的文件可以备份一份,以免出现问题后方便恢复到原来的状态
-
【Hexo博客】搭建准备
-
首先呢,你自己得有一台电脑,这没的说
-
其次需要一个FTP工具,我这里使用的是WinScp
下载地址:https://winscp.net/eng/docs/lang:chs
-
然后你要有足够的耐心,建造过程中各种错误,可能会让你觉得困难重重,但是记得坚持,我的博客的搭建也是在网上看文档搭建的,各种坑都踩过,文章中我会把我遇到过的坑都列举出来。
-
-
【Hexo博客】搭建步骤
2.1、在本地计算机安装Hexo环境
首先需要说明的是:我本地使用的是Win10(64位)操作系统。更权威的安装过程可以参照Hexo官方主页。
2.1 安装Node.js
去Node.js官网下载Windows (x64)长期支持版 Long Term Support (LTS) schedule。按提示逐步安装即可,安装完成后打开cmd查看版本号验证是否安装成功。(下载最新版即可)
C:\Users\tangcl> node -v v12.13.1
Node.js中自带了npm包管理工具,在cmd中查看npm版本。
C:\Users\tangcl> npm -v 6.12.1
显示版本号即为安装成功!
2.2 安装Git
git是一个版本控制工具,国外镜像下载巨慢,建议前往淘宝 Git for Windows 镜像下载 git 安装包。按提示逐步安装即可,安装完成后右键菜单中出现Git Bash Here和Git GUI Here菜单表明安装成功,如下图所示。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dHcmTj5N-1587718832495)(http://www.qiaojintao.top/images/4-23-1.png)]
2.3 安装Hexo
在D盘新建MyHexoBlog文件夹用来存放个人博客,进入该文件夹,右键打开Git Bash Here,使用 npm 安装 Hexo。
注意:安装时的命令不需要 , 只 需 要 在 G i t B a s h H e r e 打 开 的 终 端 运 行 ,只需要在Git Bash Here打开的终端运行 ,只需要在GitBashHere打开的终端运行后面的命令即可!
$ npm install -g hexo-cli
安装好的界面如图所示:
Hexo安装完成后,在MyHexoBlog文件夹下新建myblogs项目,并对其进行初始化。
$ hexo init myblogs $ cd myblogs $ npm install
安装完成后会有发现有以下目录结构
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dmLDFQjZ-1587718832501)(http://www.qiaojintao.top/images/4-23-3.png)]
在myblogs文件夹下启动hexo服务。
$ hexo server
此时在本地打开浏览器,通过 http://localhost:4000/ 便可访问基于Hexo的个人博客主页了。如下图所示:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-qXlMgLoe-1587718832503)(http://www.qiaojintao.top/images/4-23-4.png)]
-
【Hexo博客】服务端准备工作
3.1 域名注册
一个正常的网站都是有域名的,我这里是在阿里云买的域名,
友情提示:服务器的购买和域名最好都在同一个平台,以后的操作会方便很多!
3.2购买阿里云ECS服务器
阿里的云服务产品有很多种,如阿里云主机、ECS服务器等。我这里购买的是阿里云ECS服务器。所谓ECS,即弹性计算服务。
进入阿里云官网的ECS专区购买即可。 (有学生认证的话会有优惠,选择入门级配置即可,有矿的可自行抉择)
3.3 ECS服务器备案
备案需要有服务器和域名。
国家法律规定,使用中国大陆境内服务器托管你的网站时,你必须对你的网站进行备案申请。当你使用阿里云中国大陆境内节点的服务器时,你可以直接在阿里云备案管理系统中提交ICP备案申请。
3.4阿里云服务器设置
服务器的设置在阿里云购买的的过程中实际上有些已经完成了,包括root用户的密码创建,这个需要你牢记,因为是后期服务器远程登陆的依据,其他的不多叙述。需要注意的是设置完其他程序之后,你需要给服务器配置安全策略,添加80端口,能够让我们在公网上访问。
-
【Hexo博客】Hexo博客的阿里云部署
该步骤是整个博客搭建过程中最重要的一步,实现过程中一定要注意是在服务端操作还是在本地计算机上操作。若在服务器上操作,还要注意是使用root用户进行操作还是使用git用户进行操作。
4.1 安装nginx
因为我们用nginx作Web服务器,所以我们需要先安装nginx服务。具体步骤如下:
使用root用户远程登录阿里云服务器,使用yum命令进行安装。
a. 安装nginx依赖环境,安装期间有提示一律选yes。
#yum install gcc-c++ #yum install -y pcre pcre-devel #yum install -y zlib zlib-devel #yum install -y openssl openssl-devel
b. 下载nginx安装包。
#wget -c https://nginx.org/download/nginx-1.10.1.tar.gz
c. 将安装包解压到/usr/local目录下。
#tar -xvf nginx-1.10.1.tar.gz -C /usr/local
d. 进入/usr/local目录,确认nginx解压到该目录下。
#cd /usr/local #ls
e. 进入nginx-1.10.1目录,会发现该目录下有一个configure文件,执行该配置文件。
#cd nginx-1.10.1/ #ls #./configure
f. 编译并安装nginx。
#make #make install
g. 查找nginx安装目录。
#whereis nginx
h.进入安装目录。
#cd /usr/local/nginx #ls
i. 由于nginx默认通过80端口访问,而Linux默认情况下不会开发该端口号,因此需要开放linux的80端口供外部访问。
#sbin/iptables -I INPUT -p tcp –dport 80 -j ACCEPT
j. 进入/usr/local/nginx/sbin目录,启动nginx。
#cd sbin #./nginx
没有任何消息,代表启动成功。此时,便可以通过“公网IP+端口”的方式访问 http://xx.xx.xxx.xxx:80/ 进入nginx欢迎页面了。 注:可以使用./nginx -s stop命令停止服务
4.2 配置nginx服务器路由
a. 专门为hexo创建一个部署目录/home/www/hexo。
#mkdir -p /home/www/hexo
b. 进入/usr/local/nginx/conf目录,打开该文件夹下的nginx.conf配置文件。
#cd /usr/local/nginx/conf #ls #vim nginx.conf
进入后按i键由命令模式切换到编辑模式。 + 将其中的部署根目录(root)修改为/home/www/hexo; + 将域名(server_name)修改为http://www.atangbiji.com,如果暂时没有域名就填阿里云实例的公网ip,以后有了再改回来; + 查看监听端口(listen)的系统默认值是否为80(不用修改)。
完成以上修改后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。
4.3 安装node.js
a. 退回根目录,安装node.js。
#cd ~ #curl -sL https://rpm.nodesource.com/setup_10.x | bash - #yum install -y nodejs
b. 查看安装结果,打印版本号即为安装成功。
#node -v #npm -v
4.4 安装Git
a. 使用yum命令安装Git,安装期间有提示一律选yes。
#yum install git
b. 安装成功后,查看版本号。
#git --version
4.5 创建git用户
为了实现博客的自动部署,我们后面要使用公钥免密登录服务器。为了安全起见,最好不要使用root用户免密登录。因此,我们要创建一个新的git用户,用于远程公钥免密登录服务器。
a. 创建git用户。
#adduser git
b. 修改git用户的权限。
#chmod 740 /etc/sudoers
c. 打开文件。
#vim /etc/sudoers
进入后按i键由命令模式切换到编辑模式。找到 root ALL=(ALL) ALL,在下面添加一行 git ALL=(ALL) ALL。修改完成后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。
d. 保存退出后改回权限。
#chmod 400 /etc/sudoers
e. 设置git用户的密码。
#sudo passwd git
设置密码:**,这样我们就可以使用git用户远程登录阿里云服务器了。
4.6 ★ 给git用户配置ssh免密公钥登录
该步骤是基于Hexo搭建个人博客的核心步骤,也是坑我时间最长的地方。它既需要在本地计算机上操作,也需要在服务器上进行操作,新手一定要搞清原理才不会弄错。
使用***git***用户免密公钥登录阿里云服务器的原理是:在本地计算机生成一个公钥文件和一个秘钥文件(类似于一个钥匙配一把锁),然后使用FTP工具将公钥文件上传到阿里云服务器,并公钥安装到authorized_keys列表中去(即:将公钥文件的内容拷贝到authorized_keys文件中去)。这样本地计算机便可以通过ssh方式免密连接我们的阿里云服务器了。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gSQb8H7L-1587718832507)(http://www.qiaojintao.top/images/4-23-6.png)]
具体操作步骤如下:
a. 在服务器端将登陆用户切换到git用户,然后在~目录(根目录)下创建.ssh文件夹,用来存放公钥。
#su git $cd ~ $mkdir .ssh
b. 在本地计算机桌面右键打开GitBash,在本地生成公钥/私钥对。
$cd ~ $cd .ssh $ssh-keygen
接下来,碰见系统询问就直接按回车键。此时便会在本地计算机的用户根目录(C:\Users\tangcl)下自动生成.ssh(隐藏)文件夹,并在其中创建两个文件,分别为:id_rsa(私钥)和id_rsa.pub(公钥)。
c. 在本地计算机上给私钥设置权限。
$ chmod 700 ~/.ssh $ chmod 600 ~/.ssh/id_rsa
d. 下载并安装FTP工具,我这里用的是阿里云官方提供的FileZilla(Windows版本)。
e. 打开FileZilla,使用git用户通过22端口远程连接到阿里云服务器,将客服端生成的公钥上传到服务器的~/.ssh目录下。
f. 上传完成后切回服务器端,继续以git用户的身份进入服务器~/.ssh目录,新建一个authorized_keys文件,并将id_rsa.pub文件中公钥的内容拷贝到该文件中。 (注:该步骤既可以用命令行操作,也可使用FTP工具操作。)
$cd ~/.ssh $cp id_ras.pub authorized_keys $cat id_ras.pub >> ~/.ssh/authorized_keys
g. 在服务器上设置文件权限:
$chmod 600 ~/.ssh/authorized_keys $chmod 700 ~/.ssh
h. 确保设置了正确的SELinux上下文。
$ restorecon -Rv ~/.ssh
没有报错即为成功
现在,当您使用ssh远程登录服务器时,将不会提示您输入密码(除非您在创建密钥对时输入了密码)。
i. 接下来在本地计算机上使用ssh方式连接我们的云服务器。
$ssh -v git@xxx.xxx.xxx.xxx(阿里云公网IP)
或
$ssh git@xxx.xxx.xxx.xxx(阿里云公网IP)
4.7 配置Git仓库
a. 在服务器上使用git用户创建一个Git仓库,并且在该仓库中新建一个post-receive钩子文件。
$cd ~ $git init --bare hexo.git $vi ~/hexo.git/hooks/post-receive
b. 进入后按i键由命令模式切换到编辑模式。输入: git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f
即:让钩子文件删除/home/www/hexo目录下原有的文件,然后从blog.git仓库 clone 新的博客静态文件到/home/www/hexo目录下。
完成以上修改后,先按Esc由编辑模式切换到命令模式,再输入:wq命令保存并退出编辑器。
c. 授予钩子文件可执行权限。
$chmod +x ~/hexo.git/hooks/post-receive $cd ~ $sudo chmod -R 777 /home/www/hexo
d. 重启ECS服务器实例。
至此我们就完成了所有关于服务器端的配置。
-
【Hexo博客】其它配置
5.1 客服端hexo配置
a. 在本地计算机hexo的工程目录下,找到_config.yml,对deploy参数进行修改,如下图所示。
deploy: type: git repo: git@公网ip:/home/git/hexo.git branch: master
b. 在本地计算机安装插件: hexo-deployer-git 和 hexo-server。在myblogs文件夹下右键打开GitBash,输入以下命令:
$npm install hexo-deployer-git --save $npm install hexo-server
这俩插件的作用分别是使用Git自动部署,和hexo本地简单的服务器。
c. 在本地计算机配置Git全局变量。 输入以下命令:注意user.name 后面的用户名引号为中文状态,其他一般都为英文!
$ git config --global user.email "xxxxxxxxxx@qq.com" $ git config --global user.name “tangcl”
d. 使用Hexo生成、发布个人博客。
$ hexo clean $ hexo generate $ hexo deploy
此时,便可以通过浏览器访问http://xxx.xxx.xxx.xxx:80/ 进入hexo我的博客主页了。
-
【Hexo博客】结语
在配置过程中,可能会遇到各种各样的困难,但不要灰心,别人能做出来,你也可以,学会去解决问题,这将是一个成长的过程!
$ git config --global user.name “tangcl”
d. 使用Hexo生成、发布个人博客。
```text
$ hexo clean
$ hexo generate
$ hexo deploy
此时,便可以通过浏览器访问http://xxx.xxx.xxx.xxx:80/ 进入hexo我的博客主页了。