我在Webistrano中运行部署任务时遇到问题。 这只有当我用Phusion Passenger从Nginx运行Webistrano时。
当我使用以下命令运行Webistano时,一切运行正常。
ruby script / server -d -p 3000 -e production
但是当从Phusion Passenger(使用“passenger-install-nginx-module”编译)运行它并且我想进行部署(应用程序正在运行)时,我的日志中出现以下错误:
/usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/spec_set.rb:90:in `materialize': Could not find rake-0.9.2.2 in any of the sources (Bundler::GemNotFound)
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/spec_set.rb:83:in `map!'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/spec_set.rb:83:in `materialize'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/definition.rb:127:in `specs'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/definition.rb:172:in `specs_for'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/definition.rb:161:in `requested_specs'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/environment.rb:23:in `requested_specs'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/runtime.rb:11:in `setup'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler.rb:107:in `setup'
from /usr/local/lib/ruby/gems/1.9.1/gems/bundler-1.1.5/lib/bundler/setup.rb:17
我的捆绑gemlist:
Gems included by the bundle:
* actionmailer (2.3.11)
* actionpack (2.3.11)
* activerecord (2.3.11)
* activeresource (2.3.11)
* activesupport (2.3.11)
* bundler (1.1.5)
* capistrano (2.6.0)
* erubis (2.7.0)
* exception_notification (2.3.3.0)
* highline (1.6.13)
* mocha (0.9.8)
* mysql (2.8.1)
* net-scp (1.0.4)
* net-sftp (2.0.5)
* net-ssh (2.5.2)
* net-ssh-gateway (1.1.0)
* open4 (0.9.3)
* rack (1.1.3)
* rails (2.3.11)
* rake (0.9.2.2)
* syntax (1.0.0)
这是在我的nginx.conf中:
passenger_root /usr/local/lib/ruby/gems/1.9.1/gems/passenger-3.0.15;
passenger_ruby /usr/local/bin/ruby;
我的特定服务器配置:
passenger_enabled on;
rails_env production;
奇怪的是,使用WeBrick运行它只是应该工作,但通过nginx的乘客不是。 我不是很喜欢Ruby,我真的不知道应该从哪里开始看。
我从源代码安装ruby,没有rvm。
提前致谢!
编辑:
错误来自这一行:
ruby script / runner -e production'partloyment = Deployment.find(1085); Webistrano :: Deployer.new(部署).invoke_task! “
从命令行执行时按预期工作,但在通过nginx / passenger从应用程序内执行时不会。
答案 0 :(得分:1)
可能有点晚了,但我猜这个错误与用户运行有关。 Passenger在Apache用户下运行。在Webistrano wiki上讨论的git存在类似问题。
https://github.com/peritor/webistrano/wiki/Installing-with-Phusion-Passenger