
Bei der Arbeit habe ich einen SuSE 7.3 mit Apache 1.3.20, auf den ich keinen Administratorzugriff habe. Ich möchte Ruby on Rails ohne odersehr wenigArbeite für die Admins.
Der Dienst muss ständig laufen, auch wenn der Server neu gestartet wird. Er muss schneller als CGI-Geschwindigkeit laufen und ich hätte gerne eine einfache Domäne ohne Ports.
Welche Möglichkeiten habe ich?
Antwort1
Führen Sie Rails auf einem anderen Server aus (ich bevorzuge nginx+mod_rails, aber lighttpd, mongrel oder etwas Ähnliches sollten auch funktionieren) und bitten Sie einfach die Administratoren, dies von Apache aus per Reverse-Proxy durchzuführen.
Antwort2
Das Ausführen von Rails auf Apache 1.3 wird weitaus schwieriger sein als auf einem 2.x-System.
Sie müssen Mongrels entweder lokal ausführen (möglicherweise von einem Administrator dieses Servers so konfiguriert, dass es korrekt startet) und zwar auf bestimmten Portnummern pro Anwendung und dann mithilfe von Proxy-Magie Apache dorthin senden, oder auf einem anderen Computer. Wenn Sie sich für die Ausführung auf einem anderen Computer entscheiden, installieren Sie Apache 2.0 und verwenden Sie Phusion Passenger. Das wird Ihnen das Leben leichter machen.
Beispiel einer Passenger-Konfiguration für eine neue Site auf Apache:
<VirtualHost *:80>
ServerName blog.flame.org
DocumentRoot /www/blog/flame-blog/current/public
ExpiresDefault "access plus 10 years"
</VirtualHost>
Ich lege dies in eine Datei namens /local/httpd/sites/blog.flame.org.conf
und verwende dann dies in meiner httpd.conf
Datei:
Include /local/httpd/sites/*.conf
Meiner bescheidenen Meinung nach kann das Hinzufügen einer neuen Site nicht einfacher sein, wenn Sie die befehlszeilengesteuerte Konfigurationsverwaltung beibehalten möchten.
Wenn Sie eine neue Version einer RoR-Anwendung bereitstellen möchten, ist es mit Capistrano buchstäblich so einfach wie das Eingeben von „cap deploy:migrations“, um eine neue Version herauszubringen, und wenn Sie einen Fehler machen, geben Sie einfach „cap deploy:rollback“ ein, um es rückgängig zu machen. Juhu.
Ich würde Capistrano zur Bereitstellung Ihrer Anwendungen verwenden, unabhängig davon, für welche Art der Bereitstellung Sie sich entscheiden.