文章目录
前言
想玩玩云服务器,就在上面搭了一个博客,用来记录平时遇到的一些坑和一些技术分享。现记录一下搭建过程。
一、Hexo简介
这是一个快速、简洁且高效的博客框架。大致架构为我们在自己的计算机上写好文章将它保存在source文件夹中,然后hexo会将我们的写好的文章转化为静态的HTML文件,之后push到git仓库,服务器中配置好git-hooks,就可以自动将我们仓库中的东西更新到网站的根目录,于是就能看到整个页面了。
二、准备工作
1.购买云服务器
2.申请域名,解析到服务器IP
3.后续网站备案
在哪购买的云服务器就哪里备案。
二、云服务器操作
1.配置安全组规则
http协议需要访问80端口,因此需要配置开放端口。在各大服务器的控制台可以添加安全组规则。
2.Nginx安装设置
yum install nginx 安装nginx
systemctl start nginx 开启nginx服务
systemctl enable nginx 开机自启
访问公网IP,若出现Nginx画面,则成功。
3.Nginx配置文件
我们通过新建一个配置文件,并将其以include的方式包含如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 这个位置写填写域名或者服务器的公网ip;
location /{
}
}
打开/etc/nginx/目录下的nginx.conf文件
vim /etc/nginx/nginx.conf
在其中引入我们编写的配置文件
新建存放博客的目录
cd /home
mkdir www
cd /www
mkdir website
这样我们就可以得到 /home/www/website 作为博客的根路径,就和配置文件中的路径对应上了。
注:这里的文件夹权限需要修改。因为下面我们会建立git用户,因此需要允许git用户对此文件夹进行读写权限。否则,一切配置完成后会出现403页面。
chmod -R 777 /home/www/website
还有一点原因也有可能,在nginx.conf中,需要修改user nginx为user root。
4.Git安装及本地登录
这一步的目的是可以让我们在本地使用ssh的方式连接到云服务器,然后就可以用命令行的方式将博客push到服务器上。
yum install git 安装git
adduser git 配置git用户
## 修改用户权限:
chmod 740 /etc/sudoers
vi /etc/sudoers
找到这个位置添加下面这句话
git ALL=(ALL) ALL
保存退出后 将sudoers文件权限改回原样
chmod 400 /etc/sudoers
sudo passwd git 设置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
## 修改它的权限
chmod 600 ~/.ssh/authorized_keys
chmod 700 ~/.ssh
然后我们在本地(自己的电脑上)打开cmd使用ssh连接服务器
ssh git@公网IP 需要在安全规则中配置22端口
注:这里插一个我遇到的小问题。因为之前我的电脑连接过服务器,然后服务器重置初始化了,再次连接时出现报错:WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
这是因为第一次SSH连接时,会生成一个认证,储存在客户端中的known_hosts,但是如果服务器验证过了,认证资讯当然也会更改,服务器端与客户端不同时,就会跳出错误啦~因此,只要把电脑中的认证资讯删除,连线时重新生成,就一切完美啦~要删除很简单,只要在客户端(本地电脑的cmd)输入一个指令:ssh-keygen -R +输入服务器的IP
登录成功后初始一个git的仓库,并且新建一个post-receive文件,操作如下:
cd ~
git init --bare blog.git
vim ~/blog.git/hooks/post-receive
## 输入
#!/bin/sh
git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f
## 授予该文件可执行权限
chmod +x ~/blog.git/hooks/post-receive
至此我们就完成了所有关于服务器端的配置。
三、本地主机操作
1.安装Node.js
官网下载安装即可。
##测试是否成功
node -v
npm -v
##出现版本号说明安装成功。
2.安装Hexo
## 将npm换成淘宝源,然后安装cnpm
npm config set registry https://registry.npm.taobao.org
npm install -g cnpm --registry=https://registry.npm.taobao.org
## 安装hexo
cnpm install -g hexo-cli
## 在本地选择一个目录来初始化博客,比如在F:盘下创建一个Blog文件夹,在该文件夹目录下
hexo init
## 完成hexo的初始化工作,初始化完成后安装两个插件
npm install hexo-deployer-git --save
npm install hexo-server
博客生成三步走:
hexo clean //清空hexo缓存
hexo g //全拼hexo generate,生成hexo博客
hexo s //全拼hexo server,本地访问hexo博客
hexo d //全拼hexo deploy,将hexo部署到服务器上
3用于本地测试,4为部署,执行一个即可。
3.配置hexo
在刚才生成hexo的目录下,找到_config.yml,打开它。 找到deploy 做如下配置
deploy:
type: git
repo: git@(公网ip):/home/git/blog.git
branch: master
message:
##注意这个设置的格式,type等设置前面两个空格,冒号后面一个空格,保存退出。
最后在服务器上重新运行nginx服务器
nginx -s reload
四、部署完成
输入自己的公网ip或者域名查看博客部署是否成功。