カピストラーノ、nginx、パッセンジャーを使用して、Rails 3 アプリを github から ec2 にデプロイしています。
これは私の deploy.rb ファイルです:
set :application, "my-Blog"
set :repository, "https://github.com/whatever/my-Blog.git"
set :scm, :git
role :app, "ec2 DNS"
role :web, "eec2 DNS"
role :db, "ec2 DNS", :primary => true
set :user, 'ec2-user'
set :deploy_to, "/home/ec2-user/apps/Blog"
set :use_sudo, false
default_run_options[:pty] = true
set :deploy_via, :remote_cache
ssh_options[:keys] = ["#{ENV['HOME']}/.ssh/my-key.pem"]
set :keep_releases, 3
namespace :deploy do
task :start do ; end
task :stop do ; end
task :restart, :roles => :app, :except => { :no_release => true } do
end
end
deploy コマンドを実行すると、すべて問題なく、アプリは現在のディレクトリの下の ec2 にあります。これは、カピストラーノが github からソース コードを取得できることを意味します。
私の ec2 インスタンスでは、ruby、rvm、mysql、rails、nginx、passenger のすべてがセットアップされています。
しかし、ec2 DNS にアクセスしても、アプリが表示されません!
何が間違っている可能性があるかについて何か提案はありますか? これは私の最初の展開です!
ご回答有難うございます!私のアプリケーションが表示されることを期待しています! aws コンソールには、22 (SSH) と 80 (HTTP) があります。これは、ポート 80 が開いていることを意味します。私のnginx構成ファイルに何か問題があるはずだと思います.これは私がこのファイルに持っているものです:
ユーザー nginx;
server {
listen 80;
server_name ec2-54-242-228-182.compute-1.amazonaws.com;
# root /home/ec2-user/apps/Blog/current/public;
# passenger_enabled on;
}
}
ルート ディレクトリにコメントすると、パブリック DNS の URL に「Amazon Linux AMI の nginx へようこそ! コンテンツを任意の場所に配置し、nginx 構成ファイル /etc のルート構成ディレクティブを編集する必要があります。 /nginx/nginx.conf." ルートディレクトリのコメントを外すと、403エラーが発生します! ログ ファイルには、「current/public/index.html」は禁止されています (13: 許可が拒否されました) と表示されます。