0

在以下位置部署 RoR 应用程序:

  • Ubuntu 12.04
  • 红宝石 1.9.3
  • 阿帕奇 2
  • Phusion 乘客 4.0.8
  • 导轨 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”,但无济于事。

这个问题的评论似乎表明在“root”下部署可能是问题的原因。我假设这意味着我必须以 root 以外的用户身份重新安装我的 ruby​​、apache 和乘客。如果我错过了其他更简单的东西,这似乎有点极端。

有任何想法吗?

4

2 回答 2

1

好的,我不能声称知道 linux 用户权限,但对我有用的是以不同于 root的用户身份重新安装 apache、passenger、ruby、rails、应用程序和所有依赖项。这似乎解决了问题,并且没有出现权限被拒绝的问题。

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

于 2013-10-25T19:54:25.080 回答
0

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

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

于 2013-10-24T22:43:07.440 回答