Server-side Skriptsprache Ruby
Hallo,
ich bin im Besitz eines 1und1 Webhosting UNLIMITED Angebots.
Ich würde gerne Ruby als Server Skriptsprache wie PHP benutzen um meine Anfragen zu verarbeiten.
Allerdings weiß ich nicht wie ich Ruby Skripte so ausführen kann.
Ich habe schon versucht mit einer Shebang Zeile in meiner *.rb Datei
Wobei ich auch nicht weiß ob die Angabe für den 1und1 server richtig ist
Wenn ich dann die URL aufrufe (www.myurl.de/myscript.rb), öffnet sich immer ein Dialog zum speichern der *.rb Datei
Vllt. kann mir hierbei ja jmd helfen.
PS: Ich meine nicht Ruby on Rails
Vielen Dank
ich bin im Besitz eines 1und1 Webhosting UNLIMITED Angebots.
Ich würde gerne Ruby als Server Skriptsprache wie PHP benutzen um meine Anfragen zu verarbeiten.
Allerdings weiß ich nicht wie ich Ruby Skripte so ausführen kann.
Ich habe schon versucht mit einer Shebang Zeile in meiner *.rb Datei
#!/usr/bin/ruby
Wobei ich auch nicht weiß ob die Angabe für den 1und1 server richtig ist
Wenn ich dann die URL aufrufe (www.myurl.de/myscript.rb), öffnet sich immer ein Dialog zum speichern der *.rb Datei
Vllt. kann mir hierbei ja jmd helfen.
PS: Ich meine nicht Ruby on Rails
Vielen Dank
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 319187
Url: https://administrator.de/forum/server-side-skriptsprache-ruby-319187.html
Ausgedruckt am: 23.12.2024 um 16:12 Uhr
10 Kommentare
Neuester Kommentar
Das was du versuchst kann so nicht funktionieren, denn du hinterlegst deine File einfach nur auf einem Webserver (im Hintergrund werkelt da bspw. ein Apache oder Nginx). Wenn du die File per Browser aufrufst, wird da im Hintergrund (wahrscheinlich Aufgrund der fehlenden CGI Angaben) kein Ruby Interpreter aufgerufen sondern dein Browser behandelt die .rb File dann eben als Dokument und liefert dieses als Plain-Text zurück.
Wenn du Ruby serverseitig verwenden willst, dann muss der Webserver den du da hast das ausführen von Ruby CGI Skripten unterstützen und du must dein Ruby-Skript CGI Konform schreiben mit den entsprechenden Klassen und Funktionen.
Ich konnte auf der der schnelle nur sehen, dass dein Hosting Paket Ruby unterstützt, nur was das genau heißt, konnte ich nicht herausfinden. Hier steht ja irgendwie, man könnte wohl den shell-Zugang den Ruby Interpreter auf deinem Server aurufen. https://hilfe-center.1und1.de/hosting/1und1-hosting-c10085285/skript--un ... Mit der könntest du dann deine .rb File ausführen, das ist aber ja gar nicht das, was du machen möchtest.
Um es kurz festzuhalten:
Ruby als Backend Sprache wie PHP geht nur wenn dein Hosting Paket
1. Webserver mit Ruby CGI Unterstützung oder
2. Ruby on Rails Unterstützung
anbietet. Ob dein Webserver Ruby CGI Skripte unterstützt, musst du entweder ausprobieren (einfach mal nach hello world ruby.cgi suchen) oder bei 1und1 nachfragen.
Ansonsten bleibt nur dass, was StefanKittel sagt. Sich mal einen eigenen Webserver mit einem Linux aufsetzen und darauf Ruby CGI aktivieren, einen LAMP Stack oder Rails installieren hilft generell für das Verständnis und ist zum coden sowieso besser ...
Wenn du Ruby serverseitig verwenden willst, dann muss der Webserver den du da hast das ausführen von Ruby CGI Skripten unterstützen und du must dein Ruby-Skript CGI Konform schreiben mit den entsprechenden Klassen und Funktionen.
Ich konnte auf der der schnelle nur sehen, dass dein Hosting Paket Ruby unterstützt, nur was das genau heißt, konnte ich nicht herausfinden. Hier steht ja irgendwie, man könnte wohl den shell-Zugang den Ruby Interpreter auf deinem Server aurufen. https://hilfe-center.1und1.de/hosting/1und1-hosting-c10085285/skript--un ... Mit der könntest du dann deine .rb File ausführen, das ist aber ja gar nicht das, was du machen möchtest.
Um es kurz festzuhalten:
Ruby als Backend Sprache wie PHP geht nur wenn dein Hosting Paket
1. Webserver mit Ruby CGI Unterstützung oder
2. Ruby on Rails Unterstützung
anbietet. Ob dein Webserver Ruby CGI Skripte unterstützt, musst du entweder ausprobieren (einfach mal nach hello world ruby.cgi suchen) oder bei 1und1 nachfragen.
Ansonsten bleibt nur dass, was StefanKittel sagt. Sich mal einen eigenen Webserver mit einem Linux aufsetzen und darauf Ruby CGI aktivieren, einen LAMP Stack oder Rails installieren hilft generell für das Verständnis und ist zum coden sowieso besser ...
Du müsstest ein paar mehr Informationen geben, so ist es relativ schwierig, von außen was dazu zu sagen.
1. Du hast geschrieben, du bekommst die Fehlermeldung für jede Sprache (Ruby, Python, Perl, PHP). Kommt diese Fehlermeldung nur, wenn du CGI Code ausführst, oder auch wenn du normalen PHP Code (ohne CGI) ausführen möchtest? Sollte das nur auf CGI Skripte zutreffen, dann poste bitte einmal den Code den du benutzt der oben genannte Fehlermeldung erzeugt.
2. Was heißt, du bekommst bei der info.py keine Fehlermeldung? Poste bitte mal den Code der info.py und die Ausgabe wenn du diese File im Browser aufrufst
3. Poste bitte mal die Ordnerstruktur. Wo liegt die info.py, wo liegen deine andere Quellcode Dateien. Welche Rechte haben die Dateien?
1. Du hast geschrieben, du bekommst die Fehlermeldung für jede Sprache (Ruby, Python, Perl, PHP). Kommt diese Fehlermeldung nur, wenn du CGI Code ausführst, oder auch wenn du normalen PHP Code (ohne CGI) ausführen möchtest? Sollte das nur auf CGI Skripte zutreffen, dann poste bitte einmal den Code den du benutzt der oben genannte Fehlermeldung erzeugt.
2. Was heißt, du bekommst bei der info.py keine Fehlermeldung? Poste bitte mal den Code der info.py und die Ausgabe wenn du diese File im Browser aufrufst
3. Poste bitte mal die Ordnerstruktur. Wo liegt die info.py, wo liegen deine andere Quellcode Dateien. Welche Rechte haben die Dateien?
Um auszuschließen, dass CGI serverseitig falsch oder unvollständig auf dem Webserver konfiguriert wurde (oder du dich in einem Ordner bewegst, der hier ausgeschlossen ist): Bitte einmal folgendes prüfen:
1. Deine myScript.cgi Datei in den /log Ordner kopieren und von dort aus aufrufen
2. Testweise eine Kopie der info.py in den /dir Ordner legen und von dort aus aufrufen
3. einen anderen Ordner als /dir nehmen und sowohl info.py als auch myScript.cgi ausprobieren
Was sind die Ausgaben?
1. Deine myScript.cgi Datei in den /log Ordner kopieren und von dort aus aufrufen
2. Testweise eine Kopie der info.py in den /dir Ordner legen und von dort aus aufrufen
3. einen anderen Ordner als /dir nehmen und sowohl info.py als auch myScript.cgi ausprobieren
Was sind die Ausgaben?
Das klingt ziemlich stark danach, dass dein Anbieter das ausführen von beliebigen CGI Skripten nicht erlaubt hat. Ich weiß natürlich nicht, was dein Webanbieter für einen Webserver nutzt. Bei Apache gibt es dafür in der httpd.conf eine Zeile die ungefähr so aussieht:
Wenn man dort natürlich erst gar nicht alle Endungen erlaubt sondern nur konkrete Skriptnamen (wie z. B. info.py statt .py), dann funktioniert es natürlich nicht mit beliebigen Dateien.
Gibt es in deinem Webpaket vielleicht diesbezüglich Konfigurationsmöglichkeiten in deinem Webinterface? Vielleicht ist es so gedacht, dass du die Namen deiner Skripte vorher dem Webserver explizit bekannt machen musst. In jedem Fall bist du nun an dem Punkt, wo es sinnvoll ist, den Anbieter zu kontaktieren und nachzufragen. Wie im ersten Post geschrieben, ist nicht so ganz klar, was mit "Python, Ruby, Perl" im Umfang deines Paketes gemeint ist und falls das CGI Skripte mit einschließt - wovon ich ausgehen würde - wie du dies für deinen Webserver für weitere oder gar beliebige Dateien aktivierst.
AddHandler cgi-script .py .rb .pl .cgi
Wenn man dort natürlich erst gar nicht alle Endungen erlaubt sondern nur konkrete Skriptnamen (wie z. B. info.py statt .py), dann funktioniert es natürlich nicht mit beliebigen Dateien.
Gibt es in deinem Webpaket vielleicht diesbezüglich Konfigurationsmöglichkeiten in deinem Webinterface? Vielleicht ist es so gedacht, dass du die Namen deiner Skripte vorher dem Webserver explizit bekannt machen musst. In jedem Fall bist du nun an dem Punkt, wo es sinnvoll ist, den Anbieter zu kontaktieren und nachzufragen. Wie im ersten Post geschrieben, ist nicht so ganz klar, was mit "Python, Ruby, Perl" im Umfang deines Paketes gemeint ist und falls das CGI Skripte mit einschließt - wovon ich ausgehen würde - wie du dies für deinen Webserver für weitere oder gar beliebige Dateien aktivierst.