3

我捆绑了我的应用程序并将其放在我的服务器上。我正在通过新贵运行应用程序:

exec sudo -u myuser PORT=3005 MONGO_URL=mongodb://localhost:27017/ms ROOT_URL=http://www.example.com/ /usr/bin/node /var/www/priv/example.com/bundle/main.js >> $

重要的部分(我认为)是:

exec sudo -u myuser

当我通过以下方式卷曲我的应用程序时:

curl http://www.example.com/?_escaped_fragment_=

我得到一个空的身体。我的日志文件说:

spiderable: phantomjs failed: { [Error: Command failed: /bin/bash: /root/.bashrc: Permission denied
Can't open '/dev/stdin'
] killed: false, code: 255, signal: null }
stderr: /bin/bash: /root/.bashrc: Permission denied
Can't open '/dev/stdin'

我在 /root/.bashrc 上做了 chmod 777 但没有任何成功。如果我/bin/bash /root/.bashrc以“myuser”的身份进行操作,我也会被拒绝许可。

谁能告诉我如何设置权限,以便 phantomjs 可以做它必须做的事情?我可以指定 ~/.bashrc 在任何地方使用吗?我真的很想在谷歌上看到我的东西 :-)

非常感谢!曼努埃尔

更新

我通过 npm 安装了 phantom.js 1.8.2。以 root 身份运行应用程序没有帮助。那么错误是:

spiderable: phantomjs failed: { [Error: Command failed: Can't open '/dev/stdin' ] killed: false, code: 255, signal: null } stderr: Can't open '/dev/stdin'

我发现,它似乎是导致问题的包。我在这里打开了一个问题: github.com/alanning/meteor-roles/issues/3

4

2 回答 2

1

Alanning 解决了这个问题,但 spiderable 仍然无法正常工作。解决方案是删除 phantomjs,因为我是通过 npm 安装的。然后我直接从http://phantomjs.org/download.html重新安装了它。现在它正在工作!

于 2013-03-16T18:34:25.143 回答
-1

我又发现了这个问题,问题是服务器端的发布,在某些情况下只是返回但没有停止订阅。

例如在服务器上我有一个出版物

return unless @userId

正确的方法是:

return this.stop() unless @userId

如果爬虫来了,它永远不会被验证,所以要小心正确地结束发布。

于 2013-08-11T11:18:17.727 回答