# Ruby On Rails



## AndréS (13. Dez. 2009)

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

```
<% 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 

```
<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 (14. Dez. 2009)

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.


----------



## AndréS (14. Dez. 2009)

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

Danke dir

AndréS


----------



## Till (15. Dez. 2009)

Das hängt von der Linux Distribution ab.


----------



## AndréS (15. Dez. 2009)

Moin,

stimmt ich trottel

also ich habe Debian 5 

AndréS


----------



## Till (15. Dez. 2009)

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.


----------



## AndréS (15. Dez. 2009)

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


----------



## Till (15. Dez. 2009)

Hast Du es mal mit dem tutorial versucht?

http://www.howtoforge.com/ruby_on_rails_debian_etch


----------



## AndréS (15. Dez. 2009)

Ja das habe ich bereits auch ausprobiert, danach funktionierte leider Ruby On Rails auch nicht mehr. 

Ich habe danach auch noch andere ausprobiert u.a. http://openbook.galileocomputing.de/ruby_on_rails/ruby_on_rails_03_003.htm
http://www.webagentur-laude.de/rails-auf-debian-tutorial.html

leider führte beides nicht zum erfolg.
Ich kann dir auch gerne mal ein paar tiefere Einblick in meinen Server gewähren wenn du magst.

AndréS


----------



## AndréS (15. Dez. 2009)

Ach noch was, wenn ich eine ruby file erstelle dann klappt ja alles. Woltle das gleich mal wie bei PHP verwenden und sagen 

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


----------



## AndréS (16. Dez. 2009)

Hi Till,

nachdem ich nun auch noch die Endung .erb mit in die Apache Direktive eingegeben habe, bekomme ich nun eine ganz andere Fehlermeldung

```
Application error
Rails application failed to start properly
```
Hast du eine Ahnung worauf das hindeuten kann????

Vielen Dank

AndréS


----------



## Till (16. Dez. 2009)

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.


----------



## get.the.MaX (17. Dez. 2009)

Was sagen denn die logs? Apache und Rails.

Ansonsten:
http://articles.slicehost.com/2007/9/21/debian-etch-apache-vhosts-rails-and-mongrels


----------



## AndréS (18. Dez. 2009)

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

Gruß


----------



## get.the.MaX (18. Dez. 2009)

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


----------



## AndréS (18. Dez. 2009)

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


----------



## get.the.MaX (18. Dez. 2009)

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.


----------



## AndréS (20. Dez. 2009)

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


> dateiname*.html.erb*


 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:

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

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


----------



## Till (21. Dez. 2009)

Habe diesen Thread im ruby feature request des Bugtrackers verlinkt:

http://bugtracker.ispconfig.org/index.php?do=details&task_id=461


----------

