3

私の環境は次のとおりです。

  • Ubuntu 10.04
  • ルビー 2.0.0
  • レール4.0

デプロイされた Rails アプリケーションは /var/www/application にあります。デプロイは Capistrano によって処理されるため、ディレクトリ構造は次のようになります。

root@lvps91-250-114-42:/var/www/application# ls -la
total 16
drwxrwxr-x  4 www-data www-data 4096 2013-11-14 12:53 .
drwxr-xr-x  6 www-data www-data 4096 2013-11-12 22:54 ..
lrwxrwxrwx  1 www-data www-data   39 2013-11-14 12:53 current ->  /var/www/application/releases/20131114115156
drwxrwxr-x 11 www-data www-data 4096 2013-11-14 12:51 releases
drwxrwxr-x  8 www-data www-data 4096 2013-11-13 01:49 shared

config/deploy.rb は、(../shared にインストールされている) :local ruby​​ を使用するように構成されています。カピストラーノ構成:

require 'bundler/capistrano'
require 'rvm/capistrano'

#....

set :bundle_flags,               "--deployment"

set :default_shell, '/bin/bash -l'
set :rvm_ruby_string, :local

#....

before 'deploy:setup', 'rvm:install_rvm'   
before 'deploy:setup', 'rvm:install_ruby'  

Passenger のインストール時に認識される別の rvm/ruby インストールがあるため、これが役割を果たしている可能性があります。Passenger は、次のように Apache 2 を構成するように私に言いました。

LoadModule passenger_module /root/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.24/buildout/apache2/mod_passenger.so
PassengerRoot /root/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.24
PassengerDefaultRuby /root/.rvm/wrappers/ruby-2.0.0-p247/ruby

しかし、それは私の .rvm インストール (root :-() に存在し、パーミッションを変更する必要があることについて不平を言いました (しかし、私はそれらを変更しませんでした):

It is recommended that you relax permissions as follows:

sudo chmod o+x "/root"

Press Ctrl-C to return to the shell. (Recommended)
After relaxing permissions, re-run this installer.
-OR-
Press Enter to continue anyway.

対応するsites-enabled/application構成:

<VirtualHost *:80>
   ServerName subdomain.domain.com
   # !!! Be sure to point DocumentRoot to 'public'!
  DocumentRoot /var/www/application/current/public    
   <Directory /var/www/application/current/public>
      # This relaxes Apache security settings.
      AllowOverride all
      # MultiViews must be turned off.
      Options -MultiViews
   </Directory>
</VirtualHost>

アプリケーションを起動すると、ブラウザに次のエラーが表示されました。

Cannot execute "/root/.rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.24/buildout/agents/SpawnPreparer": Permission denied (errno=13)

後:

sudo chmod o+x "/root"

すべてが機能しています。

それを修正するためのあなたのアドバイスは何ですか? .rvm とパッセンジャーを再インストールする必要がありますか? /var/www/application にあるすべての実行可能ファイルに Apache がアクセスできるように、Apache の構成を再構成できますか?

前もって感謝します!!

ジェペトコ

4

2 に答える 2

1

単一ユーザーに rvm インストール方法を使用した場合、ruby アプリケーションのファイルの所有権を rvm の所有者と同じに設定することを検討しましたか?

私自身、以前にこの問題に遭遇したことがあり、これが私がやったことです:

  • rvm を管理するための新しいユーザーを作成します
  • ルートにsudoできるように新しいユーザーを追加します
  • 新しいユーザーとしてログインし、rvm をシングル ユーザーとしてインストールします。
  • パッセンジャージェムをインストールする
  • rvmsudo を使用してモジュールのパッセンジャー インストールを実行します。
  • Ruby アプリケーションの所有権を、rvm 管理用の新しいユーザー アカウントと同じになるように設定します。
  • 時々、Apache conf に以下を追加する必要がありました:
  • SetEnv LD_LIBRARY_PATH /home/rvmuser/.rvm/default/lib
  • SetEnv GEM_PATH /home/rvmuser/.rvm/gems/ruby-1.9.3-p484:/home/rvmuser/.rvm/gems/ruby-1.9.3-p484@global

お役に立てれば!

于 2014-01-30T18:30:06.163 に答える