利用 Hexo 搭建个人博客(三)安装
本地环境
安装命令
npm install hexo-cli -g安装 Hexo 命令行工具。- 生成本地项目。
hexo init blog创建名为blog目录。cd blog切换到blog目录。npm install安装 Hexo 依赖hexo server或者hexo s打开localhost:4000测试是否成功。
- 新建文章测试。
hexo new post "文章标题"省略post也可以- 先
hexo g后hexo s再在浏览器内打开localhost:4000就可见到新文章。
基本结构
_config.yml
站点配置文件,在该文件内修改网站设置。
| 参数 | 描述 |
|---|---|
| title | 标题 |
| subtitle | 副标题 |
| description | 网站描述 |
| author | 名字 |
| language | 网站使用的语言 |
| timezone | 时区 |
title、subtitle、subtitle、description、author请自行修改language:属性值修改为zh-Hanstimezone:属性值修改为Asia/Shanghai
其余配置暂时别修改。
source
资源文件夹,用于存放用户资源。所有文章会以 .md 格式保存在 _post 文件夹内。其余 _ 开头的文件夹会被忽略。
themes
主题文件夹,下载你喜欢的主题至此文件夹下。
常见命令
hexo init [folder]新建网站hexo new [layout] <title>创建文章[layout]常用值为post,即创建新文章;draft创建草稿。- 省略
[layout]属性则默认使用_config.yml下的default_layout属性。
hexo generate或hexo g生成静态文件。hexo server或hexo s启动服务器。hexo clean清除缓存文件 ( db.jason )和生成的静态文件 ( public )npm uninstall hexo-cli卸载 hexo
远程仓库
这里借助码云来托管代码。
登陆码云,创建一个私有仓库,取名为“Hexo-Blog”,在管理-部署公钥管理中添加个人公钥。
添加个人公钥
1 | ssh-keygen -t rsa -C "xxxxx@xxxxx.com" |
查看个人公钥
1 | cat ~/.ssh/id_rsa.pub |
添加到个人账户 - SSH 公钥中。
若添加成功,则输入 ssh -T git@git.oschina.net 会返回 Welcome to Git@OSC, yourname!
同理,在 VPS 上生成公钥,但这次要添加到 Hexo 项目仓库中,用作只读公钥。
本地文件上传至远程仓库
cd blog转到 Hexo 目录。git initgit remote add origin git@gitee.com:xxxx/Hexo-Blog.gitgit add .git commit -m "first push"git push origin master
服务器上安装 Hexo
首先在仓库下添加服务器公钥,具体操作参考上文
把文件从仓库拉到服务器下
mkdir hexo创建 hexo 文件夹git initgit remote add origin git@gitee.com:xxxx/Hexo-Blog.gitgit pull origin master
安装 Hexo
- 切换到 hexo 目录下
npm install hexo-cli -gnpm installhexo g( Hexo 编译 )
错误 npm install -g hexo-cli failed
$ sudo npm i -g hexo-cli shark@dev
[sudo] password for shark:
/usr/bin/hexo -> /usr/lib/node_modules/hexo-cli/bin/hexodtrace-provider@0.8.5 install /usr/lib/node_modules/hexo-cli/node_modules/dtrace-provider
node scripts/install.jshexo-util@0.6.1 postinstall /usr/lib/node_modules/hexo-cli/node_modules/hexo-util
npm run build:highlighthexo-util@0.6.1 build:highlight /usr/lib/node_modules/hexo-cli/node_modules/hexo-util
node scripts/build_highlight_alias.js > highlight_alias.jsonsh: highlight_alias.json: Permission denied
npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! hexo-util@0.6.1 build:highlight:node scripts/build_highlight_alias.js > highlight_alias.json
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the hexo-util@0.6.1 build:highlight script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.┌───────────────────────────────────────────────────┐
│ npm update check failed │
│ Try running with sudo or get access │
│ to the local update config store via │
│ sudo chown -R $USER:$(id -gn $USER) /root/.config │
└───────────────────────────────────────────────────┘
npm WARN optional SKIPPING OPTIONAL DEPENDENCY: fsevents@1.1.2 (node_modules/hexo-cli/node_modules/fsevents):
npm WARN notsup SKIPPING OPTIONAL DEPENDENCY: Unsupported platform for fsevents@1.1.2: wanted {“os”:”darwin”,”arch”:”any”} (current: {“os”:”linux”,”arch”:”x64”})npm ERR! code ELIFECYCLE
npm ERR! errno 1
npm ERR! hexo-util@0.6.1 postinstall:npm run build:highlight
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the hexo-util@0.6.1 postinstall script.
npm ERR! This is probably not a problem with npm. There is likely additional logging output above.
解决办法一
$ sudo chown -R user /usr/lib/node_modules$ npm i -g hexo-clias user$ sudo chown -R root /usr/lib/node_modules
解决办法二
# npm config set user 0# npm config set unsafe-perm true# npm install -g hexo
参考
配置 Nginx
cd /etc/nginx/conf.d进入 nginx 配置文件目录vi hexo.conf新创建配置文件- 在
hexo.conf输入以下内容,保存退出
1 | server { |
- 回到
/etc/nginx目录下,打开nginx.conf文件,修改user得值为root nginx -s reload重载配置文件
禁止使用 IP 访问
新建一个 .conf 文件,输入一下内容:
1 | server { |
WebHooks 自动部署
网页设置
配置 WebHooks ,这样每次更新完文章只需要本地 push 到仓库就可以,服务器会自动从仓库拉取更新文件,免去远程登陆服务器的麻烦。
在 WebHooks 界面添加 URL : http://yoururl.com:port/webhooks/push/123456,提交即可。 自行修改 yoururl 和 port 的值
本地设置
本地 Hexo 目录下创建 webhooks.js 文件,添加内容:
1 | var http = require('http') |
接着新建 deploy.sh 文件,添加内容:
1 | hexo clean |
将新增加的两个文件 push 到仓库和服务器。
服务器设置
使用 PM2 管理监听服务。
在 hexo 文件夹下:pm2 start webhooks.js
完成
到这里 Hexo 已经全部安装完毕,接下来所要做的就是调整博客主题,更新文章了。