使用Hexo&butterfly制作网站
感谢以下博主的文章指导
Jerry
[https://butterfly.js.org/posts/dc584b87/]:
JesseXW
https://blog.csdn.net/JesseXW/article/details/135649752?ops_request_misc=%257B%2522request%255Fid%2522%253A%25225C569AA8-411B-49F6-94C6-3C1F75713717%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=5C569AA8-411B-49F6-94C6-3C1F75713717&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~top_positive~default-1-135649752-null-null.142^v100^pc_search_result_base4&utm_term=Butterfly%E4%B8%BB%E9%A2%98&spm=1018.2226.3001.4187 |
korgs
https://blog.csdn.net/liudonglovehemin/article/details/131087757?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522551019DA-4FD0-438E-AE96-D985625368B8%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257D&request_id=551019DA-4FD0-438E-AE96-D985625368B8&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduend~default-1-131087757-null-null.142^v100^pc_search_result_base4&utm_term=hexo%20butterfly%20%E5%A6%82%E4%BD%95%E5%86%99%E6%96%87%E7%AB%A0&spm=1018.2226.3001.4187 |
小满@
https://blog.csdn.net/mjh1667002013/article/details/129290903?ops_request_misc=&request_id=&biz_id=102&utm_term=hexo%20butterfly%20%E5%A6%82%E4%BD%95&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-1-129290903.142^v100^pc_search_result_base4&spm=1018.2226.3001.4187 |
hexo官方大人
[https://hexo.io/zh-tw/docs/]:
VIP_CQCRE
https://blog.csdn.net/cqcre/article/details/105742951?ops_request_misc=&request_id=&biz_id=102&utm_term=Hexo%E9%83%A8%E7%BD%B2%E5%88%B0%E4%BA%91%E6%9C%8D%E5%8A%A1%E5%99%A8&utm_medium=distribute.pc_search_result.none-task-blog-2~all~sobaiduweb~default-8-105742951.142^v100^pc_search_result_base4&spm=1018.2226.3001.4187 |
这个师傅的文章帮我解决了上线的大多数问题,讲的很仔细,可以参考阅读
此篇在我完成网页的基本搭建后所写,旨为分享网页制作所遇到的一些问题
文章写作
由于我使用的是Typora,其本身就是一个专门为了写markdown文件的软件,所以这让我写文章更加方便,不用专门去考虑标题大小、引用等问题,大家可以自行去搜索类似的md软件,方便自己写文章。
在文章内先写Post Front-matter
title 【必需】文章标题 |
这些内容就title跟date为必填项 其他的都是选填
然后就是文章的内容了
放到_posts文件夹下,再运行,文章就已经可以显示出来了
图片显示
不知道脑子里突然想到的是图床,因为之前使用的路径访问好像都有问题,如果之后还准备好好运行这个网站的话可能会自己去搭一个图床吧,现在用的是免费的网站。
<img src="" width="500" height="400" /> |
*上线部署
上线部署是困扰了我很久的问题,近期才得以解决,在此分享一下我的解决办法
前期准备
云服务器、域名&备案(备案时间等待可能有几个工作日吧)
我使用的是腾讯云 配置的是Ubuntu
本地安装git、hexo、写笔记
服务器安装git、创建git仓库、配置密钥、钩子函数
本地从github把hexo代码拉取下来,之后每次修改后调用的hexo deploy命令就会自动将上传到服务器的git仓库,服务器端的git仓库再用钩子函数将本地上传的静态文件部署到指定目录
开始部署
本地创建git用户
桌面右键打开bit bash
git config --global user.email "xxx@xxx.com" # xxx@xxx.com改为邮箱 |
本地计算机安装Node.js和npm
这个在使用hexo的时候就应该配置好了
在cmd分别输入
node -v |
检查安装是否成功和版本
本地准备好写好的网站
链接服务器
在服务器中安装nginx
sudo apt install nginx |
这里我没有跟网站上的步骤一样,目前也没有太大的问题
安装 gcc-c++
、pcre
、zlib
和 openssl
及其开发库
sudo apt install -y g++ libpcre3 libpcre3-dev zlib1g zlib1g-dev openssl libssl-dev |
安装nodejs、npm
cd ~ |
在服务器中,安装git
apt install git |
配置git用户
adduser git |
赋予用户权限
chmod 740 /etc/sudoers |
找到 root ALL=(ALL) ALL
在他的下一行添加
git ALL=(ALL) ALL |
修改 sudoers 文件权限
chmod 400 /etc/sudoers |
设置 git 用户的密码
sudo passwd git |
*** 给git用户配置ssh免密公钥登录
既需要在本地计算机上操作,也需要在服务器上进行操作
原理是:在本地计算机生成一个公钥文件和一个秘钥文件(类似于一个钥匙配一把锁),将公钥文件的内容拷贝到authorized_keys文件中去。这样本地计算机便可以通过ssh方式免密连接我们的云服务器了。
在服务器端登录git用户
su git |
在本地右键打开git bash 生成公私钥
cd ~ |
然后一直回车就ok
在本地就会生成公私钥啦,路径在生成时就会有提示
eg:C:\Users\你的用户名.ssh
由于是隐藏文件,记得取消隐藏
id_rsa(私钥)和id_rsa.pub(公钥)
在本地给私钥设置权限
chmod 700 ~/.ssh |
复制本地的id_rsa.pub文件
到服务器端继续以git用户身份
cd ~/.ssh |
把复制的内容粘贴到authorized_keys文件中
在服务器上设置文件权限:
chmod 600 ~/.ssh/authorized_keys |
确保设置了正确的SELinux上下文。(这个我没搞 好像也没啥问题
restorecon -Rv ~/.ssh |
接下来在本地计算机上使用ssh方式连接我们的云服务器。
$ssh -v git@xxx.xxx.xxx.xxx(公网IP) |
问题一
Host key for 82.157.187.172 has changed and you have requested strict checking. Host key verification failed. |
如果遇到该问题 问题出在远程主机的 SSH 主机密钥已经改变
可以手动更新 known_hosts
文件中的条目,改文件在本地.ssh文件中
可以把报错喂给ai,他会给出更详细的回答
配置git仓库
在服务器上使用git用户创建一个Git仓库,并且在该仓库中新建一个post-receive钩子文件。
cd ~ |
输入
git --work-tree=/home/www/hexo --git-dir=/home/git/hexo.git checkout -f |
work-tree为hexo的部署目录,git-dir为Git仓库的目录
授予钩子文件可执行权限
chmod +x ~/hexo.git/hooks/post-receive |
重启服务器
(7 本地hexo配置
在本地blog目录下,找到_config.yml文件
对deploy参数修改
deploy: |
记得缩进
hexo clean |
nginx反向代理
在本地以root用户权限进行
sudo -i |
在http内修改为
检查和修正/etc/nginx/sites-enabled/default
文件
最后 检查语法,并重载nginx
nginx -t # 一般报错信息很明确,翻译一下就行。若不知道就查查,或者看看文件里有没有多余的空格 |
最后再
hexo clean |
问题二
Please make sure you have the correct access rights |
如果遇到这种报错 当你hexo d时,代表你的ssh密钥配置错误
到给git用户配置ssh免密公钥登录搞清楚服务器跟本地的操作
此时基本上部署的所有问题就解决了
无论从IP还是域名都可以访问
DNS解析什么的就自己去购买域名的地方搞就行了
之后再添加新内容就直接c/g/d就能上传至网站中了