So installieren Sie den MEAN-Stack mit MEAN.JS unter CentOS 7

Einführung

MEAN ist ein Softwareanwendungsstack, der sich aus folgenden Komponenten zusammensetzt:

  • MongoDB, eine NoSQL-Datenbank mit Unterstützung für die serverseitige JavaScript-Ausführung

  • ExpressJS, ein Webanwendungsframework von Node.js.

  • AngularJS, ein Webanwendungsframework, das für die Entwicklung dynamischer Anwendungen mit nur einer Seite geeignet ist

  • NodeJS, ein asynchrones ereignisgesteuertes Framework, das zum Erstellen skalierbarer Netzwerkanwendungen geeignet ist

Der Begriff MEAN wurde zuerst von Valeri Karpov geprägt, und der Begriff wurde aus dem Anfangsbuchstaben jeder Komponente abgeleitet. Valeri definierte MEAN inthis blog post, in dem er einige Gründe für die Entscheidung gab, JavaScript-Anwendungen mit Hilfe des MEAN-Stacks zu entwickeln:

Durch die durchgängige Codierung mit Javascript sind wir in der Lage, sowohl in der Software selbst als auch in der Produktivität unserer Entwickler Leistungssteigerungen zu erzielen. Mit MongoDB können wir unsere Dokumente in einem JSON-ähnlichen Format speichern, JSON-Abfragen auf unseren ExpressJS- und NodeJS-basierten Servern schreiben und JSON-Dokumente nahtlos an unser AngularJS-Frontend übergeben. Das Debuggen und die Datenbankverwaltung werden viel einfacher, wenn die in Ihrer Datenbank gespeicherten Objekte im Wesentlichen mit den Objekten identisch sind, die Ihr Client-Javascript sieht. Noch besser ist, dass jemand, der auf der Clientseite arbeitet, den serverseitigen Code und die Datenbankabfragen leicht verstehen kann. Durch die Verwendung der gleichen Syntax und Objekte auf dem gesamten Weg müssen Sie nicht mehr mehrere Best Practices für Sprachen berücksichtigen, und die Zugangsbeschränkungen für das Verständnis Ihrer Codebasis werden verringert.

Derzeit gibt es zwei parallele Implementierungen des MEAN-Stacks:MEAN.io undMEAN.JS. Jedes hat eine etwas andere Installationsmethode. MEAN.JS is a purely community-driven implementation, while MEAN.io is sponsored by a company called Linnovate. Beide enthalten dieselben Komponenten, aber MEAN.io bietet ein zusätzliches Befehlszeilentool,mean, sowie kommerziellen Support.

In diesem Handbuch installieren wir einen MEAN-Stack mit MEAN.JS auf einem CentOS 7-Server. Bei dieser Methode wird zuerst MongoDB, dann NodeJS installiert und anschließend die MEAN.JS-Dateien von GitHub geklont.

Voraussetzungen

Zu Beginn benötigen Sie Folgendes:

  • Ein CentOS 7-Server mit mindestens 4 GB RAM. Einige der Komponenten des MEAN-Stacks, wienpm, benötigen viel Speicher.

  • Ein Sudo-Benutzer ohne Rootberechtigung, der mitthis CentOS 7 initial server setup guide konfiguriert wurde.

[[Schritt-1 - Installieren von Abhängigkeiten]] == Schritt 1 - Installieren von Abhängigkeiten

Da wir Anwendungen aus dem Quellcode kompilieren, ein Git-Repository klonen und Ruby-Gems installieren, müssen wir zuerst einige Abhängigkeiten installieren. libpng-devel undfontconfig werden von einem der MEAN.JS-Module (pngquant) benötigt.

sudo yum install gcc-c++ make git fontconfig bzip2 libpng-devel ruby ruby-devel

Einige der Node.js-Module, die wir installieren, benötigen Sass, eine CSS-Erweiterungssprache. Installieren Sie es mitgem, Rubys Paketmanager.

sudo gem install sass

Nachdem die Abhängigkeiten installiert sind, können wir die erste Komponente des Stacks installieren: MongoDB.

[[Schritt-2 - Installation von Mongodb]] == Schritt 2 - Installation von MongoDB

