在Phusion Passenger / Apache / Ubuntu上部署RoR应用程序时的权限被拒绝错误

时间:2013-10-24 22:06:27

标签: ruby-on-rails passenger

在:

上部署RoR应用
  • Ubuntu 12.04
  • Ruby 1.9.3
  • Apache 2
  • Phusion Passenger 4.0.8
  • Rails 4.0.0

我正在以root用户身份进行部署以尝试解决问题。当我运行Apache并点击应用程序时,我在我的log / production.log中得到了他的错误(当然Rails的HTTP 500 HTML出现在浏览器上):

F, [2013-10-24T21:54:50.253917 #29204] FATAL -- : 
Errno::EACCES (Permission denied - /depot/tmp/cache):
  app/views/store/index.html.erb:11:in `_app_views_store_index_html_erb___649405275_79899210'

我做了一些搜索,可能是用户权限问题。我查看了在我的服务器上运行各种进程的用户。这是一个top转储:

  PID USER      PR  NI  VIRT  RES  SHR S %CPU %MEM    TIME+  COMMAND                                                                                
    1 root      20   0  3520 1696 1276 S  0.0  0.3   0:00.76 init                                                                                   
    2 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kthreadd                                                                               
    3 root      20   0     0    0    0 S  0.0  0.0   0:00.36 ksoftirqd/0                                                                            
    5 root      20   0     0    0    0 S  0.0  0.0   0:00.12 kworker/u:0                                                                            
    6 root      RT   0     0    0    0 S  0.0  0.0   0:00.00 migration/0                                                                            
    7 root      RT   0     0    0    0 S  0.0  0.0   0:00.14 watchdog/0                                                                             
    8 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 cpuset                                                                                 
    9 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 khelper                                                                                
   10 root      20   0     0    0    0 S  0.0  0.0   0:00.00 kdevtmpfs                                                                              
   11 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 netns                                                                                  
   12 root      20   0     0    0    0 S  0.0  0.0   0:00.04 sync_supers                                                                            
   13 root      20   0     0    0    0 S  0.0  0.0   0:00.00 bdi-default                                                                            
   14 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kintegrityd                                                                            
   15 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kblockd                                                                                
   16 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 ata_sff                                                                                
   17 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khubd                                                                                  
   18 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 md                                                                                     
   20 root      20   0     0    0    0 S  0.0  0.0   0:00.25 kworker/u:1                                                                            
   21 root      20   0     0    0    0 S  0.0  0.0   0:00.00 khungtaskd                                                                             
   22 root      20   0     0    0    0 S  0.0  0.0   0:00.65 kswapd0                                                                                
   23 root      25   5     0    0    0 S  0.0  0.0   0:00.00 ksmd                                                                                   
   24 root      20   0     0    0    0 S  0.0  0.0   0:00.00 fsnotify_mark                                                                          
   25 root      20   0     0    0    0 S  0.0  0.0   0:00.00 ecryptfs-kthrea                                                                        
   26 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 crypto                                                                                 
   34 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kthrotld                                                                               
   37 root      20   0     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_0                                                                              
   38 root      20   0     0    0    0 S  0.0  0.0   0:00.00 scsi_eh_1                                                                              
   58 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 devfreq_wq                                                                             
  248 root      20   0     0    0    0 S  0.0  0.0   0:00.57 jbd2/vda-8                                                                             
  249 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 ext4-dio-unwrit                                                                        
  313 root      20   0  2816  428  428 S  0.0  0.1   0:00.05 upstart-udev-br                                                                        
  316 root      20   0  3088  724  724 S  0.0  0.1   0:00.03 udevd                                                                                  
  411 root      20   0  3084  276  272 S  0.0  0.1   0:00.00 udevd                                                                                  
  412 root      20   0  3084  280  276 S  0.0  0.1   0:00.00 udevd                                                                                  
  426 root       0 -20     0    0    0 S  0.0  0.0   0:00.00 kpsmoused                                                                              
  553 root      20   0  2828  200  196 S  0.0  0.0   0:00.00 upstart-socket-                                                                        
  580 messageb  20   0  3240  428  428 S  0.0  0.1   0:00.00 dbus-daemon                                                                            
  622 syslog    20   0 30020 1008  952 S  0.0  0.2   0:00.71 rsyslogd                                                                               
  636 root      20   0  4612  776  656 S  0.0  0.2   0:00.00 getty                                                                                  
  637 root      20   0  4612  776  656 S  0.0  0.2   0:00.00 getty                                                                                  
  650 root      20   0  4612  772  656 S  0.0  0.2   0:00.00 getty                                                                                  
  651 root      20   0  4612  768  656 S  0.0  0.2   0:00.00 getty                                                                                  
  655 root      20   0  4612  776  656 S  0.0  0.2   0:00.00 getty                                                                                  
  663 root      20   0  2156  592  496 S  0.0  0.1   0:00.00 acpid                                                                                  
  664 root      20   0  2600  848  680 S  0.0  0.2   0:00.02 cron                                                                                   
  666 daemon    20   0  2452  344  220 S  0.0  0.1   0:00.00 atd                                                                                    
  745 root      20   0  6664 2348 1912 S  0.0  0.5   0:00.00 sshd                                                                                   
  751 root      20   0  4612  776  660 S  0.0  0.2   0:00.00 getty                                                                                  
 7272 mysql     20   0  319m  36m 7044 S  0.0  7.5   0:03.82 mysqld                                                                                 
 7625 root      20   0  8176 4352 2688 S  0.0  0.9   0:00.82 apache2                                                                                
28278 root      20   0     0    0    0 S  0.0  0.0   0:00.00 flush-253:0                                                                            
28554 root      20   0     0    0    0 S  0.0  0.0   0:00.05 kworker/0:2                                                                            
28681 root      20   0     0    0    0 S  0.0  0.0   0:00.05 kworker/0:0                                                                            
28970 root      20   0 11408 3340 2616 S  0.0  0.7   0:00.04 sshd                                                                                   
28984 depot     20   0 11408 1560  832 S  0.0  0.3   0:00.02 sshd                                                                                   
28985 depot     20   0 10168 6552 1596 S  0.0  1.3   0:00.35 bash                                                                                   
29102 www-data  20   0  8216 2208  524 S  0.0  0.4   0:00.00 apache2                                                                                
29103 root      20   0  7256 1704 1504 S  0.0  0.3   0:00.00 PassengerWatchd                                                                        
29106 root      20   0 34652 2868 2376 S  0.0  0.6   0:00.17 PassengerHelper                                                                        
29111 nobody    20   0 16992 3776 3032 S  0.0  0.7   0:00.00 PassengerLoggin                                                                        
29121 www-data  20   0  225m 2628  840 S  0.0  0.5   0:00.00 apache2                                                                                
29122 www-data  20   0  226m 3412 1556 S  0.0  0.7   0:00.00 apache2                                                                                
29185 www-data  20   0 48496  39m 3852 S  0.0  7.9   0:02.97 ruby1.9.1                                                                              
29204 www-data  20   0 68052  47m 3972 S  0.0  9.5   0:00.24 ruby1.9.1                                                                              
29229 root      20   0     0    0    0 S  0.0  0.0   0:00.01 kworker/0:1                                                                            
29321 depot     20   0  2720 1048  844 R  0.0  0.2   0:00.00 top    

您可以看到apache2正在“root”和“www-data”用户下运行,并且该ruby正在“www-data”用户下运行。我试图将应用程序目录的所有权更改为“root”和“www-data”都无济于事。

this question的评论似乎暗示在“root”下部署可能是导致问题的原因。我假设这意味着我必须以root用户之外的用户重新安装我的ruby,apache和passenger。如果我错过了一些更简单的东西,这似乎有点极端。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

好的,我不能声称知道linux用户权限,但对我来说有用的是重新安装apache,passenger,ruby,rails,app和所有依赖项作为用户与root 不同。这似乎解决了问题,并且没有出现许可被拒绝的问题。

<强>更新 我应该修改我的解决方案,提到我重建了服务器并在非root用户下完成了上述所有操作(所以我没有重新安装任何东西,我从头开始重新创建整个堆栈)。

答案 1 :(得分:0)

最有可能的是,这是自动用户切换功能的效果。有关答案,请参阅http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switching

“在root下部署”并不意味着Passenger是以root用户身份安装的。他的意思是他的应用程序归root所有。该文档清楚地解释了该场景中发生的情况:出于安全原因,Passenger将拒绝以root身份运行应用程序,并将该应用程序作为“PassengerDefaultUser”运行(默认为您计算机上的www-data)。