Konfigurieren von OS X 10.7 Lion Server zum Bereitstellen von Rails-Apps über Apache

Ich habe eine Reihe von Rails-Apps, die unter Snow Leopard hervorragend funktionieren, würde diese jedoch gerne auf Lion migrieren.

Wie vielen anderen wurde mir jedoch durch die Änderungen, die mit Lion an der Mac OS X Server-Verwaltung vorgenommen wurden, der Boden unter den Füßen weggezogen.

Trotzdem war es einfach, Rails zu installieren und meine Rails-App über den WEBrick-Webserver zum Antworten zu bringen.

Ich möchte jetzt Passenger (oder Äquivalent) zum Laufen bringen und Apache als Webserver verwenden, mit automatisch gestarteten Rails-Apps und der damit verbundenen Güte.

Die an Lion vorgenommenen Änderungen scheinen jedoch Passenger zu beschädigen, da dies auf benannte virtuelle Hosts angewiesen ist, um Aufrufe zu erkennen und die Rails-Apps unter Apache zu starten. Ich habe versucht, die in Apples Support-Hinweis für benannte Hosts von Apple beschriebene Methode zu verwenden, - aber ich hatte keine Freude :-/

Es scheint, dass ich möglicherweise in den sauren Apfel beißen und den neuen Lion Server-Web-App-Konfigurationsmechanismus verwenden muss, um Rails-Abhängigkeiten anzugeben und die Rails-Apps auf diese Weise zu starten.

Hat jemand Erfolg damit gehabt, Lion Server so zu konfigurieren, dass Rails Apps über Apache bereitgestellt werden?

Alle Hinweise und Tipps wären willkommen.

Übrigens verwende ich einen neuen Mac mini, also ist dies eine Neuinstallation von Lion, und eine Rückkehr zu SL ist keine Option :-/

Antworten (1)

Ich habe einige Experimente durchgeführt, um meine eigene Frage zu beantworten ...

Erstens habe ich nur den virtuellen benannten Host kludge mit Passenger zum Laufen gebracht, nicht das neue Lion-Schema, aber hey, es ist ein Anfang ...

Folgen Sie zunächst dem temporären Apple-Fix, wie in der Frage verlinkt.

Dann funktioniert Folgendes für mich, um zwei virtuelle benannte Hosts zu unterstützen, die mit Passenger und Rails implementiert werden. Ich habe dies abgeleitet, indem ich das Beispiel des virtuellen Lion-Hosts genommen und in meiner Snow Leopard-Konfiguration zusammengeführt habe.

Haftungsausschluss Dies funktioniert, muss aber verbessert werden. Ich habe SSL noch nicht zum Laufen gebracht.

Fügen Sie Folgendes in einer Datei mit dem Namen 0000_any_80_.conf hinzu

## 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>

Zusätzliche Beiträge zur Verbesserung sind willkommen.