簡體   English   中英

如何讓passenger-config restart-app工作?

[英]How can I get passenger-config restart-app to work?

使用rbenv和ruby 2.2.1在Ubuntu 14.04上安裝Rails 4.1。

使用capistrano和capistrano-passenger gem,但最后重啟失敗:

INFO [8213c63a] Running /usr/bin/env passenger-config restart-app /home/deployer/my_app --ignore-app-not-running as deployer@mysite.com
DEBUG [8213c63a] Command: passenger-config restart-app
DEBUG [8213c63a]    Please pass either an app path prefix or an app group name. See --help for more information.

當我嘗試通過SSH在命令行運行此命令時,我得到:

    deployer@host:~/app/shared/config$ passenger-config restart-app
*** ERROR: You are not authorized to query the status for this

我在這做錯了什么?

我正在使用Apache,這是我的/etc/apache2/apache2.conf的相關部分:

LoadModule passenger_module /home/deployer/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.5/buildout/apache2/mod_passenger.so
   <IfModule mod_passenger.c>
     PassengerRoot /home/deployer/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.5
     PassengerDefaultRuby /home/deployer/.rbenv/versions/2.2.1/bin/ruby
   </IfModule>

<VirtualHost *:80>
      ServerName mysite.name.com
      # !!! Be sure to point DocumentRoot to 'public'!
      DocumentRoot /home/deployer/myssite/current/public
      <Directory /home/deployer/mysite/current/public>
         # This relaxes Apache security settings.
         AllowOverride all
         # MultiViews must be turned off.
         Options -MultiViews
         # Uncomment this if you're on Apache >= 2.4:
         Require all granted
      </Directory>
   </VirtualHost>

這就是讓我跑步的原因,我把它添加到了我的conifg/deploy.rb

set :passenger_restart_with_sudo, true

參考: https//github.com/capistrano/passenger/

要為deployer用戶添加無密碼的sudo訪問權限,請在服務器上執行以下操作:

(您可能希望對允許的命令更具體)

sudo tee /etc/sudoers.d/deployer > /dev/null <<'EOF'
deployer ALL=(ALL) NOPASSWD:ALL
EOF

......並且在你的delpoy.rb ,有:

set :user, 'deployer' # Deployment user on remote servers

注意 :應該注意的是,Passenger作者正在研究一種方法,以便將來不再需要sudo

如果您不想使用sudo重新啟動應用程序服務器,只需添加到config/deploy.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
end

要使用sudo重新啟動(請注意,它對Passenger <5沒有任何影響):

set :passenger_restart_with_sudo, false

如果要更改重新啟動選項,可以覆蓋以下選項:

set :passenger_restart_command, 'passenger-config restart-app'
set :passenger_restart_options, -> { "#{deploy_to} --ignore-app-not-running" }

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM