我尝试将带有 capistrano、passenger 和 nginx 的 rails 项目部署到 AWS 服务器。但我无法部署它,因为这个错误。
INFO [0007b4de] Finished in 0.212 seconds with exit status 0 (successful).
DEBUG [484bf595] Running /usr/bin/env [ -L /var/www/happyhour/releases/20150402075058/bin ] as myname@x.x.x.x
DEBUG [484bf595] Command: [ -L /var/www/myproject/releases/20150402075058/bin ]
DEBUG [484bf595] Finished in 0.625 seconds with exit status 1 (failed).
DEBUG [35fe9fd2] Running /usr/bin/env [ -d /var/www/myproject/releases/20150402075058/bin ] as myname@x.x.x.x
DEBUG [35fe9fd2] Command: [ -d /var/www/myproject/releases/20150402075058/bin ]
DEBUG [35fe9fd2] Finished in 0.580 seconds with exit status 0 (successful).
和错误。
DEBUG [38c8a3d8] /usr/bin/env: passenger: No such file or directory
cap aborted!
SSHKit::Runner::ExecuteError: Exception while executing as myname@x.x.x.x: passenger exit status: 127
passenger stdout: Nothing written
passenger stderr: /usr/bin/env: passenger: No such file or directory
文件Capfile.rb
require 'capistrano/setup'
require 'capistrano/deploy'
require 'capistrano/rails'
require 'capistrano/rails/assets'
require 'capistrano/rails/migrations'
require 'rvm1/capistrano3'
# require "rvm/capistrano"
require 'capistrano/bundler'
require 'capistrano/passenger'
# require 'whenever/capistrano'
# require 'capistrano3/unicorn'
Dir.glob('lib/capistrano/tasks/*.rake').each { |r| import r }
文件部署.rb
require 'rvm1/capistrano3'
# require "rvm/capistrano"
# require 'whenever/capistrano'
lock '3.2.1'
set :application, 'myproject'
set :repo_url, 'git@github.com:myname/myproject.git'
set :deploy_to, '/var/www/myproject'
set :keep_releases, 4
set :rvm_type, :system
set :rvm1_ruby_version, '2.2.0'
#set :default_env, { rvm_bin_path: '~/.rvm/bin' }
# set :default_env, { path: "/opt/ruby/bin:$PATH" }
set :linked_dirs, %w{bin log tmp/backup tmp/pids tmp/cache tmp/sockets vendor/bundle}
set :passenger_pid, "#{shared_path}/tmp/pids/passenger.pid"
set :bundle_jobs, 4
# set :whenever_identifier, ->{ "#{fetch(:application)}_#{fetch(:stage)}" }
# set :whenever_command, "bundle exec whenever"
after 'deploy:publishing', 'deploy:restart'
namespace :deploy do
task :restart do
invoke 'passenger:restart'
end
end
文件制作.rb
set :branch, 'develop'
role :app, %w{myname@x.x.x.x}
role :web, %w{myname@x.x.x.x}
role :db, %w{myname@x.x.x.x}
set :stage, :production
set :rails_env, 'production'
server 'IP Server', user: 'myname', roles: %w{web app db}
请帮我解决这个问题。
谢谢,
最佳答案
作为解决方法,尝试将其放入您的 deploy.rb
:
set :passenger_restart_with_touch, true
这样做将跳过乘客版本的检查。有关详细信息,请参阅此 GitHub issue .
关于ruby-on-rails -/usr/bin/env : passenger: No such file or directory and with exit status 1 (failed),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29409393/