hexo博客部署到云服务器

   欢迎大家到我的博客浏览。hexo博客部署到云服务器 | YinKai's Blog


        这篇文章带大家将hexo博客部署到云服务器上!

一、服务器环境安装

1、安装 node js
yum install gcc-c++ make
yum -y install nodejs
yum -y install npm

验证

node -v
npm -v
2、安装git、nginx
yum install git nginx -y
3、安装 hexo
npm install hexo-cli hexo-server -g

验证

hexo

二、创建服务器git环境

1、创建 git 用户
adduser git
passwd git
2、创建证书
  1. 切换到git用户:su git

  2. 创建.ssh目录:mkdir ~/.ssh && chmod 700 ~/.ssh

  3. 然后在云服务创建authorized_keys公钥保存文件:

    touch ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys
  4. 将本地的公钥粘贴到 authorized_keys 文件中:

    cat ~/.ssh/id_rsa.pub
  5. 如果本地没有公钥或者后续上传失败,,可以使用下面的命令重新生成一个公钥。

    ssh-keygen -t rsa -b 2048 -C "your_email@example.com"

__ tip: __ 公钥保存文件authorized_keys是一行添加一个

3、创建 git 仓库目录

回到服务器目录,创建名为 blog 的 git 仓库目录。

su -
mkdir /var/repo
cd /var/repo
git init --bare blog.git
4、配置 git hooks
vim /var/repo/blog.git/hooks/post-receive

添加内容

#!/bin/sh
git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f

保存退出,并设置权限

chmod +x /var/repo/blog.git/hooks/post-receive
5、改变 BLOG.GIT 目录的拥有者为 GIT 用户
chown -R git:git blog.git
6、创建静态文件目录并将第 3 步骤生成的git仓库链接到静态文件目录下
  • 创建静态文件目录(文章网页):mkdir /var/wwwmkdir /var/www/hexo

  • 链接git仓库:chown -R git:git /var/www/hexo

  • 配置权限:chmod -R 755 /var/www/hexo 这样git仓库更新便会自动同步到hexo目录下

7、为了安全考虑,禁用GIT用户的SHELL 登录权限配置(下面两个步骤非常重要,否则客户端总是提示密码错误!!!)

首先你必须确保 git-shell 已存在于 /etc/shells 文件中

  • 使用命令 which git-shell 判断系统是否安装了 git-shell。如果已经安装,则返回 git-shell 的安装目录,如:/usr/bin/git-shell;如果未安装则需要安装git-shell命令,安装命令:yum install git

  • 判断shells文件是否存在,判断命令:cat /etc/shells

  • 如果文件不存在或没有 /usr/bin/git-shell

    则需要使用vim增加这个路径:

    sudo vim /etc/shells

    在最后一行添加 git-shell路径

/bin/sh
/bin/bash
/usr/bin/sh
/usr/bin/bash
/usr/bin/git-shell # 添加你的git-shell

在终端中,输入 sudo chsh git,然后在New shell [/bin/bash]: 后输入git-shell路径/usr/bin/git-shell

修改完成后验证: vim /etc/passwd找到类似git:x:1000:1000:,,,:/home/git:/usr/bin/git-shell,看看git用户是否是以git-shell结尾

  • 这样,git用户就只能使用SSH连接对Git仓库进行推送和拉取操作,而不能登录机器并取得普通shell命令

三、配置本地创建

本地安装 hexo 的过程,这里省略了,大家可以参考 GitHub Pages + Hexo搭建个人博客网站,史上最全教程 。

在 hexo 根目录用 管理员身份 打开 cmd,执行

npm install hexo-deployer-git --save

打开本地 hexo 博客目录,编辑_config.yml文件 修改repository为:

deploy:type: gitrepository: git@ip或域名:/var/repo/blog.gitbranch: master

然后执行下面的命令,将文件上传到你部署的服务器上,如果上传成功则本地配置创建完成。

hexo clean # 清缓存 可选
hexo g
hexo d

四、nginx 配置

1、修改 nginx 的 DEFAULT 设置

为了能让浏览器能直接访问静态页面,需要使用nginx将端口或域名指向hexo静态文件目录。

  • ubuntu

    vim /etc/nginx/sites-available/default
  • centos

    vim /etc/nginx/conf.d/default.conf

注意:不同版本的nginx或系统,nginx的配置文件不一定相同,根据具体情况来修改配置。

2、将其中的 ROOT 指令指向 /var/www/hexo 目录(也就是GIT钩子目录)

3、 最后重启服务,让NGINX生效
service nginx restart 
4、然后在浏览器中输入网址即可看到网站。

五、补充命令

补充点有用的命令

1、生成一篇文章

在hexo-blog目录下用git-bash

hexo new post 我的文章

2、上传新文章
hexo g -d
3、后台admin/界面编辑文章

在hexo根路径下用bash下载

npm install --save hexo-admin 只能在localhost:4000编辑 输入localhost:4000/admin进入界面 可以在编辑文章的同时实时预览效果

六、配置服务器域名与https证书

1、服务器绑定域名

