0

#335 Deploying to a VPSに従っています。実行するとcap deploy:cold、最後に報告される以外はすべてうまくいきます

executing 'deploy:start'
executing "/etc/init.d/unicorn_just4magic start"
servers: ["106.XXX.XXX.XXX"]
[106.XXX.XXX.XXX] executing command
out :: 106.XXX.XXX.XXX sh: /etc/init.d/unicorn_just4magic: Permission denied
command finished in 502ms
failed: "env PATH=$HOME/.rbenv/shims:$HOME/.rbenv/bin:$PATH sh -c '/etc/init.d/unicorn_just4magic start'" on 
106.XXX.XXX.XXX     

VPS で手動で実行できrails server、まったく問題ありません。しかし、cap を使用してデプロイすると、上記のエラーが発生します。自分のサイトにアクセスすると、Sorry Something went wrongプロンプトが表示されます

更新: deploy.rb はここにあり、ここにそのstart/restart部分があります

  %w[start stop restart].each do |command|
    desc "#{command} unicorn server"
    task command, roles: :app, except: {no_release: true} do
      run "/etc/init.d/unicorn_#{application} #{command}"
    end
  end

UPDATE2:permission deniedプロンプトが表示されなくなり、別の問題が発生しました: sudo: /etc/init.d/unicorn_just4magic: command not found

Capistrano deploy:start with unicornDuring cap deploy:cold - command not found for /etc/init.d/unicorn が見つかりました 。シェル スクリプトの行区切りを変更し、gemfile.lockgit と set :bundle_flags, ''. それでもエラーが発生する

4

2 に答える 2

1

ローカルファイル /config/unicorn_init.sh を実行して実行権限を与えることで解決しchmod +x config/unicorn_init.shました。それをあなたのgitレポにプッシュし、サーバーにcap deployすると、私にとっては魅力的でした。

サーバーのアクセス許可をいじるのはうまくいかないようです。

また、説明どおりにファイルが見つからないように見える場合 (「コマンドが見つかりません」)、cap deploy:setup新しいアクセス許可でもう一度実行して、そこから移動してみてください。権限の問題により、シンボリックリンクが正しく作成されていない可能性がありますか?

それが役立つことを願っています!

于 2014-04-09T08:23:00.050 に答える
0

デフォルトでは、Unix ユーザーはその /home/user/ ディレクトリにアクセス許可を持ってい
ますunicorn_just4magic
この問題を解決するには、次のことができます:
-unicorn_just4magicホームディレクトリの下のどこかに移動します (これはユニコーン設定ファイルで設定できます)
または
- ユーザーの /etc/ ディレクトリに権限を追加します
$ chown your_username /etc/init.d/unicorn_just4magic

于 2013-09-19T08:28:32.103 に答える