欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

从0到1搭建hexo博客

程序员文章站 2022-04-21 21:13:02
...

前言:

恰逢最近服务器到期,上阿里云官网寻了个价,服务器续费竟然需要1200大洋。。。想着之前的1核2G的服务器是两年前因为活动700多大洋买的,强烈的价格落差让市侩的心抠门的我内心升起了一丝小嫌弃(这性价比也太低了!!!)。不甘心的我继续淘宝一样淘着服务器,盼望着有一个物美价廉性价比又高的服务器送入我的怀中。映入眼帘的是各种配置高价格又高的服务器。我擦了擦口水继续找,偶然间发现,因为华北3大区搞活动,2核4G的服务器只要1400+,果断入手,价格虽然贵了几百,但是配置质的飞跃,心里美滋滋。服务器搞定之后,下一步就是做服务端迁移,我要做的是把原服务器的数据迁移到新的服务器上来。想起之前的博客是用ghost+mysql搭建的,而ghost对nodejs的版本有限制。索性在网上找了一圈成型的博客框架,最终选定用hexo框架搭建新的博客。在搭建的过程中也遇见了一些小坑,现做个总结。可能会有和网上各种方法大同小异的地方,看过的大佬可自行略过,挑对自己有用处的看,也许会有小惊喜哦。

本地环境部署

操作系统: Macos

配置之前要确认你的电脑里是否已安装nodejs和git,如果未安装则从第一步开始安装,如果已安装过请直接起飞略过第一第二步,从第三步看起~

如果你是windows用户,可以直接在nodejs官网和git官网下载安装,安装过后从第三步看起。

1.用nvm安装nodejs

nvm是一个nodejs版本管理器,使用它可以很方便的管理nodejs(已安装node直接略过这步)

你可以这样安

curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
复制代码

也可以这样安

wget -qO- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
复制代码

以上两种方法都可以安装,我安装的是v0.34.0版本,如果你看到这篇文章是比较久远之后,可以在github.com/nvm-sh/nvm#…中查看最新的nvm版本进行安装。

nvm安装成功之后,查看当前可安装的版本

nvm ls-remote
复制代码

最后安装nodejs

nvm install (nodejs版本号)
复制代码

查看是否安装成功

node -v
复制代码

2.安装git

用homebrew安装

brew install git
复制代码

查看是否安装成功

git --version
复制代码

生成公钥并复制到远程服务器

ssh-******
ssh-copy-id -i .ssh/id_rsa.pub  服务器用户名@服务器ip
复制代码

配置完即可无密码连接自己的服务器

3.安装hexo

直接运行命令安装

npm install -g hexo-cli
复制代码

命令行进入到本地要创建的博客目录,然后运行

hexo init (新建项目名称)
cd (新建项目名称)
npm i
复制代码

接着执行

npm install hexo-deployer-git --save
复制代码

这个命令用于自动化部署,先安装,后面会进行说明。

至此,本地部署告一段落。

服务端部署

操作系统: Ubuntu

1.nginx

更新apt-get包

sudo apt-get update
复制代码

安装nginx

sudo apt-get install nginx
复制代码

判断是否安装成功并查找nginx配置目录

sudo nginx -t
复制代码

控制台看到以下输出,则安装成功

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
复制代码

拷贝初始化server文件并重命名为server.conf

cp -i /etc/nginx/sites-available/default /etc/nginx/conf.d/
cd /etc/nginx/conf.d/
mv default nginx.conf
复制代码

到这里需要注意:

  • 需要拥有一个已备案的域名,国外服务器除外
  • 需要做域名解析到服务器ip

如果以上条件未具备,请先去搞域名。如果已具备,请接着往下看。

配置server.conf

http协议配置(有https证书略过)

server {
listen 80;
root /var/www; /*网站根目录,处于权限问题考虑,建议把网站配置在www文件目录下*/
server_name 你的域名;
location / {
    index index.htm index.html
  }
}
复制代码

https协议配置(无https证书略过)

server {
listen 443;
root /var/www; /*网站根目录,处于权限问题考虑,建议把网站配置在www文件目录下*/
server_name 你的域名;
ssl on;
ssl_certificate   cert/xxxx.pem; /*你的https证书pem*/
ssl_certificate_key  cert/xxxx.key; /*你的https证书key*/
ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;
location / {
    index index.htm index.html
  }
}

server {
listen 80;
server_name 你的域名;
rewrite ^(.*) https://$host$1 permanent;
}
复制代码

2.安装git

执行命令

sudo apt-get install git-core
复制代码

创建git用户

adduser git
复制代码

3.建立git仓库

建立仓库并赋权

cd /var/www
git init --bare blog.git
chown -R git:git blog.git
复制代码

4.服务端自动化

进入git文件

cd /var/www/blog.git/hooks
mv post-update.sample post-update
vim post-update
复制代码

填入以下代码

#!/bin/sh
git --work-tree=/var/www --git-dir=/var/www/blog.git checkout -f
复制代码

修改权限

chmod +x post-update
复制代码

最后一步

修改本地文件_config.yml,把deploy改为

deploy:
  type: git
  repo: 服务端用户名@服务端IP:/var/www/blog.git
  branch: master
复制代码

进行这老太太裹脚布一样的操作之后,终于接近尾声

进入本地文件目录,然后请优雅的在命令行敲入

hexo g -d
复制代码

直接在浏览器狠狠的敲击出你的网址,世界都亮了有木有!!!

敲了这么多手都木了,我去休息先~有事留言撒

转载于:https://juejin.im/post/5ce65545e51d4510a5033530