欢迎光临
我们一直在努力

hexo部署到云服务器

title: hexo部署到云服务器

  • 云服务器部署

1.查看本文章的前提是已经在本地搭建好了hexo框架的博客
2.服务器系统centOS7.6(华为云)

服务器环境搭建

1.安装执行命令如下

yum -y install nginx 

2.配置服务器路由

systemctl start nginx  systemctl enable nginx  

此时用公网ip访问即可看到一个欢迎页面,欢迎页面可能是“Welcome to nginx”也可能是“Welcome to centos”,欢迎页面的字样取决于nginx版本和下载方式的不同,只要能正常显示一个欢迎页面就好

为了让我们的nginx服务器指向我们的博客而不是指向默认的欢迎页面
那么就需要我们更改nginx的配置。
关于nginx的配置文件共两种情况:
1.首先是位于etc/nginx/conf.d/下的dafault.conf
2.其次是有些云服务器比如我的华为云配置文件是etc/nginx/ 下的 nginx.conf 。
3.我们也可用nginx -t命令查看我的配置文件所在
配置过程如下:

1.打开/etc/nginx/nginx.conf文件

vi /etc/nginx/nginx.conf 按照注释修改 include /etc/nginx/conf.d/*.conf; server { listen 80; listen [::]:80; server_name _; root /home/www/website;  include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /404.html { } 

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

cd /home mkdir www cd /www mkdir website 

这样我们就可以得到 /home/www/website 作为博客的根路径,就和配置文件中的路径对应上了。

3.在root用户下设置www的权限

chmod -R 777 ./www 

为了让nginx能够访问我的作为博客目录的www文件夹需要在root设置权限并且添加递归参数R

安装Git 以及Node.js

Node.js众多安装方式的一种

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

安装完成后执行 node -v 和 npm -v 如果打印版本号则安装成功

此部分的主要目的是让我们的个人电脑可以通过ssh的方式连接到云服务器,然后通过命令将博客部署到服务器上。
1.安装git:

yum install git 

2.配置git用户;

adduser git 

3.修改用户权限:

chmod 740 /etc/sudoers vi /etc/sudoers 

4.在root ALL=(ALL) ALL下添加

git ALL=(ALL) AL 

5.保存退出后 将sudoers文件权限改回原样

chmod 400 /etc/sudoers 

6.设置git用户的密码

sudo passwd git 

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

su git cd ~ mkdir .ssh cd .ssh 

8.生成公钥密钥文件

ssh-keygen 

此时在目录下就会有两个文件,分别是:id_rsa 和 id_rsa.pub
其中 id_rsa.pub 就是公钥文件 我们复制一份
cp id_rsa.pub authorized_keys
这样目录下就会有一个authorized_keys文件,它和id_rsa.pub一模一样。

9.修改authorized_keys文件权限

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

10.然后_我们在自己的电脑上_打开终端,使用ssh方式连接我们的云服务器。

ssh -v 用户名@服务器公网ip 在本例中为:ssh -v git@服务器公网ip 

输入用户git的密码后,最后提示Welcome to XXX Compute Service ! 即为登陆成功!!!!

11.现在我们要创建一个git的仓库(创建仓库的过程要在git用户下进行),并且新建一个post-receive文件,操作如下:

cd ~ git init --bare blog.git vi ~/blog.git/hooks/post-receive 

12.输入以下内容:

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

13.保存退出并授予该文件可执行权限
在root用户下cd /home/git/执行

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

解释一下12的目的:我们在本地博客的根目录下通过hexo generate -deploy完成对本地博客文件的解析,并且部署到云服务器的/home/git/blog.git目录下,最后然后通过git --work-tree=/home/www/website --git-dir=/home/git/blog.git checkout -f将本地上传上来的文章解析到我们的博客目录/home/www/website。

本地配置_config.yml完成部署

hexo的目录下(博客的根目录),找到_config.yml,打开它。
找到deploy 做如下配置:

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

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

nginx -s reload 

本地终端执行:

hexo clean && hexo g && hexo d 

最后打开公网ip或者域名!!!

踩坑补充

1.部署git厂库整个过程一定要git用户下实现。
2.如果在本地 hexo d指令能执行成功,/home/www/wesite 没有文件,可以直接执行
git –work-tree=/home/www/website –git-dir=/home/git/blog.git checkout -f
命令,看看/home/www/wesite会不会生成文件
3.如果hexo d和ssh -v 用户名@公网IP,无法连接首先排查密钥是否复制并且赋予权限,其次可能是服务器系统重新安装过,并且之前在本地使用ssh -v 用户名@公网IP成功连接过,导致本地缓存的是服务器系统重装之前的密钥,可以通过在本地终端输入:“ssh-keygen -R "你的远程服务器ip地址”,清除本地关于服务器公网ip的缓存。

赞(0)
版权声明:本文采用知识共享 署名4.0国际许可协议 [BY-NC-SA] 进行授权
文章名称:hexo部署到云服务器
文章链接:https://www.jmwz.net/3040.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。
分享到: 更多 (0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址