Ankündigung

Einklappen
Keine Ankündigung bisher.

node.js

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

    node.js

    In den kommenden Monaten werden wir nützliche Inhalte aus dem alten Forum als Anleitung zu unserem Blog und unseren FAQ hinzufügen; und wenn Sie weitere Informationen aus dem alten Forum benötigen, fragen Sie bitte hier noch einmal danach.
    Ich habe einen solchen Fall. In einem älteren Blog-Eintrag zu node.js:
    https://www.df.eu/blog/node-js-ab-so...rn-verfuegbar/

    wird auf einen Beitrag aus dem alten Forum verwiesen:
    https://www.df.eu/forum/threads/7615...verf%C3%BCgbar

    Gibt es irgendwo eine Kopie des Beitrags oder eine andere Zusammenstellung von Tipps über die Nutzung von node.js bei DomainFactory?

    Danke und viele Grüße!

    #2
    Hallo tpriebe,

    ich habe mal nachfolgend die wichtigsten Dinge kopiert:

    Zitat von Nils Dornblut
    Sehr geehrter Kunde, sehr geehrte Kundin,

    ab sofort ist bei uns Node.js auf allen Servern verfügbar. Sie können dieses in allen skriptfähigen Tarifen nutzen. Node.js bietet Ihnen kurz gesagt serverseitiges JavaScript, also eine JavaScript-Laufzeitumgebung zur Erstellung von Server- und Konsolenanwendungen. Diese eignet sich besonders gut für hochperformante und skalierbare Webanwendungen, da sie auf der schnellen Google v8 JavaScript Engine basiert. Als Einstiegt in das Thema empfehlen wir den Artikel, der sich mit der Gegenüberstellung von PHP und Node.js beschäftigt: http://nodecode.de/php-oder-nodejs

    Sie werden sehen, Node.js bringt einige spannende Anwendungsszenarien und wir sind gespannt wie sich das weiter entwickelt. Zahlreiche Anwendungen wie EtherPad nutzen die Technologie und auch z. B. die Wikipedia setzt dies für den noch relativ jungen VisualEditor (Implementierung Parsoid) ein.

    Node.js ist bei uns erreichbar unter /usr/bin/node und in der aktuellsten Version 0.12.2 vom 31.03.2015 verfügbar.

    Falls Sie hier Anwendungen testen, freuen wir uns über Rückmeldungen, Erfahrungen und im Idealfall Installationsanleitungen.

    Viel Spaß mit dem neuen Feature!

    Mit freundlichen Grüßen
    Zitat von Nils Dornblut
    AW: Hello World-Beispiel?
    node.js ist als normale Anwendung auf dem Server installiert und unterliegt den regulären Limits im Bereich CPU, RAM, Prozesse und Laufzeit. Es ist im Shared Hosting daher auch nicht möglich länger als ca. 180 Sekunden einen Prozess laufen zu lassen. Wo dies genau Einschränkungen bietet und relevant ist, lassen Sie uns bitte einmal gemeinsam herausfinden. Wir können hier noch nicht auf umfangreicher Erfahrungen zurückblicken.

    Mit freundlichen Grüßen
    Tutorial: So funktioniert Node per CGI bei Domainfactory

    Hallo allerseits,

    nachdem oben verlinktes Beispiel nur erklärt, wie man Node als eigenen Serverprozess startet, hab ich mal etwas experimentiert, wie man Node-Skripte als CGI laufen lassen kann und ein Hello-World Beispiel gebaut.

    Anbei das Ergebnis als Zip-Datei [ATTACH]4561[/ATTACH]. (Die Datei kann einfach in ein Unterverzeichnis /node einer Domain entpackt werden für andere Verzeichnisse muss man die .htaccess anpassen!).

    Im Detail - was ich gemacht habe:

    1. Es gibt ein Skript CGI Node, dass die Nutzung von Node von CGI-Skripten aus ermöglicht. Auf Servern von DF werden folgende Anpassungen benötigt:
    • Der Dateiname muss auf .cgi und nicht auf .js enden!
    • Die erste Zeile muss auf #!/usr/bin/nodevgeändert werden
    • Die Zeile SessionPath: 'D:/Programs/nodejs/sessions/' muss auf SessionPath: '/tmp/' geändert werden.
    • Der Inhalt der Funktion this.cleanUp muss auskommentiert werden, damit das Skript sich nicht über fehlende Leserechte in /tmp beschwert
    2. Es wird eine .htaccess-Datei mit folgendem Inhalt benötigt, um die Extension .jss für CGI-Nodeskripte zu vergeben:
    Code:
    Action cgi-node /node/cgi-node.cgi
    AddHandler cgi-node .jss
    Jetzt kann man mit folgenden Skripten Node im CGI-Modus testen:
    hello.jss:
    Code:
    <?
    response.headers['Content-Type'] = 'text/plain';
    response.write('Hello World!');
    ?>
    nodeinfo.jss - die Node-Entsprechung von phpinfo():
    Code:
    <?
    CgiNodeInfo();
    ?>
    @DF: Würde es eigentlich Sinn machen, CGI Node samt passender Apache-Konfiguration überall vorzuinstallieren?

    Ansonsten ist es übrigens auch ohne cgi-node möglich, Node-Skripte per CGI auszuführen - allerdings hat man dann gar keine CGI-spezifischen Hilfsfunktionen mehr, sondern darf alles selbst machen (z.B. Parameter/Cookies parsen, Header schreiben, ...):
    hello.cgi:
    Code:
    #!/usr/bin/node
    console.log('Content-Type: text/plain');
    console.log('');
    console.log('Hello World!');
    AW: Tutorial: So funktioniert Node per CGI bei Domainfactory

    Weil ich gerade Bedarf hatte - Kurzanleitung für die Installation von etherpad-Lite:

    Im Hauptverzeichnis des Servers (oder der Quota) eine Datei .npmrc anlegen
    Code:
    prefix = /kunden/xxxx
    umask = 077
    Präfix ist der Pfad zum Hauptverzeichnis bzw. zur Quota. Die Datei ist notwenig, da wir in die Systemverzeichnis des Servers ja nicht schreiben können und der npm (der Modul-Manager von Node) seine Pakete dann in das angegebene Verzeichnis in ein Verzeichnis .npm ablegt)

    In das Verzeichnis gehen, in das der Quellcode von Etherpad abgelegt werden soll und mit das git-Repository von etherpad-lite clonen

    Dann in das Verzeichnis etherpad-lite wechseln und dann mit
    Code:
    bin/installDeps.sh
    die Abhängigkeiten installieren (das sollte, vorausgesetzt der Pfad in der .npmrc ist korrekt problemlos durchlaufen)

    Anschließend z.B mit
    Code:
    nano -w settings.json
    die settings.json editieren (vor allem die Angaben zur Datenbank - MySQL ist empfohlen und müsste im Kundenmenü vorher angelegt werden sowie die Angaben zu den Benutzern - User admin z.B.)

    Dann im Kundenmenü eine Subdomain angelegen und in dem Pfad der Sub-Domain eine .htaccess-Datei mit dem Inhalt
    Code:
    DirectoryIndex ""
    RewriteEngine On
    RewriteRule (.*) http://localhost:9001/$1 [P]
    anlegen (das DirectoryIndex "" ist notwenig, da der Apache sonst nach einer index.html sucht, die Pfadangabe hinter localhost muss mit der Angabe in der Settings.json korrespondieren)

    Damit wäre soweit alles fertig.

    Mit folgendem Script starte ich dann etherpad-lite:
    Code:
    #!/bin/bash
    nohup /www/216461_23556/webseiten/etherpad-lite/bin/run.sh 0<&- &>/dev/null &
    Damit wird das ganze im Hintergrund ausgeführt (führt man die run.sh direkt aus, was technisch auch funktioniert, kommen ne ganze Menge Meldungen auf der Konsole)

    In hab mit das Script in das Verzeichnis /serverboot gelegt und mit chmod +x etherpad-lite.sh
    ausführbar gemacht (etherpad-lite.sh heißt das Script), dann sollte es auch bei einem Serverneustart ausgeführt werden (da kann man es sicher auch noch etwas ausführlicher gestalten und besser mit "Start", "Stop" etc. gestalten, das ist nur die "Minimalstversion")

    Da etherpad-lite ein Server ist funktioniert das ganze nur mit abgeschalteten Scriptlimits, ansonsten wird es bei erreichen selbiger gekillt (und man müsste es - manuell - immer wieder neu starten). Praktikabel ist das also nur mit einem Server, nicht im Shared Hosting

    Todo:
    - Startskript verbessern
    - Installation von Abiword (für den Import / Export von Word, PDF etc.) prüfen.

    Das wie gesagt in aller Kürze - meine Zeit ist gerade etwas begrenzt, aber da ich gerade ein Etherpad benötigt habe wollte ich es mal auf diesem Weg probieren.

    AW: Tutorial: So funktioniert Node per CGI bei Domainfactory

    Danke für die Anleitung. Dann brauche ich mir die Mühe beim SharedHosting gar nicht zu machen.

    Dann würde ich mal sagen, die Ankündigung weckt mehr Erwartung als sie halten kann :-(
    AW: Tutorial: So funktioniert Node per CGI bei Domainfactory

    Naja, es lässt sich schon allerhand machen - nur halt im Shared-Hosting nichts, was als Server agiert (und damit unterscheidet es sich nicht von allen anderen zur Verfügung gestellten Sprachen). Aber mit der .npmrc kann man mit Hilfe von npm so einiges installieren (in den Beispielen, wo ich auch den Tipp mit der .npmrc gefunden hatte ist z.B. ein kompletter Editor, der sich auch problemlos installieren und aufrufen ließ)

    Sobald ich wieder etwas mehr Zeit habe will ich mir mal den neuen Standard-Editor von Mediawiki (der basiert auch auf node.js) vornehmen.. Da der vermute ich nicht als Server agiert (wüsste jedenfalls nicht wieso er das sollte) sollte das eigentlich auch im Shared-Hosting klappen
    Mit freundlichen Grüßen

    Nils Dornblut

    Blog - Facebook - Twitter
    Communitybetreiber: domainfactory GmbH
    Impressum / Pflichtangaben

    Kommentar


      #3
      Hallo Herr Dornblut,

      vielen Dank!! Genau das habe ich gesucht!

      Kommentar


        #4
        Hallo Herr Dornblut,

        durch Google bin ich auf diesen Thread gestoßen. Ich möchte gern mein Mediawiki mit VisualEditor betreiben. Auf einem ManagedSharedHoster.

        ICh muss sicher noch die LocalSettings anpassen, entsprechend https://www.mediawiki.org/wiki/Exten...arsoid_serviceentsprechend "linking with parsoid"?

        $wgVirtualRestConfig['modules']['parsoid'] = array(
        // URL to the Parsoid instance
        // Use port 8142 if you use the Debian package 'url' => 'http://localhost:8000',
        // Parsoid "domain", see below (optional) 'domain' => 'localhost',
        // Parsoid "prefix", see below (optional) 'prefix' => 'localhost'
        );
        Was muss ich dort eintragen?
        Zuletzt geändert von getNo; 29.08.2019, 14:48.

        Kommentar


          #5
          Hallo getNo,

          hierfür müssten Sie Parsoid installieren. Im Shared Hosting wird eine Installation vermutlich nicht klappen, da aus Sicherheitsgründen Skripte nach einer bestimmten Zeit abgebrochen werden. Ob es auf einem Managed Server funktioniert, müssten Sie testen. Diesbezüglich liegen keine Erfahrungen vor.

          Hier zwei Anleitung:

          https://www.mediawiki.org/wiki/Parsoid/Setup

          https://de.wiki.bluespice.com/wiki/S.../Linux/Parsoid

          Ich habe selbst mal umfangreiche Installationen diesbezüglich betreut (interne Server), das ist durchaus eine sehr komplexe Geschichte insgesamt. Dies nur als Hinweis.

          Mit freundlichen Grüßen

          Nils Dornblut
          Blog - Facebook - Twitter
          Communitybetreiber: domainfactory GmbH
          Impressum / Pflichtangaben

          Kommentar


            #6
            Nachtrag: Wenn ein Kunde diesbezüglich etwas probiert hat oder Erfahrungen vorliegen, dann bitte gerne melden!
            Blog - Facebook - Twitter
            Communitybetreiber: domainfactory GmbH
            Impressum / Pflichtangaben

            Kommentar


              #7
              Guten Morgen,
              danke für Ihr Feedback.
              Da Sie bereits Parsoid, nod.js und Mediawiki in einem älteren Zitat erwähnt hatten, dachte ich die Installation ist bereits vorhanden.
              Ich werde mich weiterhin damit beschäftigen und gebe gern nochmal Feedback.
              Können Sie ansonsten ein anderes Wiki-CMS empfehlen mit Richtext Editor?

              Kommentar


                #8
                Zitat von getNo Beitrag anzeigen
                Da Sie bereits Parsoid, nod.js und Mediawiki in einem älteren Zitat erwähnt hatten, dachte ich die Installation ist bereits vorhanden.
                Das ist eine spezielle Geschichte für Mediawiki, daher ist das nicht direkt verfügbar.

                Können Sie ansonsten ein anderes Wiki-CMS empfehlen mit Richtext Editor?
                Es ist schon der beste Editor in dem Bereich nach meiner Meinung. Es gibt aber für die meisten Systeme was in der Richtung. Eine gute Übersicht habe ich gerade aber nicht finden können. Vielleicht hat da ein anderer User noch Erfahrungen?

                Mit freundlichen Grüßen

                Blog - Facebook - Twitter
                Communitybetreiber: domainfactory GmbH
                Impressum / Pflichtangaben

                Kommentar

                Lädt...
                X