0
我尝试在运行ubuntu 14 LTS的本地虚拟机上部署我的rails应用程序。我使用nginx和phusion乘客。另外,我使用capistrano gem进行部署。使用Capistrano在Ubuntu服务器上部署Rails应用程序gem
我将本地ssh密钥添加到虚拟机的授权密钥。
我也有通过ssh连接到我的虚拟机一样,没有任何问题:
SSH [email protected]
然而,当我写:
bundle exec cap production deploy
我得到以下错误:
cap aborted!
Net::SSH::Disconnect: connection closed by remote host
EOFError: end of file reached
Tasks: TOP => rbenv:validate
我deploy.rb文件:
server "192.168.0.8", port: 80, roles: %i(:web :app :db), primary: true
set :log_level, :debug
set :application, "mySimpleBlog"
set :repo_url, "[email protected]:NeilAlishev/mySimpleBlog.git"
set :user, "neil"
set :linked_files, fetch(:linked_files, []).push("config/database.yml", "config/secrets.yml")
set :linked_dirs, fetch(:linked_dirs, []).push("log", "tmp/pids", "tmp/cache", "tmp/sockets",
"vendor/bundle", "public/system", "public/uploads")
set :deploy_to, "/home/#{fetch(:user)}/src/#{fetch(:application)}"
set :rbenv_type, :user
set :rbenv_ruby, "2.2.4"
set :rbenv_prefix, "RBENV_ROOT=#{fetch(:rbenv_path)} "\
"RBENV_VERSION=#{fetch(:rbenv_ruby)} #{fetch(:rbenv_path)}/bin/rbenv exec"
set :rbenv_map_bins, %w(rake gem bundle ruby rails)
set :rbenv_roles, :all
namespace :deploy do
desc "Restart application"
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute :touch, release_path.join("tmp/restart.txt")
end
end
after :publishing, "deploy:restart"
after :finishing, "deploy:cleanup"
end
我的部署/ production.rb文件:
set :stage, :production
server "192.168.0.8", user: "neil", roles: %w(web app db)
role :app, %w([email protected])
role :web, %w([email protected])
role :db, %w([email protected])
我的nginx.conf文件:
server {
listen 80;
server_name 192.168.0.8;
charset utf-8;
rails_env production;
passenger_enabled on;
root /home/neil/mySimpleBlog/current/public;
}
灿你在[这个线程](http://stackoverflow.com/questio NS/33567498/Capistrano的部署错误,而-部署到Ubuntu的服务器)? – BoraMa
您确定您可以通过SSH连接到定位服务器吗? – qcam
当我只输入 ssh neil @ address_of_the_server 我访问服务器没有任何问题。 – Neil