我正在部署我的第一个rails应用程序。我这样做有些麻烦。我将描述我到目前为止所做的事情。
1)我通过gorails.com正确配置了所有内容
2)我正在尝试在Digital Ocean上部署它
3)我执行cap deploy production
,最终结果成功,中间有一些失败。
4)我启动了nginx服务器
5)在我的浏览器中,它给了我500个错误。
6)我检查了我的production.log
,它显示了它运行的所有迁移和种子。它完美地创建了表格(正如我在我的数据库中检查过的那样)。
7)我检查了nginx error.log
,结果显示index.html缺失。
8)所以为了检查,我在公共目录中添加了index.html文件,浏览器正确显示了内容。
9)但是我的登陆页面是家庭控制器中的index.html.erb,因此在路径文件中我做了一些修改,但浏览器的输出没有变化。
10)我注意到error.log和production.log没有立即更新。我不知道为什么。
11)我需要帮助让nginx显示我的index.html.erb文件并将其与rails app连接。数据库配置正确。
12)我的nginx配置文件是:
server {
listen 80 default_server;
server_name digital_ocean_ip;
passenger_enabled on;
rails_env production;
root /home/myapp/myapp/current/public;
# redirect server error pages to the static page /50x.html
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root html;
}
}
此处我的用户名和我的应用程序名称相同(/ myapp / myapp)
13)我的routes.rb文件是:
Rails.application.routes.draw do
root "public#index"
get 'access/logout'
get '/signup' => "users#signup"
get '/register' => "users#signup"
get '/login' => "access#login"
get '/' => "home#index"
resources :users do
member do
get :confirm_email
end
collection do
post :search
end
end
resources :books do
collection do
get :recent
get :academic
get :novels
get :preparation
end
end
resources :password_resets
match '/users/show' => 'users#books', :via=> :get
match ':controller(/:action(/:id))', :via => [:get,:post]
get '*path' => redirect('404')
end
14)我的deploy.rb文件是:
lock '3.4.0'
set :application, 'myapp'
set :repo_url, 'git@github.com:user_name/myapp.git'
set :deploy_to, '/home/myapp/myapp'
role :app, %w{Digitalocean_ip}
role :web, %w{Digitalocean_ip}
role :db, %w{Digitalocean_ip}
set :linked_files, %w{config/database.yml}
set :linked_dirs, %w{bin log tmp/pids tmp/cache tmp/sockets vendor/bundle public/system}
set :linked_dirs, fetch(:linked_dirs) + %w{public/uploads}
set :assets_dependencies, %w(app/assets lib/assets vendor/assets Gemfile config/routes.rb)
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
desc 'Runs rake db:seed'
task :seed => [:set_rails_env] do
on primary fetch(:migration_role) do
within release_path do
with rails_env: fetch(:rails_env) do
execute :rake, "db:seed"
end
end
end
end
after :publishing, 'deploy:restart'
after :finishing, 'deploy:cleanup'
end
15)我的production.rb文件是:
set :stage, :production
server 'Digitalocean_ip', user: 'myapp', roles: %w{web app db}
16)这些都是我的配置文件。请告诉我哪里出了问题
提前致谢!