nodejs中安装ghost出错的原因及解决方法


Posted in NodeJs onOctober 23, 2017

看了标题就知道安装ghost会碰到不少的坑,这里先说一个:

错误

(windows)通过ghost-cli来安装的步骤:

npm install -g ghost-cli  #全局安装ghost-cli
cd myghostblog   #进入工作目录
ghost install local #使用local参数在当前目录初始化一个ghost,使用sqlite数据库

出错信息如下:

√ Downloading and installing Ghost v?
√ Finishing install process
√ Configuring Ghost
√ Setting up instance
× Running database migrations
A SystemError occurred.

在ghost install local过程中不仅完成了ghost的初始化,还完成了依赖库的安装(也就是npm install)

从错误提示中看到Running database migrations出错了,其原因是:在下载依赖包sqlite3时出错,导致问题出现。

实际上在下载依赖包时出错,仅仅给出一个警告,警告都会跳过去,直到migrator这一步(数据迁移,也就是初始化数据库)出现了错误,导致安装失败。

而为什么下载sqlite3时出错了呢?

原因

就是因为sqlite3的包(sqlite3 for node)在.s3.amazonaws.com上,这个被墙了。*(满眼的泪呀!)

知道了原因,要解决就很容易了。

解决

解决方案是: cnpm install sqlite3 #使用taobao镜像安装

具体的过程如下:

npm install -g ghost-cli
cd myghostblog     
ghost install local   #会出错
cd current
cnpm install      #补装依赖库,并使用taobao镜像安装
knex-migrator init   #初始化sqlite数据库,会使用MigratorConfig.js
grunt dev      #运行 Dev 环境

打开浏览器http://localhost:2368/

加强

上面是在current目录下使用grunt运行起来的,如果要回到ghost-cli通过ghost来运行的话,还需要做一件事,将myghostblog\current\content\data\ghost-dev.db文件拷贝到myghostblog\content\data\ghost-dev.db,并修改文件名为ghost-local.db。(注意看目录差别,中间有一个current目录的差别)

这样就可以回到myghostblog目录使用ghost start来启动了。

cd myghostblog
ghost start

打开浏览器http://localhost:2368/

最后再说一下环境

windows 10
  Node Version: v6.10.3
  Ghost-CLI Version: 1.1.3
  Ghost Version: 1.14.0
2017-10-23

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

NodeJs 相关文章推荐
nodejs教程之异步I/O
Nov 21 NodeJs
NodeJS学习笔记之Connect中间件模块(二)
Jan 27 NodeJs
详解Nodejs的timers模块
Dec 22 NodeJs
nodejs使用express创建一个简单web应用
Mar 31 NodeJs
详解Nodejs之npm&package.json
Jun 15 NodeJs
详解HTTPS 的原理和 NodeJS 的实现
Jul 04 NodeJs
Windows下使用Nodejs运行js的方法
Sep 02 NodeJs
nodejs使用express获取get和post传值及session验证的方法
Nov 09 NodeJs
nodejs遍历文件夹下并操作HTML/CSS/JS/PNG/JPG的方法
Nov 01 NodeJs
深入理解nodejs搭建静态服务器(实现命令行)
Feb 05 NodeJs
nodejs对项目下所有空文件夹创建gitkeep的方法
Aug 02 NodeJs
nodejs实现的http、https 请求封装操作示例
Feb 06 NodeJs
详解Nodejs 通过 fs.createWriteStream 保存文件
Oct 10 #NodeJs
NodeJs通过async/await处理异步的方法
Oct 09 #NodeJs
nodejs 图片预览和上传的示例代码
Sep 30 #NodeJs
Nodejs调用WebService的示例代码
Sep 29 #NodeJs
Nodejs+angularjs结合multiparty实现多图片上传的示例代码
Sep 29 #NodeJs
Nodejs实现文件上传的示例代码
Sep 26 #NodeJs
详解nodejs通过代理(proxy)发送http请求(request)
Sep 22 #NodeJs
You might like
PHP随机字符串生成代码(包括大小写字母)
2013/06/24 PHP
浅析Yii2 gridview实现批量删除教程
2016/04/22 PHP
PHP实现大数(浮点数)取余的方法
2017/02/18 PHP
PHP实现Huffman编码/解码的示例代码
2018/04/20 PHP
给Function做的OOP扩展
2009/05/07 Javascript
jquery ajax提交表单数据的两种方式
2009/11/24 Javascript
javascript与CSS复习(二)
2010/06/29 Javascript
点击A元素触发B元素的事件在IE8下会识别成A元素
2014/09/04 Javascript
JS控制弹出新页面窗口位置和大小的方法
2015/03/02 Javascript
JS定义类的六种方式详解
2016/05/12 Javascript
JS传递对象数组为参数给后端,后端获取的实例代码
2016/06/28 Javascript
JavaScript读二进制文件并用ajax传输二进制流的方法
2016/07/18 Javascript
JS实现根据文件字节数返回文件大小的方法
2016/08/02 Javascript
使用BootStrap实现用户登录界面UI
2016/08/10 Javascript
简单模拟node.js中require的加载机制
2016/10/27 Javascript
jQuery焦点图左右转换效果
2016/12/12 Javascript
详解基于React.js和Node.js的SSR实现方案
2019/03/21 Javascript
小程序云开发教程如何使用云函数实现点赞功能
2019/05/18 Javascript
微信小程序 wx:for遍历循环使用实例解析
2019/09/09 Javascript
原生js实现密码强度验证功能
2020/03/18 Javascript
原生JS实现记忆翻牌游戏
2020/07/31 Javascript
[04:40]2016个国际邀请赛中国区预选赛场地——华西村观战指南
2016/06/25 DOTA
[50:38]DOTA2-DPC中国联赛 正赛 Phoenix vs CDEC BO3 第二场 3月7日
2021/03/11 DOTA
在Django的模板中使用认证数据的方法
2015/07/23 Python
1分钟快速生成用于网页内容提取的xslt
2018/02/23 Python
Python3监控疫情的完整代码
2020/02/20 Python
Windows 下更改 jupyterlab 默认启动位置的教程详解
2020/05/18 Python
纯CSS3实现的8种Loading动画效果
2014/07/05 HTML / CSS
HTML5为输入框添加语音输入功能的实现方法
2017/02/06 HTML / CSS
小区文明倡议书
2014/05/16 职场文书
禁毒宣传标语
2014/06/19 职场文书
工作失职检讨书500字
2014/10/17 职场文书
党建工作目标管理责任书
2015/01/29 职场文书
道歉短信大全
2015/05/12 职场文书
活动简报范文
2015/07/22 职场文书
CSS实现五种常用的2D转换
2021/12/06 HTML / CSS