ギャレットの答えは本当に役に立ちました。もう少し詳細を投稿したかっただけです。それを正しくするのに多くのいじくり回しが必要でした...
私はパッセンジャーも使用していますが、Apache の代わりに nginx を使用しています。
まず、sinatra をインストールする必要があることを忘れないでください。
sudo gem install sinatra
次に、実行するディレクトリを作成する必要があり、パブリックおよび tmp フォルダーが必要です。それらは空にすることができますが、問題は git がリポジトリに空のディレクトリを保存しないことです。ディレクトリには少なくとも 1 つのファイルが含まれている必要があるため、プレースホルダーとしていくつかのジャンク ファイルを作成しました。これは git の奇妙な機能/バグです。
私はresqueプラグインを使用しているので、そこにディレクトリを作成しました(デフォルトのconfig.ruがある場所)。Garrett が rails_root に新しい 'resque' ディレクトリを作成したようです。どちらかが機能するはずです。私のため...
cd MY_RAILS_APP/vendor/plugins/resque/
mkdir public
mkdir tmp
touch public/placeholder.txt
touch tmp/placeholder.txt
MY_RAILS_APP/vendor/plugins/resque/config.ru
次に、次のように編集しました。
#!/usr/bin/env ruby
require 'logger'
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/lib')
require 'resque/server'
use Rack::ShowExceptions
# Set the AUTH env variable to your basic auth password to protect Resque.
AUTH_PASSWORD = "ADD_SOME_PASSWORD_HERE"
if AUTH_PASSWORD
Resque::Server.use Rack::Auth::Basic do |username, password|
password == AUTH_PASSWORD
end
end
run Resque::Server.new
ADD_SOME_PASSWORD_HERE
アプリを保護するために使用するパスワードに変更することを忘れないでください。
最後に、私は Nginx を使用しているので、これが nginx.conf に追加したものです。
server {
listen 80;
server_name resque.seoaholic.com;
root /home/admin/public_html/seoaholic/current/vendor/plugins/resque/public;
passenger_enabled on;
}
したがって、デプロイ時に再起動されます。おそらく、 deploy.rb で次のようになります
run "touch #{current_path}/vendor/plugins/resque/tmp/restart.txt"
これが最善の方法であるかどうかはよくわかりません.rack/sinatraアプリをセットアップしたことがありません. しかし、それは機能します。
これは、監視アプリを起動するためのものです。次に、神の部分を把握する必要があります。