Configuration de OS X 10.7 Lion Server pour servir les applications Rails via Apache


3

J'ai plusieurs applications Rails qui fonctionnent parfaitement sous Snow Leopard, mais j'aimerais les migrer vers Lion.

Cependant, comme beaucoup d’autres, les changements apportés à l’administration de Mac OS X Server avec Lion ont tiré le tapis.

Cela dit, l'installation de Rails et la réponse de mon application Rails via le serveur Web WEBrick ont ​​été simples.

J'aimerais maintenant que Passenger (ou son équivalent) travaille et utilise Apache comme serveur Web, avec des applications rails lancées automatiquement et des avantages associés.

Cependant, les modifications apportées à Lion semblent casser Passenger, car cela dépend des hôtes virtuels nommés pour détecter les invocations et lancer les applications Rails sous Apache. J'ai essayé d'utiliser la méthode décrite dans la note de support d'Apple pour les hôtes nommés Apache, mais je n'ai pas eu la joie: - /

Il semble que je devrais peut-être mordre la balle et utiliser le nouveau mécanisme de configuration des applications Web Lion Server pour spécifier les dépendances Rails et lancer les applications Rails de cette manière.

Quelqu'un at-il déjà réussi à configurer Lion Server pour servir les applications Rails via Apache?

Tous les pointeurs et conseils seraient appréciés.

Au fait, j'utilise un nouveau Mac mini, il s'agit donc d'une installation propre de Lion, et revenir à SL n'est pas une option: - /

Réponses:


1

J'ai fait des expériences pour répondre à ma propre question ...

Tout d’abord, je n’ai obtenu que le nom d’hôte virtuel nommé kludge fonctionnant avec Passenger, pas le nouveau schéma Lion, mais bon, c’est un début ...

Tout d'abord, suivez le correctif temporaire Apple, comme indiqué dans la question.

Ensuite, les opérations suivantes me permettent de prendre en charge deux hôtes nommés virtuels, implémentés à l’aide de Passenger et Rails. J'ai dérivé cela en prenant l'exemple de l'hôte virtuel Lion et en fusionnant dans ma configuration Snow Leopard.

Avertissement cela fonctionne, mais a besoin d'amélioration. Je n'ai pas encore SSL en marche.

Ajoutez ce qui suit dans un fichier nommé 0000_any_80_.conf

## Example Virtual Host Configuration

<VirtualHost *:80>
    ServerName bongle.example.com
    ServerAlias bungle.example.com
    ServerAdmin bongle@example.com
    RackEnv bongle_production
    RailsEnv bongle_production

    DocumentRoot "/Users/Nigel/Rails/bungle/public"
    CustomLog "/var/log/apache2/access_log" combinedvhost
    ErrorLog "/var/log/apache2/error_log"

    <IfModule mod_ssl.c>
        SSLEngine Off
        SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLProxyEngine On
        SSLProxyProtocol -ALL +SSLv3 +TLSv1
    </IfModule>

    <Directory "/Users/Nigel/Rails/bungle/public">
        Options All +MultiViews -ExecCGI -Indexes
        AllowOverride None
        <IfModule mod_dav.c>
            DAV Off
        </IfModule>
    </Directory>

</VirtualHost> 

<VirtualHost *:80>
    ServerName burble.anothersite.com
    ServerAlias www.anothersite.com
    ServerAdmin bongle@anothersite.com
    RackEnv burble_production
    RailsEnv burble_production

    DocumentRoot "/Users/Nigel/Rails/burble/public"
    CustomLog "/var/log/apache2/access_log" combinedvhost
    ErrorLog "/var/log/apache2/error_log"

    <IfModule mod_ssl.c>
        SSLEngine Off
        SSLCipherSuite "ALL:!aNULL:!ADH:!eNULL:!LOW:!EXP:RC4+RSA:+HIGH:+MEDIUM"
        SSLProtocol -ALL +SSLv3 +TLSv1
        SSLProxyEngine On
        SSLProxyProtocol -ALL +SSLv3 +TLSv1
    </IfModule>

    <Directory "/Users/Nigel/Rails/school/public">
        Options All +MultiViews -ExecCGI -Indexes
        AllowOverride None
        <IfModule mod_dav.c>
            DAV Off
        </IfModule>
    </Directory>

</VirtualHost>

Des contributions supplémentaires pour améliorer cela sont les bienvenues.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.