Comment installer la pile MEAN avec MEAN.JS sur CentOS 7

introduction

MEAN est une pile d'applications logicielles composée des composants suivants:

  • MongoDB, une base de données NoSQL avec prise en charge de l'exécution JavaScript côté serveur

  • ExpressJS, un framework d'application Web Node.js

  • AngularJS, un cadre d'application Web adapté au développement d'applications dynamiques d'une seule page

  • NodeJS, un framework asynchrone piloté par les événements adapté à la création d'applications réseau évolutives

Le terme MEAN a été inventé pour la première fois par Valeri Karpov, dérivé de la première lettre de chaque composant. Valeri a défini MEAN enthis blog post, dans lequel il a donné quelques motivations pour choisir de développer des applications JavaScript à l'aide de la pile MEAN:

En codant en Javascript, nous sommes en mesure de réaliser des gains de performances, à la fois pour le logiciel lui-même et pour la productivité de nos développeurs. Avec MongoDB, nous pouvons stocker nos documents dans un format similaire à JSON, écrire des requêtes JSON sur nos serveurs ExpressJS et NodeJS et transmettre de manière transparente des documents JSON à notre interface AngularJS. Le débogage et l'administration de la base de données deviennent beaucoup plus faciles lorsque les objets stockés dans votre base de données sont essentiellement identiques à ceux que votre client Javascript voit. Mieux encore, une personne travaillant côté client peut facilement comprendre le code côté serveur et les requêtes de base de données; L'utilisation de la même syntaxe et des mêmes objets tout au long du processus vous évite de devoir prendre en compte plusieurs ensembles de meilleures pratiques en matière de langage et réduit la barrière d'accès pour la compréhension de votre base de code.

Il existe actuellement deux implémentations parallèles de la pile MEAN:MEAN.io etMEAN.JS. Chacun a une méthode d'installation légèrement différente. MEAN.JS is a purely community-driven implementation, while MEAN.io is sponsored by a company called Linnovate. Ils incluent tous les deux les mêmes composants, mais MEAN.io fournit un outil de ligne de commande supplémentaire,mean, ainsi qu'un support commercial.

Dans ce guide, nous allons installer une pile MEAN sur un serveur CentOS 7 à l’aide de MEAN.JS. Utiliser cette méthode implique d’abord d’installer MongoDB, puis NodeJS, puis de cloner les fichiers MEAN.JS à partir de GitHub.

Conditions préalables

Pour commencer, vous aurez besoin des éléments suivants:

  • Un serveur CentOS 7 avec au moins 4 Go de RAM. Certains des composants de la pile MEAN, commenpm, nécessitent beaucoup de mémoire.

  • Un utilisateur non root sudo configuré à l'aide dethis CentOS 7 initial server setup guide.

[[step-1 -—- Installing-dependencies]] == Étape 1 - Installation des dépendances

Comme nous allons compiler les applications à partir des sources, cloner un référentiel Git et installer les gems Ruby, nous devons d’abord installer certaines dépendances. libpng-devel etfontconfig sont nécessaires à l'un des modules MEAN.JS (pngquant).

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

Certains des modules Node.js que nous installerons nécessiteront Sass, un langage d’extension CSS. Installez-le en utilisantgem, le gestionnaire de packages de Ruby.

sudo gem install sass

Maintenant que les dépendances sont installées, nous pouvons installer le premier composant de la pile: MongoDB.

[[step-2 -—- Installing-mongodb]] == Étape 2 - Installation de MongoDB

MongoDB ne se trouvant pas dans le référentiel officiel CentOS, vous devez donc activer le référentiel officiel MongoDB pour l’installer. Cela vous donnera accès aux derniers packages et vous permettra de l'installer à partir de là.

Pour ce tutoriel, nous allons installer l’édition communautaire, qui est disponible en téléchargement gratuit. Il existe également une édition Enterprise, mais cela nécessite une licence. Nous n’en parlerons donc pas ici.

Au moment de la publication, MongoDB 3.2 est la dernière édition stable disponible pour le téléchargement et l’installation. Pour activer le référentiel, créez un fichier pour celui-ci sous/etc/yum.repos.d, le répertoire du référentiel CentOS. Pour MongoDB 3.2, nous appellerons ce fichiermongodb.org-3.2.repo.

Créez et ouvrez/etc/yum.repos.d/mongodb.org-3.2.repo en utilisantvi ou votre éditeur de texte préféré.

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

