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访问ActiveX对象,以操作Access数据库为例。
Dec 15 NodeJs
Nodejs进程管理模块forever详解
Jun 01 NodeJs
轻松创建nodejs服务器(10):处理上传图片
Dec 18 NodeJs
NodeJs的优势和适合开发的程序
Aug 14 NodeJs
nodejs入门教程六:express模块用法示例
Apr 24 NodeJs
nodejs socket服务端和客户端简单通信功能
Sep 14 NodeJs
详解使用PM2管理nodejs进程
Oct 24 NodeJs
nodejs async异步常用函数总结(推荐)
Nov 17 NodeJs
nodejs结合socket.io实现websocket通信功能的方法
Jan 12 NodeJs
详解nodeJs文件系统(fs)与流(stream)
Jan 24 NodeJs
nodejs实现套接字服务功能详解
Jun 21 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 02 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 长文章分页函数 带使用方法,不会分割段落,翻页在底部
2009/10/22 PHP
几种有用的变型 PHP中循环语句的用法介绍
2012/01/30 PHP
PHP中Session和Cookie是如何操作的
2015/10/10 PHP
php+mysql+jquery实现日历签到功能
2017/02/27 PHP
JQuery 表格操作(交替显示、拖动表格行、选择行等)
2009/07/29 Javascript
JavaScript中String和StringBuffer的速度之争
2010/04/01 Javascript
用dtree实现树形菜单 dtree使用说明
2011/10/17 Javascript
Jquery遍历checkbox获取选中项value值的方法
2014/02/13 Javascript
判断在css加载完毕后执行后续代码示例
2014/09/03 Javascript
Bootstrap开关(switch)控件学习笔记分享
2016/05/30 Javascript
Angularjs在初始化未完毕时出现闪烁问题的解决方法分析
2016/08/05 Javascript
javascript self对象使用详解
2016/10/18 Javascript
浅谈javascript中的数据类型转换
2016/12/27 Javascript
BootStrap便签页的简单应用
2017/01/06 Javascript
详解离线安装npm包的几种方法
2018/11/25 Javascript
jQuery实现的模仿雨滴下落动画效果
2018/12/11 jQuery
200行HTML+JavaScript实现年会抽奖程序
2019/01/22 Javascript
Vue中使用canvas方法总结
2019/02/12 Javascript
vue2.x 对象劫持的原理实现
2020/04/19 Javascript
[00:50]2014DOTA2国际邀请赛 NEWBEE战队回顾
2014/08/01 DOTA
[48:05]2018DOTA2亚洲邀请赛 3.31 小组赛 B组 VGJ.T vs VP
2018/03/31 DOTA
详解Python中的from..import绝对导入语句
2016/06/21 Python
Django 添加静态文件的两种实现方法(必看篇)
2017/07/14 Python
关于不懂Chromedriver如何配置环境变量问题解决方法
2019/06/12 Python
浅谈Django2.0 加xadmin踩的坑
2019/11/15 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
Python使用type动态创建类操作示例
2020/02/29 Python
python实现图片横向和纵向拼接
2020/03/05 Python
Python定时任务APScheduler原理及实例解析
2020/05/30 Python
澳大利亚最超值的自行车之家:Reid Cycles
2019/03/24 全球购物
Mountain Warehouse德国官网:英国户外零售商
2019/08/11 全球购物
电气专业推荐信范文
2013/11/18 职场文书
交通事故赔偿协议书
2014/04/15 职场文书
危货运输企业安全生产责任书
2014/07/28 职场文书
庆祝国庆节演讲稿2014
2014/09/19 职场文书
2014年学生会工作总结范文
2014/11/07 职场文书