1

我正在尝试在本地笔记本电脑开发机器上设置 Ghost 博客框架。我已成功遵循(基本安装说明)[http://docs.ghost.org/installation/mac/]。我可以通过直接访问 IP 来加载页面,即http://127.0.0.1:2368. 然而,我正在努力让页面通过 url 加载,即 mysite.localmachine.net。在 config.js 文件中,我进行了如下设置:

config = {
    // ### Development **(default)**
    development: {
        // The url to use when providing links to the site, E.g. in RSS and email.
        url: 'http://myurl',

        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost-dev.db')
            },
            debug: false
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '127.0.0.1',
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: '2368'
        }
    },

    // ### Production
    // When running Ghost in the wild, use the production environment
    // Configure your URL and mail settings here
    production: {
        url: 'http://myurl',
        mail: {},
        database: {
            client: 'sqlite3',
            connection: {
                filename: path.join(__dirname, '/content/data/ghost.db')
            },
            debug: false
        },
        server: {
            // Host to be passed to node's `net.Server#listen()`
            host: '127.0.0.1',
            // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
            port: '2368'
        }
    },
    ...
    ...
    ...

当我像这样启动博客时npm start --production,我收到以下明显成功的加载消息:

> ghost@0.4.0 start /Users/ethan/Sites/ghost
> node index

Ghost is running... 
Your blog is now available on http://myurl 

Ctrl+C to shut down

但是,如果我随后http://myurl在浏览器中导航到,我会收到一条站点不可用消息。我还尝试将端口设置为 80,我认为这是一种可能的解决方案(此处)[http://www.howtoinstallghost.com/how-to-install-ghost-on-a-mac-os-x- 10-8-mountain-lion/],但这会产生如下所示的错误:

events.js:72
        throw er; // Unhandled 'error' event
              ^
Error: listen EACCES
    at errnoException (net.js:901:11)
    at Server._listen2 (net.js:1020:19)
    at listen (net.js:1061:10)
    at net.js:1143:9
    at dns.js:72:18
    at process._tickCallback (node.js:415:13)
    at process._tickFromSpinner (node.js:390:15)
npm ERR! ghost@0.4.0 start: `node index`
npm ERR! Exit status 8
npm ERR! 
npm ERR! Failed at the ghost@0.4.0 start script.
npm ERR! This is most likely a problem with the ghost package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     node index
npm ERR! You can get their info via:
npm ERR!     npm owner ls ghost
npm ERR! There is likely additional logging output above.
npm ERR! System Darwin 13.0.0
npm ERR! command "/usr/local/Cellar/node/0.10.25/bin/node" "/usr/local/bin/npm" "start" "--production"
npm ERR! cwd /Users/ethan/Sites/ghost
npm ERR! node -v v0.10.25
npm ERR! npm -v 1.3.24
npm ERR! code ELIFECYCLE
npm ERR! 
npm ERR! Additional logging details can be found in:
npm ERR!     /Users/****/Sites/ghost/npm-debug.log
npm ERR! not ok code 0

在这一点上,我有点难过,无法找到一个清晰的解释来解释在任何地方考虑配置的方式。如果有人有任何想法,那就太好了。

4

2 回答 2

2

除非您以 root 身份运行程序,否则您不能将程序绑定到端口 80,并且出于安全原因,您不应使用应用服务器执行此操作。

如果您绑定到 0.0.0.0 或您的实际 IP 地址,您将能够访问博客http://yourhost:2368/

要在端口 80 上运行博客,请将 ip 和端口保持为 127.0.0.1:2368 并运行 apache 或 nginx 作为前端代理,这是以 root 身份运行的,但放弃了工作进程的权限。然后代理请求访问本地主机上的 node.js 服务器。

另请注意,您的博客不可用的消息http://yourhostname:2368/并不意味着它真的可以在那里访问,它只是配置中配置的 url(即哪个 url 将用于 rss 等绝对链接)

于 2014-02-01T18:06:28.860 回答
0

尝试将您的主机从更改127.0.0.1myurl

production: {
    url: 'http://myurl',
    mail: {},
    database: {
        client: 'sqlite3',
        connection: {
            filename: path.join(__dirname, '/content/data/ghost.db')
        },
        debug: false
    },
    server: {
        // Host to be passed to node's `net.Server#listen()`
        // *** Change host value here ****
        host: 'myurl',
        // Port to be passed to node's `net.Server#listen()`, for iisnode set this to `process.env.PORT`
        port: '2368'
    }
},

在某些情况下,使用localhost而不是127.0.0.1主机值也可以工作。

这是我的 Ghost 开发设置过程:http ://seanvbaker.com/a-ghost-workflow/

于 2014-01-29T12:01:40.833 回答