Ruby On Rails

Dieses Thema im Forum "Allgemein" wurde erstellt von AndréS, 13. Dez. 2009.

  1. AndréS

    AndréS New Member

    Hallo,

    nun mal ein paar Fragen diesbezgl.

    Ich habe mal eine Ruby On Rails Application erstellt und hochgeladen.
    Sacffold generiert eine HTML seite. Name index.html.erb oder sowas wie new.html.erb

    Wird aber nicht ausgeführt. Er zeigt mir in html tags bzw. Ruby tags das folgende an
    Code:
    <% form_for(@library) do |f| %> <%= f.error_messages %> 
    
    <%= f.label :location %>
    <%= f.text_field :location %> 
    
    <%= f.label :name %>
    <%= f.text_field :name %> 
    
    <%= f.submit 'Create' %> 
    <% end %> <%= link_to 'Back', libraries_path %>
    Füge ich in der Appache direktive dann aber folgendes hinzu
    Code:
    <Files *.erb>
        SetHandler ruby-object
        RubyHandler Apache::RubyRun.instance
      </Files>
    dann sagt er missconfiguration

    Das finde ich verwirrend :(

    Ruby an sich macht er wunderbar. Muss ich das Tut für Ruby on Rails auch installieren????
    Und wenn ja, WIE kann ich das direkt in ISPConfig integrieren ohne immer so ein Theater zu machen und das Per Konsole zu generieren sondern einfach per FTP hochladen und laufen lassen?????

    Evtl hat ja jemand ein paar Ideen.

    Danke
     
  2. Till

    Till Administrator

    Für mich sieht es so aus, als ob mod_ruby nicht geladen ist. Schau doch bitte mal nach, ob Du das ruby modul für den apache auch wirklich installiert und dann auch aktiviert hast.
     
  3. AndréS

    AndréS New Member

    Mache ich gerne,
    kannst du mir sagen wie ich das mache?

    Danke dir

    AndréS
     
  4. Till

    Till Administrator

    Das hängt von der Linux Distribution ab.
     
  5. AndréS

    AndréS New Member

    Moin,

    stimmt ich trottel

    also ich habe Debian 5 :)

    AndréS
     
  6. Till

    Till Administrator

    Dann müsste an sich ein:

    apt-get install libapache2-mod-ruby

    ausreichen. ggf. kannst Du auch nochmal mit

    a2enmod ruby

    schauen, ob es auch aktiviert ist.
     
  7. AndréS

    AndréS New Member

    Danke.

    Hat leider nichts gebracht, es war bereits installiert und auch aktiviert.

    Das ist gerade sehr unschön das ruby on rails so viel braucht.

    >gibt anleitungen da muss man dann noch einen webserver neben apache2 installieren etc. pp.

    Ruby ansich geht, ruby on rails jedoch nicht :(

    Danke

    AndréS
     
  8. Till

    Till Administrator

  9. AndréS

    AndréS New Member

  10. AndréS

    AndréS New Member

    Ach noch was, wenn ich eine ruby file erstelle dann klappt ja alles. Woltle das gleich mal wie bei PHP verwenden und sagen
    Code:
    puts "<html><p>hallo welt</p></html>"
    leider zeigt er das ohne interpretation an.

    Daher brauche ich eine rhtml datei. Diese wird aber nur noch zum download angeboten und wird gar nicht erst geparst bzw. es erfolgt keine Ausgabe.

    Gruß

    AndréS
     
  11. AndréS

    AndréS New Member

    Hi Till,

    nachdem ich nun auch noch die Endung .erb mit in die Apache Direktive eingegeben habe, bekomme ich nun eine ganz andere Fehlermeldung
    Code:
    Application error
    Rails application failed to start properly
    Hast du eine Ahnung worauf das hindeuten kann????

    Vielen Dank

    AndréS
     
  12. Till

    Till Administrator

    Habe noch nie mit rails gearbeitet, kann Dir da also leider nicht weiterhelfen. Da das Ganze an sich für jeden apache vhost gelten sollte und nicht so spezifisch für ISPConfig ist, würde ich es an Deiner Stelle vielleicht mal in einem Rails Forum versuchen. Außer hier ist sonst noch jemand, der sich damit auskennt und sich noch nicht zu Wort gelmeldet hat.
     
  13. get.the.MaX

    get.the.MaX Member

  14. AndréS

    AndréS New Member

    Apache sagt eigentich nichts weiter an fehlern, welches Log meinst du denn genau?

    Gruß
     
  15. get.the.MaX

    get.the.MaX Member

    Rails schreibt doch logs je nachdem welche Umgebung du am laufen hat. Also development, test oder production, die liegen im logs Ordner.
     
  16. AndréS

    AndréS New Member

    Ja das stimmt, die Logs sind angelegt aber alle 0 Byte also nichts drinne.
    Dementsprechend gibt es keine Logs :(

    Hast du Ahnung von der Installation mit Ruby on Rails? Evtl. wäre eine direktere (PN, ICQ o.ä.) besser damit du das Problem genau vor Augen hast.

    Liebe Grüße

    AndréS
     
  17. get.the.MaX

    get.the.MaX Member

    Dann scheint es ja am Apache zu hängen, überprüfe doch mal die Berechtigungen.
    Aber du solltest dir eh überlegen ob du nicht lieber das ganze lieber mit Mongrel machst so wie im Tutorial beschrieben, da mod_ruby von der Performance nicht so gut ist.
     
  18. AndréS

    AndréS New Member

    Hi,

    ja es lage am apache. Aber erst nach Stunden fand ich heruas woran.
    dazu gleich mehr.

    Ich habe die Seite ausprobiert, was zum sofortigen Fehler führte :(

    Wenn du evtl. ein paar Tipps hast, ich stehe für sowas immer offen :) Melde dich dann ruhig einfach mal bei mir.


    So nun zur Lösung.

    es werden nun .erb Datein genommen für HTML interpretationen bzw. Ruby On Rails.
    Wenn man aber dann eine html datei hat, wird die
    gespeichert.
    So weit alles okay.
    Ruby on Rails hatte aber vorher mit den Einstellungen aus dem Tut von Falcon keine Chance da irgendwas zu machen. Es waren lediglich .rb und .rbx Datein drinne. Die aber brauchen wir gerade gar nicht.

    Wollen wir also was schreiben wie:
    Code:
    <b>Hallo</b>
    <%= time.now %>
    würde ein Fehler kommen. (abgespeichert als datei.html.erb)

    Nun müssen wir da ein paar Apache Konfigurationen zu tun und dann läuft alles sehr RUND :)
    Code:
    <IfModule mod_ruby.c>
      <Directory /var/www/WebseitenNamen.de/web>
        Options +ExecCGI
      </Directory>
      <Directory /var/www/web1/web>
        Options +ExecCGI
      </Directory>
      RubyRequire apache/ruby-run
      #RubySafeLevel 0
      <Files *.rb>
        SetHandler ruby-object
        RubyHandler Apache::RubyRun.instance
      </Files>
      <Files *.rbx>
        SetHandler ruby-object
        RubyHandler Apache::RubyRun.instance
      </Files>
    [B][COLOR="red"]RubyRequire apache/erb-run.rb
      <Files *.erb>
        Options +ExecCGI
        SetHandler ruby-object
        RubyHandler Apache::ERbRun.instance
      </Files>[/COLOR][/B]
    
    </IfModule>
    
    
    <Directory /var/www/WebseitenNamen.de/web/public >
      Options +ExecCGI +FollowSymLinks
      AllowOverride all
    Options -MultiViews 
    </Directory>
    <Directory /var/www/web1/web/public >
      Options +ExecCGI +FollowSymLinks
      AllowOverride all
    Options -MultiViews 
    </Directory>
    dAs rot markierte ist absolut WICHTIG!!!!! Sonst geht das einfach nicht. Einfach eintragen, ein wenig anpassen und wolla alles läuft.

    @Till
    wäre evtl. ganz gut das noch ins Tut mit aufzunehmen, damit es gleich auf anhieb funktioniert.

    AndréS
     
  19. Till

    Till Administrator

Diese Seite empfehlen