MongoDB befindet sich nicht im offiziellen CentOS-Repository. Um es zu installieren, müssen Sie das offizielle MongoDB-Repository aktivieren. Auf diese Weise erhalten Sie Zugriff auf die neuesten Pakete und können diese von dort aus installieren.

Für dieses Tutorial installieren wir die Community-Edition, die kostenlos heruntergeladen werden kann. Es gibt auch eine Enterprise-Edition, für die jedoch eine Lizenz erforderlich ist. Daher werden wir hier nicht darauf eingehen.

Zum Zeitpunkt der Veröffentlichung ist MongoDB 3.2 die neueste stabile Edition, die zum Herunterladen und Installieren verfügbar ist. Um das Repository zu aktivieren, erstellen Sie eine Datei unter/etc/yum.repos.d, dem CentOS-Repository-Verzeichnis. Für MongoDB 3.2 nennen wir diese Dateimongodb.org-3.2.repo.

Erstellen und öffnen Sie/etc/yum.repos.d/mongodb.org-3.2.repo mitvi oder Ihrem bevorzugten Texteditor.

sudo vi /etc/yum.repos.d/mongodb.org-3.2.repo

Um den Paketmanager auf das offizielle MongoDB-Repository zu verweisen und es zu aktivieren, kopieren Sie Folgendes und fügen Sie es in die Datei ein. Durch Festlegen vonenabled=1 wird das Repository aktiviert, und durch Festlegen vongpgcheck=1 wird die GPG-Signaturprüfung (GNU Privacy Guard) für alle aus dem Repository installierten Pakete aktiviert.

/etc/yum.repos.d/mongodb.org-3.2.repo

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

Speichern und schließen Sie die Datei und installieren Sie das Paketmongodb-org, um MongoDB und die zugehörigen Tools zu installieren. Wenn Sie aufgefordert werden, den GPG-Schlüssel zu importieren, geben Siey für yes ein:

sudo yum install mongodb-org

Starten Sie nach Abschluss der Installation den MongoDB-Daemon.

sudo systemctl start mongod

mongod, der MongoDB-Daemon, sollte jetzt ausgeführt werden, und Sie können dies mit dem folgenden Befehl überprüfen:

sudo systemctl status mongod

Wenn es ausgeführt wird, sollte die Ausgabe folgendermaßen aussehen:

Outputmongod.service - SYSV: Mongo is a scalable, document-oriented database.
   Loaded: loaded (/etc/rc.d/init.d/mongod)
   Active: active (running) since Tue 2016-09-06 12:42:16 UTC; 9s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 9374 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/mongod.service
           └─9385 /usr/bin/mongod -f /etc/mongod.conf

Sep 06 12:42:16 centos-mean-js systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
Sep 06 12:42:16 centos-mean-js runuser[9381]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Sep 06 12:42:16 centos-mean-js mongod[9374]: Starting mongod: [  OK  ]
Sep 06 12:42:16 centos-mean-js systemd[1]: Started SYSV: Mongo is a scalable, document-oriented database..

Der nächste Teil des Stacks, den wir installieren müssen, ist Node.js.

[[Schritt-3 - Installieren von Node-Js]] == Schritt 3 - Installieren von Node.js.

Eine einfache Möglichkeit, Node.js zu installieren, ist die Verwendung der Binärdatei aus dem Node.js-Repository vonNodeSource. Fügen Sie zunächst das Repository des Stable-Zweigs hinzu. Sie können den Inhalt des Skripts lesen, bevor Sie es mit dem folgenden Befehl ausführen, indem Sie die URL in Ihrem Browser aufrufen.

curl -sL https://rpm.nodesource.com/setup_4.x | sudo -E bash -

Installieren Sie als Nächstes Node.js undnpm, einen Paketmanager für Node.js.

sudo yum install -y nodejs

Stellen Sie sicher, dass Node.js undnpm installiert sind.

npm version

Die Ausgabe sollte sein:

Output{ npm: '2.15.9',
  ares: '1.10.1-DEV',
  http_parser: '2.7.0',
  icu: '56.1',
  modules: '46',
  node: '4.5.0',
  openssl: '1.0.2h',
  uv: '1.9.1',
  v8: '4.5.103.37',
  zlib: '1.2.8' }

