Rails/Passenger im Parallels Plesk zum Laufen bekommen EDIT mit SSL

on under asbach
2 minute read

Out Of Date Warning

This article was published on 02/03/2010, this means the content may be out of date or no longer relevant.
You should verify that the technical information in this article is still up to date before relying upon it for your own purposes.

Wer auch Parallels Plesk Panel für seine Serveradministration verwendet, und sich schonmal gefragt hat, ob es was besseres als die Build-in Fast CGI Unterstützung oder Mongrel/Webrick gibt, dem will ich hier mal einen kleinen Guide geben, wie das ganze mit Passenger zu bewerkstelligen ist.
Wir verwenden für die Administration unserer Server auch Plesk, da es echt stupid simple ist.

Ich gehe davon aus, dass Ruby und Rubygems bereits installiert sind! (Sollte man z.B. Debian verwenden, auf keinen Fall die Pakete aus dem apt-get installieren, sondern manuell wie hier beschreiben.) Auch ein Root-Zugang zum Server wird benötigt.

Also:

  1. im Plesk eine neue Domain/Subdomain anlegen
  2. Unser Rails-Projekt nach /var/www/vhosts/DOMAIN/httpdocs bzw. /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/httpdocs kopieren. Also genau dort rein, kein weiteres Unterverzeichnis (nach httpdocs kommen dann gleich app db config public …)
  3. Schauen, dass die Lese/Schreibrechte hinhauen: z.B. chgrp psaserv log db tmp -R && chmod g+w * -R. Im einzelnen mal schauen.
  4. Root Konsole: Gems installieren und Datenbank migrieren:
    - ruby
    rake gems:install
    rake db:migrate RAILS_ENV=“production”
    gem install passenger
  5. laengere Anleitung befolgen. Im Endeffekt muss man ein paar Zeilen in die apache2.conf kopieren.
  6. Den zweiten Teil mit mit der Vserver Konfiguration interessiert uns im Moment nicht
    -
  7. Im Ordner DOMAIN/conf also von unserem httpdocs Verzeichnis ../conf/vhost.conf nun die Datei vhost.conf anlegen und folgendes reinkopieren (jeweils das richtige Verzeichnis als Ziel nehmen, je nachdem ob wir eine Subdomain oder Domain benutzen möchten):
    - ruby
    DocumentRoot /var/www/vhosts/DOMAIN/httpdocs/public
  8. bzw. /var/www/vhosts/DOMAIN/subdomains/SUBDOMAIN/httpdocs/public
    <Directory /var/www/vhosts/pludoni.de/subdomains/tasks/httpdocs/public >
    AllowOverride all
    Options MultiViews

    -
    -
  9. plesk Vhost reloaden:
    -
    /usr/local/psa/admin/sbin/websrvmng u —vhost-name=DOMAIN.de
    -
    -
    hierbei jeweils immer nur die Domain angeben, auch wenn wir nur einen Subdomain anlegen.

Nun sollte unsere Rails App unter der Domain bzw. Subdomain verfügbar sein. Neustarten können wir Passenger indem wir ein touch tmp/restart.txt oder die Datei sonst irgendwie im Timestamp verändern.

Edit: Möchte man Plesk, Rails und Passenger mit SSL verwenden (also https://…domain), muss man noch etwas tun:

  • die Datei “conf/vhost.conf” nach “conf/vhost_ssl.conf” kopieren
  • Plesk reloaden

Ansonsten erhält man ein 403 “Forbidden You don’t have permission to access / on this server.”, da Apache das ganze als statische HTML-Seite betrachtet, und die index.html sucht.