服务器上搭建hexo博客

服务器上搭建hexo博客,第1张

最近在服务器上搭建了一个博客,用于存放主题资料。博客框架使用了Hexo,Web服务器使用了Nginx。

以前把Hexo搭建到Github上,这次本来想直接搭建到公司的Gitlab上,但是发现公司的Gitlab把Page功能禁用了,只能搭建到我们小组的服务器上。整体框架如下:

注:图片来自《 如何在服务器上搭建hexo博客 》

简单来说,就是首先服务器部署Nginx,本地使用Hexo生成博客,然后推送到服务器的Git仓库,再使用git hook功能,当博客被推送到Git仓库后自动部署到Nginx的指定目录里,完成文章发布。

本地与服务器都为Mac OS 系统

修改hexo目录下的 _config.yml 文件

其中 repo 地址比如为 admin@10.10.10.10::/var/repo/blog.git

开始写博客发布

其中我遇到的一些坑,主要是权限问题,如果遇到部署不成功,注意排查是否是权限问题导致的。

附录:参考文章

如何在服务器上搭建hexo博客

Github SSH

Hexo

Nginx

极客学院 Nginx入门指南

Nginx配置文件nginx.conf中文详解

因为使用github仓库存放Hexo博客速度太慢,所以自己买了腾讯云的服务器,现在开始把博客部署到腾讯云,由于域名还没有审核通过,暂时使用公网ip访问

本地环境: win7

服务器: 腾讯云

使用工具: Xshell, Xftp, git

使用Xshell工具(root用户)远程登录腾讯云

此时打开浏览器,输入公网IP+端口,进入nginx的欢迎页面

修改根目录root为/home/www/hexo;

修改域名server_name为你备案的域名 www.xxxx.com ,如果还没有就不改,有了再改;

找到 root ALL=(ALL) ALL,在下一行添加 git ALL=(ALL) ALL,然后保存

在.ssh目录下创建authorized_key这一步之后,打开本地存放公钥的文件id_rsa.pub(github生成ssh密钥问题不会的可以百度,教程很多这里不细讲),复制密钥到服务器上的authorized_keys文件中并保存,这样当你使用ssh远程连接服务器时就不用输入密码

接着在本地打开git bash用ssh方式远程连接服务器 ,登录成功界面如下图所示

打开hexo博客配置文件_config.yml 修改repo:git@你的服务器公网IP:/home/git/hexo.git

执行部署命令之前需要进入本地hexo博客安装目录中删除.deploy_git文件

打开Xftp工具进入/home/www/hexo,看到文件就表示通过git已经提交到服务器中去了

但此时需要重启nginx服务才能访问

走到这一步就算是大功告成,浏览器输入 http://xxx.xxx.xxx.xxx:80/ 进入hexo我的博客主页了

更新:买的域名备案成功了,欢迎大家访问 我的Hexo博客

就跟 / 的作用有关系了,/ 开头指代的是当前根目录。

假如你的文件位置是 D:/Hexo/public/index.html,那这个 / 就是表示 D 盘根目录。所以CSS最终访问的是D:/css/style.css。

而当你把 public 下的内容上传后,这个根目录就是服务器的根目录,也就是当前目录,自然可以访问到了。

一般本地都是用 hexo s 开启本地服务器预览的。

再说下不加 / 会导致的问题。

首先,在你博客主页不会有任何问题,因为不加 / 就表示当前目录。而如果是博客子页面,比如文章页的网址为www.blog.com/20160530/hello.html,这个页面里没有 / 那问题就来了,这个路径下能找到 css 文件吗?


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/364969.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-11
下一篇2023-05-11

发表评论

登录后才能评论

评论列表(0条)

    保存