Goemoe
Anmeldungsdatum: 3. März 2016
Beiträge: 46
|
Moin, ich habe eine 'normale' Ubuntu 15.10. Installation, habe einen Apache2 Webserver, Mysql und alles war schön, bis ich auf die Idee kam mich mit dem "ach so einfachen" Ruby on Rails zu beschäftigen. Nach 2-3 Tutorials zum Thema und einer nicht ganz so einfachen Installation (irgendwas funktioniert ja immer anders als in den Tutorials) brachte ich das ganze schließlich zum Laufen und begann zu experimentieren. Lief soweit gut. Dann wollte ich aber anstelle von 'rails server' mein Webprojekt auf meinem Apache Webserver zum Laufen bringen. Dafür gibt es mit Phusion Passenger ja auch direkt ein Programm im Ubuntu Software-Center, das laut eigenen Worten Ruby Webanwendungen wie Ruby on Rails zu einem Kinderspiel macht. Wenn es doch so wäre. Wieder habe ich wirklich viele Stunden im Internet gesucht, mir Videos und Dokumentationen angesehen, denn irgendwas muss ich wohl noch in Konfigurationsdateien (/etc/apache2/apache2.conf ?) eintragen. Nur was? Ein Video schlug vor dort: passenger_root /usr/lib/ruby/vendor_ruby/phusion_passenger/locations.ini;
passenger_ruby /home/USERNAME/.rbenv/shims/ruby; einzutragen. Wenn man das macht, läuft der Apache nicht mehr 😬 Ich bin ratlos. Kann mir jemand helfen? Ich möchte mein Ruby on Rails Projekt bei mir im Heimnetz auf unserem Apache zum Laufen bringen. Was muss ich dafür tun? Bearbeitet von rklm: Codeblock
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12440
|
Ruby ist zwar meine bevorzugte Skriptsprache, aber von Rails habe ich immer die Finger gelassen (hauptsächlich mangels Bedarf). Ich habe aber gehört, dass Rails doch recht komplex ist und nicht alle sind begeistert davon. Gerade gestern bin ich z.B. bei reddit über diesen Artikel gestolpert. Es gibt aber noch Alternativen. Wenn man nach 'ruby "web frameworks"' sucht, dann findet man eine Menge, z.B. http://www.bestwebframeworks.com/compare-web-frameworks/ruby/, was aber auch noch keine komplette Übersicht gibt.
|
Goemoe
(Themenstarter)
Anmeldungsdatum: 3. März 2016
Beiträge: 46
|
Danke, aber das hilft mir nicht. Ich bekomme Ruby on Rails ja zum Laufen, aber nur auf dem mitgelieferten eigenen Webserver, den ich dann nur über 'localhost:3000' aufrufen kann. Ich möchte den Kram aber generell über IP Adressen ansprechen können, in meinem Fall über den Apache Webserver im Heimnetz. Es gibt x Erklärungen im Internet, wie man das macht und keine funktioniert. Ein Beispiel: Auf https://help.ubuntu.com/community/RubyOnRails#Configure_Apache steht folgendes: Configure Apache Run the following to install passenger, an apache module that adds support for running rails apps within apache: sudo gem install passenger
sudo apt-get install apache2-dev libapr1-dev libaprutil1-dev
sudo passenger-install-apache2-module WARNING: libapache2-mod-passenger installation uninstalls libapache2-mod-php5 and php5. Now you have to configure apache to point to the passenger module... etc pp.
Alles läuft wie erwartet, bis ich die Zeile: sudo passenger-install-apache2-module eingebe. Da sagt mir Ubuntu wenig überraschend Befehl nicht gefunden. Die Anleitung von Ubuntu.com ist aus einer Zeit, als RubyGem in Version 1.x unterwegs war, ich haben inzwischen Version 2.6.3. Es gibt nicht viele Anleitungen, wenn dann widersprechen sie sich, nutzen unterschiedliche Pfade und verlangen (bei mir) nicht funktionierende Anweisungen. Kann mir bitte jemand helfen?
|
Goemoe
(Themenstarter)
Anmeldungsdatum: 3. März 2016
Beiträge: 46
|
Nachtrag: in einem anderen Leitfaden stand, dass man vor den anderen drei Befehlen, die ich eben angegeben habe:
sudo gem update
eingeben soll. Dauert lange, aber es läuft durch. Dann funktioniert auch plötzlich der Befehl, der davor nicht funktionierte. Er öffnet ein Konfigurationsfenster. Theoretisch sollte nun alles laufen, aber die NAME.html.erb werden noch immer nicht korrekt angezeigt. Der Apache hat nun das Modul, die RubyGems haben es, aber die Funktion fehlt 😕
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28072
Wohnort: WW
|
Hallo, brauchst du deine Rails Appikation "nur" im Heimnetzwerk? Dann würde ich einfach den Dev-Server an eine gültige IP-Adresse (oder 0.0.0.0) binden und den ganzen Overhead mit Apache & Co sparen. Wie das geht steht z.B. in diesem Thread bei Stack Overflow. Gruß, noisefloor
|
Goemoe
(Themenstarter)
Anmeldungsdatum: 3. März 2016
Beiträge: 46
|
Hallo noisefloor, keine schlechte Idee. Zum Testen und ersten Arbeiten reichts und nach etwas Tüfteln funktioniert es auch. Vielen Dank! So kann ich zumindest arbeiten und sehen, wie sich das Problem entwickelt. 👍
|
Goemoe
(Themenstarter)
Anmeldungsdatum: 3. März 2016
Beiträge: 46
|
Nochmal ich, viellicht verirrt sich ja ein User hierhin und hat eine Idee. Ich habe alle Komponenten noch einmal deinstalliert und alles ohne Schnickschnack (wie Git & Co) neu eingerichtet. Alle Tests, die Phusion Passenger anbietet liefen sauber durch, alles läuft, sogar noch PHP5 (was laut Installationsscipt durch das Passenger-Apache-Modul ausgeschaltet werden soll) funktioniert noch einwandfrei (habe danach ein funktionierendes Wiki installiert). Nur: wenn ich Rails Dateien ansehen will, sehe ich nur den mit HTML formatierten Text. Um es richtig zu sehen, muss trotz allem der Rails Server gestartet werden 🙄 Wenn noch jemand Wissendes eine Idee hat, nehme ich die gerne auf ☺
|
Goemoe
(Themenstarter)
Anmeldungsdatum: 3. März 2016
Beiträge: 46
|
Ich habe es nicht geschafft Rails auf einem Apache2 zum Funktionieren zu bewegen. Die Einstiegshürde für einen, der nur privat programmiert ist auch generell viel zu hoch. Sie werben ja damit, wie einfach es ist. Davon habe ich mich blenden lassen. Rails ist sehr komplex und sicher nicht einfach. Ich nahm an, auf einem Basissystem Ubuntu mit Apache wäre es simpel. Dann eben nicht. 😉 Hat sich erledigt. Kann geschlossen werden.
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28072
Wohnort: WW
|
Hallo,
Rails ist sehr komplex und sicher nicht einfach.
Rails ist halt sehr leistungsfähig und kann dem entsprechend komplex sein. Ich nutzte zwar selber kein Ruby sondern Python, aber da ist es mit Django ähnlich: das kann anfangs sehr verwirrend sein, obwohl es unter Strich nicht kompliziert ist, sondern "nur" umfangreich. Für den ersten Deploy vom eingebauten Dev-Server auf einen "richtigen" Server habe ich auch ein bisschen gebraucht. Und das, obwohl der Deploy des Gespanns Django + gunicorn + nginx im Web hinreichend dokumentiert ist. Die andere Frage hat rklm zu Anfang schon gestellt: muss es Rails sein? Es gibt ja auch "einfachere" Webframeworks für Ruby. Gruß, noisefloor
|
Goemoe
(Themenstarter)
Anmeldungsdatum: 3. März 2016
Beiträge: 46
|
Nein, aktuell schaue ich mir Python und Django an. Mit dem Einarbeiten haben wir (meine Frau programmiert mit) kein Problem, aber bevor ich Tage und Wochen investiere, möchte ich halbwegs sicher sein, dass es auch funktioniert 😉
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28072
Wohnort: WW
|
Hallo, ok, Wechsel auf Python - sehr gut 😉 Wie gesagt, am Ende war der Deploy (im Heimnetzwerk) von Django + gunicorn + nginx kein Problem. Und Dank systemd war auch das automatische Starten beim Booten kein Akt. Wenn's soweit ist kannst du ja einen neuen Thread aufmachen ☺ Gruß, noisefloor
|
rklm
Projektleitung
Anmeldungsdatum: 16. Oktober 2011
Beiträge: 12440
|
noisefloor schrieb:
ok, Wechsel auf Python - sehr gut 😉
Pffft - aber warum gleich die Sprache wechseln? Es gibt ja auch in Ruby Alternativen.
Wie gesagt, am Ende war der Deploy (im Heimnetzwerk) von Django + gunicorn + nginx kein Problem. Und Dank systemd war auch das automatische Starten beim Booten kein Akt.
Ja, aber Du hast ja auch gesagt, dass es vorher etwas Gefummel war.
|
noisefloor
Ehemaliger
Anmeldungsdatum: 6. Juni 2006
Beiträge: 28072
Wohnort: WW
|
Hallo,
Ja, aber Du hast ja auch gesagt, dass es vorher etwas Gefummel war.
Richtig. "Gefummel" in sofern, dass ich a) am Anfang nicht verstanden hatte, wie manage collectstaticfiles funktioniert und ich b) etwas gebraucht habe, um den gunicorn-Befehl richtig zu haben, dass Django unter gunicorn als WSGI-Application läuft. Da unter Python quasi jede Webanwendung dem WSGI-Standard folgt ist es zumindest nicht nötig, an der Config was zu ändern (außer, man will HTTPS statt HTTP, was aber im Heimnetzwerk wohl nicht nötig ist). Unterm Strich ist es wahrscheinlich wie bei Rails: beim 1. wirkt es kompliziert / fummelig, beim 2. Mal ist alles easy ☺ Gruß, noisefloor
|
Goemoe
(Themenstarter)
Anmeldungsdatum: 3. März 2016
Beiträge: 46
|
rklm> Pffft - aber warum gleich die Sprache wechseln? Es gibt ja auch in Ruby Alternativen. Alternativen für Rails? Mag sein, aber der Rubyinterpreter in Apache wäre der gleiche 😉 Ruby on Rails war für uns eine von drei Optionen und hat nach eine Woche Suche nicht funktioniert und ist schlecht dokumentiert (für meinen Geschmack). Bei Rubyonrails.org halten sie ja nicht mal eine Community. 😐 Ob ich Ruby oder Python von Grund auf neu lerne, ist letztlich egal, wobei Ruby aussieht, als wäre die Programmierung auch ein wenig "dreckiger" als Python. Letzteres braucht wohl ein wenig mehr Struktur, was uns aber entgegen kommt. Inzwischen wissen wir, dass Python für das Pi in Rasberry Pi steht und da will meine Frau eh mit spielen, das passt also ohnehin besser - also theoretisch 😎
|