私の環境は次のとおりです。
- 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 の構成を再構成できますか?
前もって感謝します!!
ジェペトコ