0

Ghost 新手,NodeJS 新手,但忍不住尝试设置 Ghost。

目标:从源代码在 Azure 上启动并运行一个新的 ghost 实例。

我关注了Scott Hanselman 的帖子Jeremiah Billmann 的帖子来尝试这个。

我做了以下事情:

  • 在我的本地环境中安装了 node、ruby、grunt-cli
  • 将https://github.com/TryGhost/ghost.git的 git 克隆到我的下载文件夹中的文件夹中
  • 将所有文件(.git 文件夹除外)复制到我的存储库的根目录中
  • 在我的 repo 的根目录中打开了一个命令行
  • npm install
  • grunt init
  • grunt prod
  • 在根目录中创建了一个server.js文件,其中包含var GhostServer = require('./index');
    • (我知道这是 Azure 所必需的)
  • config.example.js重命名config.js并编辑其属性
    • 注意:没有触及数据库(sqlite3)部分中的任何内容
  • 编辑 .gitignore 以停止忽略资产、config.js 和 /core/built
  • 致力于 Bitbucket
  • Azure 接受并部署
  • 我运行了它,并收到了 500 样式的错误消息
  • 我编辑了iisnode.yml文件以使其输出完整错误

我看到的完整错误是:

TypeError: Cannot read property '__cid' of undefined
    at Runner_SQLite3.<anonymous> 

完整错误的屏幕截图如下: 在此处输入图像描述

知道我在哪里出错了吗?错误消息的性质让我怀疑这不是我,但鉴于我是新手,我可能完全错了。

4

2 回答 2

1

在标准 linux 机器上进行全新升级时,我遇到了非常相似的问题。似乎 sqlite3 在其数据库的不存在路径上阻塞。

试试看:

  1. 确保该/content/data目录存在(或您在配置文件中为该ghost-dev.db文件设置的任何路径)。如果没有,请创建它。

    通常,这应该可以解决问题。如果没有,那么您可能需要通过下面的步骤 2 强制迁移。

  2. 尝试运行:

FORCE_MIGRATION=true npm start

于 2014-08-18T14:25:01.180 回答
0

Ghost (0.5.3) 在 config.js 中默认包含以下路径:

database: {
        client: 'sqlite3',
        connection: {
            filename: path.join(__dirname, '/content/data/ghost-dev.db')
        },
        debug: false
    },

从 Ghost 的根目录运行以下一系列命令来创建文件路径和文件 sqlite3 需要:

cd content
mkdir data
cd data
touch ghost-dev.db
../../
npm start

仅供参考:如果您的 .gitignore 文件中包含以下行,则可能会发生这种情况

/content/data/*
于 2014-10-27T17:43:01.260 回答