直接到购买域名的服务商,对域名进行解析,并添加记录值(服务器ip地址),等待一段时间后,便可访问了。但这个时候,网站显示不安全,即非 https,需要进行域名备案,然后绑定证书。

域名备案周期会比较长,大概需要 20 天,大家可以根据自己的用途,考虑是否需要备案。

2、https 证书绑定

首先需要获取一个证书,详情可以参考  Nginx配置SSL证书。

获取到证书后,将证书所带的两个文件,我的是 .pem 和 .key 文件,上传到服务器的某个文件夹里存放好。

然后打开服务器 nginx 配置文件,我的是 /etc/nginx/nginx.conf:

# For more information on configuration, see:
#   * Official English Documentation: http://nginx.org/en/docs/
#   * Official Russian Documentation: http://nginx.org/ru/docs/
​
user nginx;
worker_processes auto;
error_log /var/log/nginx/error.log;
pid /run/nginx.pid;
​
# Load dynamic modules. See /usr/share/doc/nginx/README.dynamic.
include /usr/share/nginx/modules/*.conf;
​
events {worker_connections 1024;
}
​
http {log_format  main  '$remote_addr - $remote_user [$time_local] "$request" ''$status $body_bytes_sent "$http_referer" ''"$http_user_agent" "$http_x_forwarded_for"';
​access_log  /var/log/nginx/access.log  main;
​sendfile            on;tcp_nopush          on;tcp_nodelay         on;keepalive_timeout   65;types_hash_max_size 4096;
​include             /etc/nginx/mime.types;default_type        application/octet-stream;
​# Load modular configuration files from the /etc/nginx/conf.d directory.# See http://nginx.org/en/docs/ngx_core_module.html#include# for more information.include /etc/nginx/conf.d/*.conf;
​server {listen       80;listen       [::]:80;server_name  yinkai.cc; # 一:修改域名root        /var/www/hexo; # 二:修改为你的项目根目录rewrite ^(.*)$ https://$host$1; # 三:重定向到https# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;
​error_page 404 /404.html;location = /404.html {}
​error_page 500 502 503 504 /50x.html;location = /50x.html {}}
​
# Settings for a TLS enabled server.
​server {listen       443 ssl http2;listen       [::]:443 ssl http2;server_name yinkai.cc; # 四:修改为你的域名root         /var/www/hexo; # 五:修改为你的项目根目录
​ssl_certificate "/etc/nginx/SSL/yinkai.cc.pem"; # 六:修改到你的 .pem 文件路径ssl_certificate_key "/etc/nginx/SSL/yinkai.cc.key"; # 七:修改到你的 .key 文件路径ssl_session_cache shared:SSL:1m;ssl_session_timeout  10m;ssl_ciphers HIGH:!aNULL:!MD5;ssl_prefer_server_ciphers on;
​# Load configuration files for the default server block.include /etc/nginx/default.d/*.conf;
​error_page 404 /404.html;location = /40x.html {}
​error_page 500 502 503 504 /50x.html;location = /50x.html {}location / {try_files $uri $uri/ /index.html;}}
​
}

上面标注的地方,就是需要修改的配置文件的内容。

修改完成后使用下面的命令重启 nginx 即可:

systemctl restart nginx
3、api 访问域名绑定

我这里因为使用了 valine 评论插件,所以需要将域名绑定到 leancloud 上。

4、LeanCloud 安全中心增加 Web 安全域名

若有多个,可以填写多个,统计的数据是不一样的,每一行一个域名,用换行进行分割。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/208502.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

同旺科技 USB TO SPI / I2C --- 调试W5500_Ping测试

所需设备: 内附链接 1、USB转SPI_I2C适配器(专业版); 首先,连接W5500模块与同旺科技USB TO SPI / I2C适配器,如下图: 设置寄存器: SHAR(源MAC地址寄存器),该寄存器用来设置源MAC…

使用java批量生成Xshell session(*.xsh)文件

背景 工作中需要管理多套环境, 有时需要同时登陆多个节点, 且每个环境用户名密码都一样, 因此需要一个方案来解决动态的批量登录问题. XShell Xshell有session管理功能: 提供了包括记住登录主机、用户名、密码及登录时执行命令或脚本(js,py,vbs)的功能 session被存储在xsh文…

[二分查找]LeetCode2009 :使数组连续的最少操作数

本文涉及的基础知识点 二分查找算法合集 作者推荐 动态规划LeetCode2552:优化了6版的1324模式 题目 给你一个整数数组 nums 。每一次操作中,你可以将 nums 中 任意 一个元素替换成 任意 整数。 如果 nums 满足以下条件,那么它是 连续的 …

勒索解密后oracle无法启动故障处理----惜分飞

客户linux平台被勒索病毒加密,其中有oracle数据库.客户联系黑客进行解密【勒索解密oracle失败】,但是数据库无法正常启动,dbv检查数据库文件报错 [oraclehisdb ~]$ dbv filesystem01.dbf DBVERIFY: Release 11.2.0.1.0 - Production on 星期一 11月 27 21:49:17 2023 Copyrig…

详解Spring中基于注解的Aop编程以及Spring对于JDK和CGLIB代理方式的切换

😉😉 学习交流群: ✅✅1:这是孙哥suns给大家的福利! ✨✨2:我们免费分享Netty、Dubbo、k8s、Mybatis、Spring...应用和源码级别的视频资料 🥭🥭3:QQ群:583783…

《管家婆》辉煌2005+(V4.0)简单教程

《管家婆》辉煌2005(V4.0)简单教程 呉師傅 运行环境:   操作系统推荐使用Win2000(32位)、WinXP(32位)、Win7(位) 兼容:Win7(64位&#xff09…

机器学习笔记 - 异常检测之OneClass SVM算法简述

一、异常检测是什么? 如下图,理想中我们可以找到一个框住大部分正常样本的决策边界,而在边界外部的数据点(蓝点)即视为异常。 但实际情况下数据都没有标签,因此很难定义正常还是不正常。异常检测的主要挑战如下:正常与异常行为之间的界限往往并不明确、不同的应…

一文搞懂设计模式之责任链模式

大家好,我是晴天。我们又见面了,本周我们继续学习设计模式,本周将同大家一起学习责任链模式。 场景引入 我们回想一下自己曾经经历过的考学场景,我们是如何一步一步考上大学的(为了简化过程只提取核心环节&#xff09…

Fiddler抓包工具之fiddler的命令行窗口用法

fiddler的命令行窗口的相关命令 在fiddler官网有QuickExec使用教程,地址是QuickExec Reference - Fiddler Classic QuickExec 命令行窗口位于fiddler左下角黑色输入框,如下图: 按ALT Q,将焦点快速设置到QuickExec框。如果Fiddl…

代码随想录第二十二天(一刷C语言)|组合总数电话号码的字母组合

创作目的:为了方便自己后续复习重点,以及养成写博客的习惯。 一、组合总数 思路:参考carl文档和视频 1、需要一维数组path来存放符合条件的结果,二维数组result来存放结果集。 2、targetSum 目标和,也就是题目中的…

Python语言学习笔记之七(JOSN应用)

本课程对于有其它语言基础的开发人员可以参考和学习,同时也是记录下来,为个人学习使用,文档中有此不当之处,请谅解。 1、认识Json JSON (JavaScript Obiect Notation)是一种轻量级的数据交换格式,它是ECMAScript的一…

电源需要考虑的因素

做产品的都离不开电源,产品出问题也首先检查供电是否正常。今天给大家分享的是做好一个电源需要考虑哪些因素。 一. 描述输入电压影响输出电压几个指标形式 1. 稳压系数 A.稳压系数:表示负载不变时,稳压电源…

爬虫学习-基础(HTTP原理)

目录 一、URL和URI 二、HTTP和HTTPS (1)HTTP (2)HTTPS (3)HTTP与HTTPS区别 (4)HTTPS对HTTP的改进:双问的身份认证 三、TCP协议 (1)TCP三次握手…

vue项目node-sass^4.14.1 python gyp 报错解决办法

npm i node-sass4.14.1 --sass_binary_sitehttps://npm.taobao.org/mirrors/node-sass/参考链接:链接

浅析 TLS(ECDHE)协议的握手流程(图解)

浅析 TLS(ECDHE)协议的握手流程(图解) 通过 wireshark 抓取 HTTPS 包,理解 TLS 1.2 安全通信协议的握手流程。 重点理解几个点: TLS 握手流程:通过 wireshark 抓取 HTTPS 包理解。协商加密&a…

一文解决msxml3.dll文件缺失问题,快速修复msxml3.dll

在了解问题之前,我们必须首先清楚msxml3.dll到底是什么。DLL(Dynamic Link Libraries)文件是Windows操作系统使用的一个重要组成部分,用于存储执行特定操作或任务的代码和数据。msxml3.dll为Windows系统提供处理XML文档的功能。如…

文件上传---阿里云OSS

1.注册阿里云账户(注册完成后需要实名认证) 2.注册完账号之后,就可以登录阿里云 3. 创建bucket 4.创建 AccesskeyId 选择自己的开发语言 5. 阿里云Oss工具类 package com.sky.utils;import com.aliyun.oss.ClientException; import com.ali…

Redis缓存的使用

什么是缓存 缓存就是数据交换的缓冲区,是存储数据的临时地方,一般读写性能较高。 缓存的作用: 降低后端负载提高读写效率,降低响应时间 缓存的成本: 数据一致性成本代码维护成本运维成本 Redis特点 键值型数据库…

Upsert 及冲突(GORM)

GORM支持了数据库的upsert操作 upsert操作对于插入一条数据而言的,如果插入数据之前,没有这条数据,则会插入该条数据;如果插入数据之前就存在这条数据(索引值),就更新这条记录。 创建结构体 …

基于景区智慧灯杆、智能指路牌基础设施的景区建设应用

智慧景区是指运用现代信息技术手段,将景区内的资源、服务、管理等进行数字化、网络化和智能化整合,打造出高效便捷、安全舒适、互动体验和可持续发展的景区。智慧景区可以从以下几个方面进行体现: 智慧导览:通过使用智能化的导览…