3

アプリケーションをバンドルしてサーバーに配置しました。upstart経由でアプリを実行しています:

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 はまだ機能しませんでした。解決策は、npm経由でインストールしたため、phantomjsを削除することでした。次に、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 に答える