最近购买了阿里云的云服务器和域名,本身折腾搭建博客。在这里我把搭建的过程记录分享一下!node
浏览器进入NodeJS 官网,安装 LTS(Long Term Support)版本。nginx
按住win+R
,输入cmd
,进入 cmd 命令行工具,输入node -v
查看 node 版本,git
若出现版本信息,则说明 node 安装成功。web
在 cmd 命令行中输入npm install hexo-cli -g
,安装 hexo。完成后输入hexo -v
查看版本信息,确认安装成功。shell
初始化根目录npm
建立文件夹Hexo-Blog
,在 cmd 命令行中进入该目录,输入hexo init
初始化根目录。vim
本地查看浏览器
输入hexo g&&hexo s
(生成静态文件,并开启本地服务器)缓存
根据提示,在浏览器中打开http://localhost:4000
,便可看到初始的博客页面。bash
美化
对本身的博客进行更改样式、美化、增删功能、发布文章等操做,就不展开介绍了。
购买域名
在阿里云上以学生认证优惠购买了lzxjack.top
这个域名。
域名备案
域名绑定国内的服务器,必需要进行备案操做,不然将没法访问。
从提交备案信息,到管局审核经过,备案号下来一共花了不到 10 天的时间。
域名解析
域名解析是把域名指向网站空间 IP,让人们经过注册的域名能够方便地访问到网站的一种服务。IP 地址是网络上标识站点的数字地址,为了方便记忆,采用域名来代替 IP 地址标识站点地址。
www
表明域名前加www.
,如www.lzxjack.top
,@
就表明lzxjack.top
,这样两个地址都能访问到服务器了A
是指,将域名指向一个IPV4
地址为了让其余用户在本身的客户端访问到本身的博客,就须要将博客部署到服务器上,其余用户经过访问服务器的公网 IP 来访问到服务器上的资源。若绑定了域名,还能够经过域名访问。
经过阿里云开发者成长计划,购买了轻量应用服务器
。在系统的选择上,做为服务器系统,CentOS 稳定、强大,因此系统镜像选择了 Linux 系统的 CentOS 7.3 版本。
点击云服务器管理页面的防火墙
,再点击添加规则
。
要使用 HTTP 协议访问服务器,须要在服务器端监听 80 端口,由于 80 端口是服务器的默认端口号。而阿里云服务器默认关闭 80 端口,则须要咱们手动打开监听 80 端口。另外,服务器端配置 Git 时须要使用 SSH 协议进行本地与服务器的链接,须要服务器监听 22 端口,也须要手动打开。
此步骤须要在云服务器上完成,具体方法可使用远程链接,也可使用 Xshell 客户端进行链接。
安装 nginx
切换到 root 账号
sudo su root
复制代码
须要使用 nginx 做为 Web 服务器,因此咱们首先要安装 nginx。可使用 yum 命令直接进行安装。
yum install -y nginx
复制代码
安装完成后启动 nginx 服务器
systemctl start nginx
复制代码
systemctl enable nginx
复制代码
创建博客根目录
将博客的页面文件放在/home/www/website/
路径下,须要先建立这些文件。
cd /home
mkdir www
cd www
mkdir website
复制代码
查看建立的文件:
配置 nginx 路由
创建了博客的根目录后,须要将 nginx 服务器指向这个根目录地址,才能访问到博客页面,因此须要修改 nginx 的配置文件。
阿里云默认的库下载的是基于 fedora 的 nginx,查阅资料发现,默认配置文件位于 etc/nginx/
下的nginx.conf
。
查看 nginx 的默认配置文件:
cd ~
cd /etc/nginx
ls
复制代码
文件中的nginx.conf
就是默认配置文件。
但不采用直接修改 nginx 配置文件的方式,而是新建一个文件夹,将本身的配置写在新建的文件夹中。再利用include
,在配置文件nginx.conf
中将文件夹引入进来便可。这样如有新的需求时,只需在文件夹中添加新需求的配置文件便可,不会再次修改配置文件nginx.conf
,提升效率。
切换/etc/nginx/
目录,在此目录下建立一个文件夹vhost
:
cd /etc/nginx
mkdir vhost
cd vhost
复制代码
输入vim blog.conf
新建blog.conf
文件并编辑内容:
server{
listen 80;
root /home/www/website;
server_name lzxjack.top;
location /{
}
}
复制代码
其中,listen
表明监听 80 端口。root
是博客的根目录,页面存放的地址。server_name
是服务器名称,填域名lzxjack.top
,将域名和博客的页面根目录绑定。
为了让http://www.lzxjack.top/
也能访问到博客页面,再新建一个配置文件wwwblog.conf
,将server_name
设置为www.lzxjack.top
:
这样,/etc/nginx/vhost
目录下就有两个配置文件,blog.conf
和wwwblog.conf
:
打开/etc/nginx/
目录下的nginx.conf
文件,添加下面一行代码,将刚才新建的配置文件引入进来。*.conf
的意思是将vhost
文件夹下的全部.conf
后缀的文件都引入了进来。注意:要写在http{}
的里面。
include /etc/nginx/vhost/*.conf;
复制代码
至此,完成了 nginx 路由的配置,将域名和云服务器指定路径进行了绑定。
curl -sL https://rpm.nodesource.com/setup_10.x | bash -
yum install -y nodejs
复制代码
安装完成后执行 node -v 和 npm -v 若是打印版本号则安装成功
这一部分主要目的是本地电脑能够经过ssh
方式链接到云服务器,而后就能够经过命令行方式将博客传到服务器上。
yum install git
复制代码
输入如下添加 Git 用户:
adduser git
复制代码
修改用户权限:
chmod 740 /etc/sudoers
复制代码
打开/etc/sudoers:
vi /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
复制代码
输入后都按回车便可!!!
此时在目录下就会有两个文件,分别是id_rsa
和id_rsa.pub
,其中id_rsa.pub
就是公钥文件,复制一份:
cp id_rsa.pub authorized_keys
复制代码
这样目录下就会有一个authorized_keys
文件,修改它的权限:
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
复制代码
客户端生成密钥:
在本地电脑的CMD
命令行工具中输入ssh-keygen -t rsa
,都按回车便可!会在本地电脑的用户文件夹下生成密钥:
接着,将本地电脑的id_rsa.pub
文件的内容拷贝到云服务器的authorized_keys
文件的末尾!!!!可采用的方法有:
Xftp
文件传输工具,先将本地电脑的id_rsa.pub
文件传输到云服务器某位置,再在云服务器上该位置执行cat id_rsa.pub >> ~/.ssh/authorized_keys
便可而后咱们在本地电脑上,打开 cmd,使用ssh
方式链接云服务器,输入:
ssh -v git@云服务器的公网IP
复制代码
最后提示Welcome to Alibaba Cloud Elastic Compute Service !
,说明不用输入密码也登陆成功了,即配置 Git 密钥成功,之后更新博客部署的时候不用输入 Git 密码了!
建立一个 Git 的仓库,而且新建一个post-receive
文件
cd ~
git init --bare blog.git
vi ~/blog.git/hooks/post-receive
复制代码
输入如下内容:
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
复制代码
保存退出并授予该文件可执行权限
chmod +x ~/blog.git/hooks/post-receive
复制代码
到此服务端配置完成。
本地电脑和服务端配置都完成后,在本地电脑的 Hexo 根目录下,输入如下安装插件:
npm install hexo-deployer-git --save
npm install hexo-server
复制代码
打开_config.yml
文件,修改deploy
项目以下:
deploy:
type: git
repo: git@云服务器公网IP:/home/git/blog.git
branch: master
复制代码
其中,type
项表示部署类型为git
,仓库repo
地址为git@云服务器公网IP:/home/git/blog.git
,分支branch
为master
主分支。
对博客进行的美化、功能添加、文章拟写等完毕后,命令行输入hexo clean
清除本地缓存,输入hexo g -d
生成静态文件,并部署到远程仓库。
此时本地的博客页面已经部署到了服务器的/home/www/website
目录下:
部署完成后,若打开页面没变化,能够在云服务器输入如下重启nginx
便可:
nginx -s reload
复制代码
到此,经过 hexo 搭建博客并部署到阿里云服务器总算完成啦!