云服务器搭建Hexo博客
这里介绍一下云服务器搭建Hexo博客,并且利用Nginx做代理,并且利用Coding.net或者Github同步页面,最后发布。
效果参考:我的博客
我还有一个博客架设在github pages上面,为什么我不喜欢用github pages创建呢,因为中国伟大的墙,导致github不稳定,这会使得没梯子时经常抽风,虽然理论上是称github是没被墙的,但是访问经常缓慢,什么的很不方便(做开发、搞研究还是得自备梯子)。另外没事练练动手能力吧。
搭建Hexo本地环境
先在本地搭建好hexo环境。
这个我不多说,网上教程一大堆。最好是看到那种搭建并且有创建Github Pages的博客教程。
需要注意的是Hexo自带的Markdown解析器解析Markdown格式时会有bug存在。
例如在表格中转义“|”这个竖杠时产生BUG,在生成html时会产生大量<br>
,我在写正则表达式笔记时候在Macdown和Atom这些当作都可以正常解析,但是在Hexo中解析不了。
网上提出的解决方法是使用pandoc
,进入博客目录:
1 | $ npm install hexo-renderer-pandoc --save |
还有一种解决方法是在'youblog'/node_modules/marked/lib
中marked.js
备份一下然后
1 | /*在450行左右找到*/ |
如果文章中有公式使用Mathjax引擎,在使用默认主题的时候
进入'youblog'/themes/landscape/layout/_partial/
- 仿照别的主题用法在 after-footer.ejs 加入
1 | <% if (theme.mathjax){ %> |
- 再新建文件 mathjax.ejs 里面写入
这里因为mathjax提供的官方CDN关闭,采用了第三方的CDN,你也可以自己修改CDN,或者自己搭建mathjax。。
1 | <script type="text/x-mathjax-config"> |
- 之后在theme/landscape/_config.yml配置中加入
1 | mathjax: true |
这时候你应该可以使用mathjax引擎了,测试一下,新建一个文章hexo n "test"
,然后输入:
1 | $$ |
之后hexo g
,hexo s
测试一下
成功的效果应该如下:
$$
\begin {aligned}
\frac{\partial}{\partial \theta_i}J(\theta) &= \frac{\partial}{\partial \theta_i}{\frac{1}{2}}{(h_\theta(x)-y)^2} \
&=(h_\theta(x)-y) \frac{\partial}{\partial \theta_i}(\theta_0x_0+\cdots+\theta_nx_n-y) \
&=(h_\theta(x)-y)x_i
\end {aligned} \
$$
$$
\theta_i:=\theta_i-\alpha\sum_{j=1}^n (h_\theta(x^{(j)})-y^{(j)})x_i^{(j)}
$$
- 如果你使用主题,如next,yilia等,一般都会在
主题配置文件
,_config.yml
中找到mathjax的相关设置。一般直接启用就可以了。
服务器
之后需要使用云服务器
我使用的是腾讯云或者阿里云的ubuntu服务器,centos也行,操作差不多。
之后就要下载一些常用的软件
Git
- 这里用到了
git
:
1 | # ubuntu |
- 设置Git的user name和email:
1 | # 下面的引号里面的东西替换成你的名字和邮箱 |
- 之后设置SSH密钥:
如果你之前有了ssh密钥: cat ~/.ssh/id_rsa.pub
没有的话生成密钥: ssh-keygen -t rsa -C "youmail@mail.com"
要不怕以后每次git什么的都要密码的话就直接留空,敲三次回车。
之后一样cat ~/.ssh/id_rsa.pub
查看密钥内容:
1 | ssh-rsa ....这里是一大串字母什么的.... youmail@mail.com |
注:这git什么的你本地配置hexo的时候也需要在本地创建,你看的配置hexo的教程应该都会提到这个。这里不多说。
- 然后复制这些东西加入到你的github/coding.net的设置里面的SSH keys中,就是找到ssh keys的设置中,点新建密钥(new keys什么的)之后把刚刚cat到的复制到里面,随便起一个名字。
然后测试一下:
1 | ssh -T git@github.com |
这时候git就配置好了。
然后找个目录我就以个人目录为例吧
之后的操作可能需要权限,之后的操作为了方便我就不写sudo了,如果出现Permission denied什么的就自己加权限。
1 | cd ~ |
nignx的配置
下载nginx什么的就不说了,而且一般云服务器都会自带有nignx
我以我的Ubuntu服务器为例,自带的是在/usr/local/nginx/
中
1 | cd conf |
- 域名解析,刚刚填写的server_name,你要到你自己域名的解析中添加。
我以腾讯云为例,买了域名之后,控制台-云解析-你自己的域名
添加记录类型为A的,主机记录随便你,之后记录值就是你服务器的地址。
然后刚刚的server_name就填你刚刚设置的主机记录.域名.com
什么的。这里就不再多说。
然后回到刚刚的配置问题,编辑好之后按esc
,输如:wq
保存退出。
然后
1 | # 载入nginx.conf配置,重新启动nginx |
然后就是git clone一些源代码
回到本地
在你创建好的博客中
1 | hexo g |
这时候你的博客目录中的public应该会被发送到github/coding.net的仓库中。
然后再在服务器
中,克隆你自己的仓库,推荐coding国内比较快…
1 | cd ~/blog |
之后你访问自己的域名或者服务器地址,应该可以看见你的博客了!
然后你以后发文章更新博客很简单了
1 | # 本地 |
之后刷新网页,every thing is OK~
你应该能感受到比Github Pages快很多。
ps: 此教程纯手打,转载请注明原文来自http://heywe.cn