2015-05-20 27 views
0

我一個完整的noob部署Rails的生產環境,和我看到Capistrano的退出並出現以下錯誤:「cap aborted!」 - Capistrano在嘗試chown /tmp/passenger.RWBkftW/時中止Rails部署。與fileutils.rb

cap aborted! 
SSHKit::Runner::ExecuteError: Exception while executing as [email protected]: passenger-config exit status: 1 
passenger-config stdout: *** Cleaning stale instance directory /tmp/passenger.RWBkftW 
/home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:726:in `chown': Operation not permitted @ rb_file_chown - /tmp/passenger.RWBkftW/. (Errno::EPERM) 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:726:in `block in remove_entry_secure' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:720:in `open' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:720:in `remove_entry_secure' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:93:in `cleanup' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:49:in `block in list' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:42:in `each' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:42:in `list' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/utils.rb:53:in `select_passenger_instance' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/restart_app_command.rb:44:in `run' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/main.rb:75:in `run!' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/bin/passenger-config:37:in `<top (required)>' 
     from /home/deploy/.rbenv/versions/2.2.1/bin/passenger-config:23:in `load' 
     from /home/deploy/.rbenv/versions/2.2.1/bin/passenger-config:23:in `<main>' 
passenger-config stderr: Nothing written 

SSHKit::Command::Failed: passenger-config exit status: 1 
passenger-config stdout: *** Cleaning stale instance directory /tmp/passenger.RWBkftW 
/home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:726:in `chown': Operation not permitted @ rb_file_chown - /tmp/passenger.RWBkftW/. (Errno::EPERM) 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:726:in `block in remove_entry_secure' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:720:in `open' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:720:in `remove_entry_secure' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:93:in `cleanup' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:49:in `block in list' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:42:in `each' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:42:in `list' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/utils.rb:53:in `select_passenger_instance' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/restart_app_command.rb:44:in `run' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/main.rb:75:in `run!' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/bin/passenger-config:37:in `<top (required)>' 
     from /home/deploy/.rbenv/versions/2.2.1/bin/passenger-config:23:in `load' 
     from /home/deploy/.rbenv/versions/2.2.1/bin/passenger-config:23:in `<main>' 
passenger-config stderr: Nothing written 

Tasks: TOP => passenger:restart 
(See full trace by running task with --trace) 
The deploy has failed with an error: Exception while executing as [email protected]: passenger-config exit status: 1 
passenger-config stdout: *** Cleaning stale instance directory /tmp/passenger.RWBkftW 
/home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:726:in `chown': Operation not permitted @ rb_file_chown - /tmp/passenger.RWBkftW/. (Errno::EPERM) 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:726:in `block in remove_entry_secure' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:720:in `open' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/2.2.0/fileutils.rb:720:in `remove_entry_secure' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:93:in `cleanup' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:49:in `block in list' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:42:in `each' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/admin_tools/instance_registry.rb:42:in `list' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/utils.rb:53:in `select_passenger_instance' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/restart_app_command.rb:44:in `run' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/lib/phusion_passenger/config/main.rb:75:in `run!' 
     from /home/deploy/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/passenger-5.0.7/bin/passenger-config:37:in `<top (required)>' 
     from /home/deploy/.rbenv/versions/2.2.1/bin/passenger-config:23:in `load' 
     from /home/deploy/.rbenv/versions/2.2.1/bin/passenger-config:23:in `<main>' 
passenger-config stderr: Nothing written 
[[email protected] rally_app]$ 

這個問題似乎有什麼東西做的Phusion乘客的配置和也許是部署用戶的權限,但我不知道如何繼續。

在此先感謝您的幫助。

更新:錯誤似乎是,乘客在/ tmp/root用戶,但隨後試圖清理/刪除作爲由乘客承擔,因爲「部署」中的「部署」用戶創建文件擁有environments.rb。

在/ tmp /迪爾斯樣子:

4 drwxr-xr-x. 4 root  root  4096 May 20 14:15 passenger.Jy8mOoq/ 
4 drwxr-xr-x. 4 root  root  4096 May 5 07:14 passenger.jZAgQb1/ 
4 drwxr-xr-x. 4 root  root  4096 May 7 07:13 passenger.M9fxTPM/ 
4 drwxr-xr-x. 4 root  root  4096 May 6 13:12 passenger.RWBkftW/ 

我不認爲這是與乘客的問題;我的'部署'用戶的權限似乎更可能是一個問題。我按照Capistrano的說明設置了部署用戶here

回答

1

我對Passenger沒有經驗,但是從你回溯看來,你的部署用戶似乎沒有權限訪問/tmp/passenger.RWBkftW/。文件。

退房,什麼用戶運行的乘客下,例如在您的服務器上

ps aux 

命令。

然後,您應該授予您的部署用戶訪問乘客的權限,或者通過運行乘客的用戶部署應用程序。

+0

乘客運行無論用戶擁有environment.rb,在我的情況下,已經是用戶'部署'。 – CryptoPiggy

0

乘客作者在這裏。這很像斯坦尼斯拉夫所說的。但是我認爲Passenger在遇到這樣的問題時不應該因錯誤而中止。它只是試圖清理陳舊的目錄。我會進行更改以確保它可以繼續運行。

編輯:這已在commit c957e9e1171實施。

+0

嗨@Hongli,我升級到Passenger 5.0.8重新啓動Apache和我的應用程序,但部署時仍然出現完全相同的錯誤。錯誤中引用的行號略有差異,當然現在路徑指向/passenger-5.0.8/,但錯誤是相同的。 – CryptoPiggy

+0

更改不在5.0.8中。它將成爲5.0.9的一部分。 – Hongli