0

RoR アプリを以下にデプロイします。

  • Ubuntu 12.04
  • ルビー1.9.3
  • アパッチ 2
  • Phusion Passenger 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」ユーザーの下で実行されていることがわかります。アプリケーションディレクトリの所有権を「ルート」と「www-data」の両方に変更しようとしましたが、役に立ちませんでした。

この質問に対するコメントは、「ルート」での展開が問題の原因である可能性があることを示唆しているようです。これは、root 以外のユーザーとして Ruby、Apache、および Passenger を再インストールする必要があることを意味すると想定しています。もっと単純なものが他にない場合、これは少し極端に思えます。

何か案は?

4

2 に答える 2

1

わかりました、Linuxユーザーのアクセス許可を知っているとは言えませんが、私にとってうまくいったのは、ルートとは異なるユーザーとしてApache、パッセンジャー、ルビー、レール、アプリ、およびすべての依存関係を再インストールすることでした。これで問題が解決したようで、許可が拒否された問題は発生しませんでした。

更新 サーバーを再構築し、非ルートユーザーの下で上記すべてを新規インストールしたことに言及して、ソリューションを修正する必要があります(実際には何も再インストールせず、スタック全体を最初から再作成しました)。

于 2013-10-25T19:54:25.080 に答える
0

おそらく、これは自動ユーザー切り替え機能の影響です。回答については、 http://www.modrails.com/documentation/Users%20guide%20Apache.html#user_switchingを参照してください。

「ルートの下に展開する」とは、Passenger がルートとしてインストールされたことを意味するものではありません。彼は、自分のアプリケーションが root によって所有されていることを意味していました。ドキュメントでは、そのシナリオで何が起こるかを明確に説明しています。Passenger は、セキュリティ上の理由から root としてアプリを実行することを拒否し、代わりに "PassengerDefaultUser" としてアプリを実行します (マシンのデフォルトは www-data です)。

于 2013-10-24T22:43:07.440 に答える