Ruby On Rails

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

Till

Administrator
#2
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.
 

Till

Administrator
#6
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
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
 
#10
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
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
 

Till

Administrator
#12
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.
 
#16
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
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
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
 

Werbung

Top