欢迎光临
我们一直在努力

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) 打赏
声明:
1、本博客不从事任何主机及服务器租赁业务,不参与任何交易,也绝非中介。博客内容仅记录博主个人感兴趣的服务器测评结果及一些服务器相关的优惠活动,信息均摘自网络或来自服务商主动提供;所以对本博客提及的内容不作直接、间接、法定、约定的保证,博客内容也不具备任何参考价值及引导作用,访问者需自行甄别。
2、访问本博客请务必遵守有关互联网的相关法律、规定与规则;不能利用本博客所提及的内容从事任何违法、违规操作;否则造成的一切后果由访问者自行承担。
3、未成年人及不能独立承担法律责任的个人及群体请勿访问本博客。
4、一旦您访问本博客,即表示您已经知晓并接受了以上声明通告。
文章名称:《hexo部署到云服务器》
文章链接:https://www.456zj.com/14683.html
本站资源仅供个人学习交流,请于下载后24小时内删除,不允许用于商业用途,否则法律问题自行承担。

评论 抢沙发

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