Pour faire pointer le gestionnaire de paquets vers le référentiel MongoDB officiel et l'activer, copiez et collez le texte suivant dans le fichier. Le paramètreenabled=1 active le référentiel et le paramètregpgcheck=1 active la vérification de signature GNU Privacy Guard (GPG) sur tous les paquets installés à partir du référentiel.

/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

Enregistrez et fermez le fichier, puis installez le packagemongodb-org pour installer MongoDB et ses outils associés. Lorsque vous êtes invité à importer la clé GPG, tapezy pour oui:

sudo yum install mongodb-org

Une fois l'installation terminée, démarrez le démon MongoDB.

sudo systemctl start mongod

mongod, le démon MongoDB, devrait maintenant être en cours d'exécution, et vous pouvez le vérifier à l'aide de la commande suivante:

sudo systemctl status mongod

Si elle est en cours d'exécution, la sortie devrait ressembler à ceci:

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

La prochaine partie de la pile que nous devons installer est Node.js.

[[step-3 -—- Installing-node-js]] == Étape 3 - Installation de Node.js

Un moyen simple d'installer Node.js consiste à utiliser le binaire du référentiel deNodeSource Node.js. Premièrement, ajoutez le référentiel de la branche stable. Vous pouvez lire le contenu du script avant de l'exécuter à l'aide de la commande ci-dessous en visitant l'URL de votre navigateur.

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

Ensuite, installez Node.js etnpm, un gestionnaire de packages pour Node.js.

sudo yum install -y nodejs

Vérifiez que Node.js etnpm sont installés.

npm version

Le résultat devrait être:

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' }

Maintenant quenpm est installé, nous pouvons installer le reste des composants de la pile MEAN.

[[step-4 -—- Installing-bower-and-gulp]] == Étape 4 - Installation de Bower et Gulp

Les composants que nous allons installer à cette étape sont Bower, un gestionnaire de paquets utilisé pour gérer les applications frontales, et Gulp, qui permet d’automatiser les tâches courantes.

Bower et Gulp doivent être installés globalement, ce que nous accomplissons en passant l'optiong ànpm. L’installation globale des deux applications les rend disponibles à l’échelle du système plutôt que simplement à partir du répertoire du projet local.

Installez d'abord Bower:

sudo npm install -g bower

Ensuite, installez Gulp:

sudo npm install -g gulp

Nous avons enfin tous les paquets prérequis installés. Nous pouvons maintenant installer le passe-partout MEAN.JS utilisé pour créer des applications.

[[step-5 -—- installation-the-mean-passe-partout]] == Étape 5 - Installation de la chaudière MEAN

Tout d’abord, nous allons cloner le dépôt officiel MEAN.JS GitHub.

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

Cela clone le passe-partout MEAN.JS dans un répertoire appelémeanjs dans votre répertoire personnel. Pour installer tous les paquetages référencés par le projet, vous devez vous trouver dans ce répertoire, accédez-y.

cd ~/meanjs

Ensuite, installez les packages requis en tant qu'utilisateur non root.

npm install

L'installation prendra plusieurs minutes. Lorsque cela est terminé, vous avez tout ce dont vous avez besoin pour développer une application MEAN. Dans la dernière étape, nous allons tester la pile pour nous assurer qu’elle fonctionne.

[[step-6 -—- running-your-sample-mean-application]] == Étape 6 - Exécution de votre exemple d'application MEAN

Lançons l’exemple d’application pour s’assurer que le système fonctionne correctement. Une méthode consiste à utilisernpm start, et l'autre méthode consiste à utilisergulp. Les deux commandes vous permettent de tester votre application en mode développement. Ici, nous utiliseronsnpm.

npm start

[.Remarque]##

Note: l'exécution initiale de l'une de ces commandes peut échouer avec une sortie similaire à celle-ci:

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'.

Si vous obtenez cette erreur, la solution est simple. Cela implique de supprimer le répertoirenode_modules, de vider le cache, puis de réinstaller les packages.

rm -rf node_modules
npm cache clean
npm install

Ensuite, redémarrez l'exemple d'application avecnpm start ougulp comme auparavant.

Vous pouvez maintenant accéder à votre application MEAN en visitanthttp://your_server_ip:3000 dans votre navigateur préféré. Cela devrait rendre une page avec le logo MEAN.JS, y compris le texteCongrats! You’ve configured and run the sample application. Cela signifie que vous avez une pile MEAN entièrement fonctionnelle sur votre serveur.

Conclusion

Maintenant que vous avez les composants nécessaires et le passe-partout MEAN.JS, vous pouvez commencer à créer, tester et déployer vos propres applications. Consultez lesdocumentation on MEAN.JS website pour obtenir une aide spécifique sur l'utilisation de MEAN.JS.