[英]Passenger + Capistrano + Apache = Rails app not running
[英]Rails5 app loses session after capistrano deploy to Passenger / Apache env, works fine on Rails 4
我管理着十幾個使用 Capistrano & Passenger 的 Rails 應用程序。
我注意到,當我將更新部署到 Rails 5 應用程序時,用戶會注銷,即 session 丟失了。 使用 Rails 4 或更早版本的應用程序不會,用戶保持登錄狀態; 在所有情況下,session 處理都是 cookies(默認值)。
我這與不同版本的 Rails 或乘客有關嗎? 任何想法如何解決它?
這是 deploy.rb 部分:
namespace :deploy do
desc 'Restart application'
task :restart do
on roles(:app), in: :sequence, wait: 5 do
execute :mkdir, '-p', "#{release_path}/tmp"
execute :touch, release_path.join('tmp/restart.txt')
end
end
after :publishing, :restart
end
我正在使用
* capistrano (3.13.0)
* capistrano-bundler (1.6.0)
* capistrano-rails (1.1.8)
* capistrano-rails-console (2.3.0)
* capistrano-rvm (0.1.2)
部署: cap production deploy
在此先感謝您的幫助。 帕特里克
我認為我的問題是由於 Rails 5.2 的變化,引入了master.key
和credentials.yml.enc
來接管secrets.yml
因為我創建的 Rails 5 應用程序使用的是 5.2,所以生成器不再創建secrets.yml
文件——而且 master.key 設置也沒有啟用:
# config.require_master_key = true
我假設由於這個原因,Rails 使用了一些臨時密鑰來簽署 cookies - 只要服務器重新啟動,它就會改變。
我現在已經將config/secrets.yml
重新添加到我的項目中,從我的測試來看,問題似乎已經消失了。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.