加勒特的回答真的很有帮助,只是想发布更多细节.做了很多修补才把它修好...
我也在使用passenger,但使用的是nginx而不是apache.
首先,别忘了你需要安装sinatra,这让我有一段时间感到困惑.
然后你需要建立一个目录来运行这个东西,它必须有一个公共和tmp文件夹.它们可以是空的,但问题是git不会在repo中保存空目录.目录中必须至少有一个文件,所以我制作了一些垃圾文件作为占位符.这是git中一个奇怪的特性/错误.
我使用的是resque插件,所以我在那里创建了一个目录(默认的config.ru就是这个目录).加勒特似乎在他的rails_根目录中创建了一个新的"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中的内容.形态
server {
listen 80;
server_name resque.seoaholic.com;
root /home/admin/public_html/seoaholic/current/vendor/plugins/resque/public;
passenger_enabled on;
}
因此,它会在部署时重新启动,在部署时可能是这样的.rb
run "touch #{current_path}/vendor/plugins/resque/tmp/restart.txt"
我不确定这是否是最好的方式,我以前从未安装过rack/sinatra应用程序.但它是有效的.
这只是为了让监控应用程序运行起来.下一步我需要找出god 的部分.