2017-07-21 1 views
0

Pour courir derrière passager apache, ces deux directives sont nécessaires:Comment puis-je faire tourner deux serveurs deux passagers derrière une instance apache?

PassengerRoot 
PassengerDefaultRuby 

Ces deux ont un contexte « de configuration du serveur » selon la documentation here. Ce qui signifie qu'Apache est seulement capable de définir une version de ruby ​​et une racine de passager pour l'instance de serveur entière. Depuis, j'ai deux versions de ruby ​​fonctionnant en utilisant RVM et chaque instance de Rails s'exécute dans son propre contexte d'hôte virtuel, est-il un moyen de définir PassengerRoot et PassengerDefaultRuby par hôte virtuel? PS: Les solutions de piratage sont également acceptables.

Répondre

1

Vous ne savez pas exactement pourquoi vous devez définir une valeur différente pour PassengerRoot. Vous ne devriez pas avoir besoin de faire cela, la racine de passager peut être sur n'importe quelle version de ruby ​​vraiment et cela fonctionnera juste. Vous devez seulement définir PassengerRuby dans l'hôte virtuel.

Nous avons configuration Rails avec plusieurs versions Ruby/gemsets par projet défini par RVM et nous avons mis en PassengerRuby comme:

<VirtualHost *:80> 
    PassengerRuby /usr/local/rvm/gems/[email protected]/wrappers/ruby 
... 
</VirtualHost> 

Assurez-vous de pointer PassengerRuby à votre emballage pertinent dans RVM gemset.

Pour référence ceci est mon passenger.conf (passager a été construit sur Ruby 2.1.1)

LoadModule passenger_module /usr/local/rvm/gems/ruby-2.1.1/gems/passenger-enterprise-server-5.0.21/buildout/apache2/mod_passenger.so 
<IfModule mod_passenger.c> 
PassengerRoot /usr/local/rvm/gems/ruby-2.1.1/gems/passenger-enterprise-server-5.0.21 
PassengerDefaultRuby /usr/local/rvm/gems/ruby-2.1.1/wrappers/ruby 
    PassengerStatThrottleRate 0 

    # PassengerMaxPoolSize 
    # Default: 6 
    # For 2gb RAM: 30 
    # For 256 slice with MySQL running: 2 
    PassengerMaxPoolSize 12 

    PassengerMinInstances 0 
    PassengerPoolIdleTime 300 
    PassengerMemoryLimit 400 
</IfModule> 

Une chose cependant - si vous avez installé des passagers par gemset - non. Installez-le globalement dans la version ruby ​​par défaut. Cela vous sauvera des maux de tête plus tard. Cela peut encore fonctionner mais ce n'est pas la meilleure pratique.

Plus d'infos ici: https://www.phusionpassenger.com/library/install/apache/install/oss/rubygems_rvm/#i-have-multiple-ruby-versions-or-gemsets.-does-it-matter-which-one-i-use-to-install-passenger-with?

+0

Cela fait le travail. Merci mon pote. Je suis d'accord avec l'utilisation de la même installation de passagers pour tous mes projets de rubis. – Rorchackh