Hexo部署>>云服务器
一、Win10部署Hexo
1. 安装Node和Git
Node下载
直接下载稳定版的
我这里改下安装路径,也可以不改
后面一直Next到安装成功就好
然后添加Node的环境变量,环境变量配置写Node的安装路径即可
Git下载
进入到安装包下载页面
选择对应版本
直接也是一直Next到安装好
验证Node安装完成
在cmd中输入 node -v
npm -v
出现版本号代表安装完成
如果有用npm WARN config global
–global,
–localare deprecated. Use
–location=global instead.
报错
先更换npm包源,不更换会导致下载时间过长或报错
1.查看现在用的什么源:
npm config get registry
2.作为临时使用修改npm源(不会影响到本地配置)
在npm install XXX 时加入 –registry URL即可,如修改成淘宝npm镜像:
npm --registry https://registry.npm.taobao.org install express
3.永久修改本地npm的源
永久修改就需要修改本地npm的配置了
npm config set registry https://registry.npm.taobao.org
4.切换之后再查看一下现在的源是什么
为什么需要切换之前之后都查看一下现在的源是什么呢?这是为了准确,避免因为网络或设备、软件等问题造成并没有切换成功,这个之前之后检查适用于所有操作行为,知己知彼方能百战不殆。
npm config get registry
5.官方源地址
如果需要重置为官方源的话:
npm config set registry https://registry.npmjs.org/
本地简单演示
将 npm 升级到最新版本
在 windows 中以管理员身份打开 cmd ,然后执行命令
npm install -g npm-windows-upgrade
如果提示 npm 命令未找到,则执行以下命令来更改脚本策略。
set-ExecutionPolicy RemoteSigned
执行 npm 更新命令,选择最新的版本回车
npm-windows-upgrade
本地简单演示
推荐软件(可能要梯子)
Hexo支持markdown语法来写文章,可以下载markdown的文本编辑器
在编辑配置文档的时候我们可以用 Notepad++ 来编辑文档
or
2. 安装Hexo
2.1 安装Hexo
打开cmd 然后在cmd中输入
npm install -g hexo-cli
2.2 生成Hexo
我们执行以下命令,生成一个博客
hexo init blog
安装过程中,他会自动生成一个文件夹,这个文件夹就是Hexo的配置文件,blog
是你要生成博客的文件夹名称,可以自定义
后面的终端(cmd)在这个文件夹下进行
推荐在当前打开终端的两种方式
2.2.1 安装powershell 或 git bash here 右击打开
2.2.2 地址栏输入cmd打开
回车就以打开
然后输入命令启动
hexo s
打开给出链接就能访问到网站,按Ctrl+C
可以关闭网站
到这Win10上的hexo就部署完毕了~
二、Hexo部署到腾讯云
1. 部署环境与准备
1.1 环境
本地Windows10
操作系统
腾讯云/华为云Cenots7.6
服务器
1.2 准备
Hexo 本地博客
连接到你的服务器,使用ssh工具或用终端
为了方便这里演示用终端连接服务器,服务器要开放22端口
ssh -v root@服务器公网IP
2. 云服务器配置Git
1.安装依赖库
yum install curl-devel expat-devel gettext-devel openssl-devel zlib-devel
2.安装编译工具
yum install gcc perl-ExtUtils-MakeMaker package
3.查看git的版本
git version
4.删除老版本git
yum remove git -y
5.下载解压最新版
https://mirrors.edge.kernel.org/pub/software/scm/git/
cd /usr/local/src #下载的目录
wget https://www.kernel.org/pub/software/scm/git/git-2.9.5.tar.gz #下载最新版
tar -zxvf git-2.9.5.tar.gz #解压到当前文件夹
6.编辑并安装
cd git-2.9.5 #进入文件夹
make prefix=/usr/local/git all #编译源码
make prefix=/usr/local/git install #安装路径
7.配置git的环境变量
echo 'export PATH=$PATH:/usr/local/git/bin' >> /etc/bashrc
8.刷新环境变量
source /etc/bashrc
9.查看版本号
git --version
10.创建git用户并且修改权限,注意用户名是自定义的
adduser test
passwd test
然后设置密码
chmod 740 /etc/sudoers
vim /etc/sudoers
在英文输入法下,按Esc然后按shift和冒号,输入set nu
就可以显示行号
在101行root下面添加你所创建的用户,这里是test
root ALL=(ALL) ALL
test ALL=(ALL) ALL
在英文输入法下按I
键进入修改模式,然后添加内容
在英文输入法下,按Esc然后按shift和冒号,输入wq
就可以保存并退出了,q!
不保存并退出
可以通过这个命令,查看是否保存成功
cat -n /etc/sudoers
11.本地windows10使用Gitbash创建密钥
ssh-keygen -t rsa
一直回车就可以了
文件会产生在C盘的用户文件夹中
12.将本地创建id_rsa.pub中文件复制
su 用户名
mkdir ~/.ssh
打开文件Ctrl+A
全选,复制内容
再vim创建并打开一个文件authorized_keys
vim ~/.ssh/authorized_keys
将内容粘贴并保存退出
13.本地测试
ssh -v test@服务器ip
可能还是不能免密登录服务器用户,但不影响正常使用,只是每次同步需要输入密码
三、云服务器网站配置
1.创建网站目录并且设置权限
su root
mkdir /home/hexo
chown test:test -R /home/hexo
2.安装Nginx
yum install -y nginx
systemctl start nginx.service #启动服务
3.修改Nginx配置文件
vim /etc/nginx/nginx.conf
38 server {
39 listen 80 default_server;
40 listen [::]:80 default_server;
41 server_name example.com; #域名
42 root /home/hexo; #网站目录
保存并退出
4.重启服务器
systemctl restart nginx.service
5.建立git仓库
su root
cd /home/test
git init --bare blog.git
chown test:test -R blog.git
6.同步网站根目录
vim blog.git/hooks/post-receive
插入内容
#!/bin/sh
git --work-tree=/home/hexo --git-dir=/home/test/blog.git checkout -f
7.修改权限
chmod +x /home/test/blog.git/hooks/post-receive
8.在windows10本地hexo目录修改_config.yml文件
_config.yml非常重要的文件
deploy:
type: git
repository: test@服务器IP:/home/test/blog.git #用户名@服务器Ip:git仓库位置
branch: master
9.在本机gitbash部署
清除本地缓存
hexo clean
同步到服务器
hexo g -d
四、常见报错
1.git-upload-pack: 未找到命令
bash: git-upload-pack: command not found
fatal: Could not read from remote repository
解决方法
sudo ln -s /usr/local/git/bin/git-upload-pack /usr/bin/git-upload-pack
2.git-receive-pack: 未找到命令
bash: git-receive-pack: command not found
fatal: Could not read from remote repository
解决方法
sudo ln -s /usr/local/git/bin/git-receive-pack /usr/bin/git-receive-pack
3.fatal: Could not read from remote repository
解决方法
重试或者 删掉本地ssh公钥重新上传至服务器
4.Host key verification failed
解决方法
ssh-keygen -R 你要访问的IP地址
5.ERROR Deployer not found: git
解决方法在本地运行
npm install --save hexo-deployer-git
6. Please tell me who you are
git信息不全导致
解决方法
(注意 "前面是有空格的)
git config --global user.email "你的邮箱"
git config --global user.name "你的名字"
输入完后再接着执行git commit
即可成功!
五、本地同步到服务器
服务器部署成功,正常显示
这里可以简单演示一下,通过makedown编辑器修改,并同步更新到服务器
找到文件,新的文章文件都是放在此目录下的
vscode打开,简单修改,makedown修改器这里还是推荐Typora
保存后同步一下,可以发现,发生了更新
因为是本地同步到服务器的,本地的先发生修改,文章更新可以先在本地演示,没有问题再部署到服务器上,本地和服务器可以同时开启
如果要给文章进行加密,就需要安装SSL证书
六、Hexo+Nginx 部署SSL证书
这里需要将文件上传到服务器这里推荐xftp
部署SSL证书,这里以腾讯云
为例
解压得到
通过cd /etc/nginx
/进入安装目录
在这目录下查看是否存在conf
目录。没有的话在此目录下通过mkdir -p conf
创建出一个conf目录接下来我们要将我们下载的SSL证书和密钥文件传送到服务器中我们刚刚创建的conf
目录下
直接拖进去就可以上传到conf目录中
接下来编写nginx配置文件通过vim /etc/nginx/nginx.conf
,可以参考我写的
# Settings for a TLS enabled server.
server {
listen 443 ssl;
# listen [::]:443 ssl http2;
server_name www.flamiec.cn; #域名
root /home/hexo; #网站主目录
#
ssl_certificate /etc/nginx/conf/www.flamiec.cn_bundle.crt; #之前上传的文件,根据文件拓展名来修改为你的文件名
ssl_certificate_key /etc/nginx/conf/www.flamiec.cn.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 = / {
}
#
# error_page 500 502 503 504 /50x.html;
# location = /50x.html {
}
}
查看是否有报错,无报错重启服务器
nginx -t
systemctl restart nginx
然后访问https://你的域名或ip即可