VPS apache config - En yeni yolcu gemisini ekledikten sonra geçersiz komut 'PassengerDefaultRuby'


1

vps'imde bu yakut listesi vardı:

   ruby-1.9.2-p320 [ i686 ]
=* ruby-1.9.3-p194 [ i686 ]
   ruby-1.9.3-p374 [ i686 ]
   ruby-1.9.3-p392 [ i686 ]

Bugün bu vps üzerine yeni bir uygulama yüklediğim için ruby 2.02.0 ekledim rvm:

   ruby-1.9.2-p320 [ i686 ]
   ruby-1.9.3-p194 [ i686 ]
   ruby-1.9.3-p374 [ i686 ]
   ruby-1.9.3-p392 [ i686 ]
=* ruby-2.0.0-p247 [ i686 ]

yüklü passengerve passenger-apache-module, talimatlar bu satırları eklemek diyor:

   LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.19
   PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p247/ruby

için /etc/apache2/apache2.confbu var yeniden başlatma sonrasında ve, apache yeniden başlatın hata :

Syntax error on line 242 of /etc/apache2/apache2.conf:
Invalid command 'PassengerDefaultRuby', perhaps misspelled or defined by a module not included in the server configuration
Action 'configtest' failed.
The Apache error log may have more information.
   ...fail!

ve bir sorun daha , http://nccm.md adresindeki uygulamamı açtığımda:

Could not find rake-10.1.0 in any of the sources (Bundler::GemNotFound)

dan gem listkomuta Bu taş yakut 2.0 ortamında yüklenir görebilirsiniz, ama uygulaması içinde arar usr/local/rvm/gems/ruby-1.9.3-p194@globalve değil ruby-2.0.0-p247@global. Neden? Herhangi bir yardım için teşekkür ederim.

Yanıtlar:


1

Anladım!

sites-enabledyapılandırma dosyalarında ayarlayacağınız diğerlerinin kök düzeyinde atanmış bir varsayılan yakuta sahip olmanız gerekir . Örneğin, benim apache2.confdosyamda:

   LoadModule passenger_module /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.19/buildout/apache2/mod_passenger.so
   PassengerRoot /usr/local/rvm/gems/ruby-2.0.0-p247/gems/passenger-4.0.19
   PassengerDefaultRuby /usr/local/rvm/wrappers/ruby-2.0.0-p247/ruby

o zaman içinde /etc/apache2/sites-enabled/mysiteçalışması gereken uygulamayı çalıştırırsa şunu ruby-1.9.3ekleyeceğim PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby:

<VirtualHost xxx.xx.xx.xx:80>
  PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby
  ServerName mysite.md
  DocumentRoot /home/apps/myapp/public
  <Directory /home/apps/myapp>
     AllowOverride None
     Options -MultiViews
  </Directory>
</VirtualHost>

şimdi varsayılan olanı olduğu gibi seçenek ruby-2.0eklemek gerek kalmadan çalışan uygulama için .PassengerRubyruby-2.0

Ayrıca apache2.config dosyasında yüklü başka rvm yolcu modülleri varsa, benim durumumda olduğu gibi:

#   LoadModule passenger_module /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.18/ext/apache2/mod_passenger.so
#   PassengerRoot /usr/local/rvm/gems/ruby-1.9.3-p194/gems/passenger-3.0.18
#   PassengerRuby /usr/local/rvm/wrappers/ruby-1.9.3-p194/ruby

/etc/apache2/sites-enabled/mysiteconfig dosyasında ruby sürümünü yükleyeceğiniz gibi onları kaldırmanız veya yaptığım gibi yorum yapmanız gerekecek .

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.