Nachdemnpm installiert ist, können wir die restlichen Komponenten des MEAN-Stacks installieren.

[[Schritt 4 - Installation von Laube und Schluck]] == Schritt 4 - Installation von Laube und Schluck

Die Komponenten, die wir in diesem Schritt installieren werden, sind Bower, ein Paketmanager, mit dem Front-End-Anwendungen verwaltet werden, und Gulp, mit dem allgemeine Aufgaben automatisiert werden.

Sowohl Bower als auch Gulp müssen global installiert werden. Dies erreichen wir, indem wir die Optiong annpm übergeben. Wenn Sie beide Anwendungen global installieren, sind sie systemweit verfügbar und nicht nur im lokalen Projektverzeichnis.

Installieren Sie zuerst Bower:

sudo npm install -g bower

Dann installiere Gulp:

sudo npm install -g gulp

Jetzt haben wir endlich alle erforderlichen Pakete installiert. Wir können mit der Installation der eigentlichen MEAN.JS-Kesselplatte fortfahren, mit der die Anwendungen erstellt wurden.

[[Schritt-5 -—- Installieren der mittleren Kesselplatte]] == Schritt 5 - Installieren der MEAN-Kesselplatte

Zuerst klonen wir das offizielle MEAN.JS GitHub-Repository.

git clone https://github.com/meanjs/mean.git meanjs

Dadurch wird das MEAN.JS-Boilerplate in ein Verzeichnis namensmeanjs in Ihrem Home-Verzeichnis geklont. Um alle Pakete zu installieren, auf die das Projekt verweist, müssen Sie sich in diesem Verzeichnis befinden. Wechseln Sie also in dieses Verzeichnis.

cd ~/meanjs

Installieren Sie dann die erforderlichen Pakete als Benutzer ohne Rootberechtigung.

npm install

Die Installation dauert einige Minuten. Nach Abschluss haben Sie alles, was Sie zum Entwickeln einer MEAN-Anwendung benötigen. Im letzten Schritt testen wir den Stack, um sicherzustellen, dass er funktioniert.

[[Schritt-6 -—- Ausführen Ihrer Beispiel-Mittelwert-Anwendung]] == Schritt 6 - Ausführen Ihrer Beispiel-MEAN-Anwendung

Führen Sie die Beispielanwendung aus, um sicherzustellen, dass das System ordnungsgemäß funktioniert. Eine Methode besteht darin,npm start zu verwenden, und die andere Methode besteht darin,gulp zu verwenden. Mit beiden Befehlen können Sie Ihre Anwendung im Entwicklungsmodus testen. Hier verwenden wirnpm.

npm start

[.Hinweis]##

Note: Der erste Lauf eines dieser Befehle kann mit einer Ausgabe ähnlich der folgenden fehlschlagen:

Error output[12:56:49] 'lint' errored after 702 ms
[12:56:49] Error in plugin 'run-sequence'
Message:
    An error occured in task 'sass'.

Wenn Sie diesen Fehler erhalten, ist das Update einfach. Dabei wird das Verzeichnisnode_modulesgelöscht, der Cache geleert und die Pakete neu installiert.

rm -rf node_modules
npm cache clean
npm install

Starten Sie dann die Beispiel-App mitnpm start odergulp wie zuvor neu.

Sie können jetzt auf Ihre MEAN-Anwendung zugreifen, indem Siehttp://your_server_ip:3000 in Ihrem bevorzugten Browser aufrufen. Das sollte eine Seite mit dem MEAN.JS-Logo einschließlich des TextesCongrats! You’ve configured and run the sample application. rendern. Dies bedeutet, dass Sie einen voll funktionsfähigen MEAN-Stapel auf Ihrem Server haben.

Fazit

Nachdem Sie über die erforderlichen Komponenten und die MEAN.JS-Boilerplate verfügen, können Sie mit dem Erstellen, Testen und Bereitstellen Ihrer eigenen Apps beginnen. Indocumentation on MEAN.JS websitefinden Sie spezifische Hilfe zur Arbeit mit MEAN.JS.