Comment configurer une application Web Meteor.js avec MongoDB et Apache sur Ubuntu 16.04 LTS

Meteor.js est un framework JavaScript open source écrit avec Node.js à l'esprit. Il est populaire en raison de sa vision de la création d'applications Web en JavaScript pur. Meteor intègre un support JavaScript frontal qui s'exécute dans le navigateur Web, ainsi qu'un JavaScript principal, qui s'exécuterait sur le serveur hôte. Il s'intègre très bien avec les frameworks JavaScript frontaux, tels que React et Angular.js, ainsi que MongoDB, une base de données NoSQL populaire. Quelques grandes raisons de choisir Meteor.js sont les suivantes:

  • Meteor.js est un framework de pile complet. Ainsi, avec lui, vous obtenez tout ce dont vous pourriez avoir besoin: base de données, frontal, backend. Meteor fait un travail incroyable en liant tout cela ensemble.

  • La vitesse. Le système de package intuitif de Meteor vous offre de nombreux outils dont vous pourriez avoir besoin pour perfectionner votre application.

  • Il a un bon support du Meteor Developer Group, ainsi que des autres développeurs qui l'utilisent. Vous pourrez facilement identifier les problèmes que vous pourriez rencontrer et les résoudre rapidement.

Dans ce didacticiel, nous atteindrons les objectifs suivants sur Ubuntu 16.04:

  • Installez Node.js, notre runtime Javascript.

  • Installez Meteor.js.

  • Installez MongoDB, la base de données de Meteor de choix.

  • Installez Apache, notre proxy inverse de choix, et configurez notre domaine le cas échéant.

  • Testez notre site Web.

  • Configurez notre site Web pour la production.

Installation de Node.js

Vous devrez d'abord installer Node.js, qui est notre interpréteur JavaScript, et le noyau de Meteor. Cela nous permettra d'exécuter Meteor et d'autres applications Node.js que nous pourrons avoir à l'avenir. Dans cette situation, nous installerons Node.js 8. Pour démarrer le téléchargement, exécutez simplement ce qui suit dans votre terminal.

curl -sL https://deb.nodesource.com/setup_8.x | sudo -E bash -
sudo apt-get install -y nodejs

Attendez la fin du téléchargement et de l'installation.

Installation de MongoDB

Ensuite, nous installerons notre base de données: MongoDB. MongoDB est une base de données de documents NoSQL open source gratuite et la base de données de choix de Meteor. Il utilise un format de type JSON pour ses documents, par opposition aux tableaux structurés dans une base de données SQL traditionnelle.

Importez la clé publique MongoDB utilisée par APT(Advanced Packaging Terminal). Cela permet à APT de vérifier le package; dans ce cas, MongoDB.

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 0C49F3730359A14518585931BC711F9BA15703C6

Créez le fichier de liste nécessaire pour Ubuntu 16.04.

echo "deb [ arch=amd64,arm64 ] http://repo.mongodb.org/apt/ubuntu xenial/mongodb-org/3.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.4.list

Démarrez l'installation de MongoDB et attendez la fin de l'installation.

sudo apt update && sudo apt install mongodb-org -y

Ouvrez le service systemd pour le modifier.

sudo nano /etc/systemd/system/mongodb.service

Copiez et collez ce qui suit pour terminer le service systemd.

[Unit]
Description=High-performance, schema-free document-oriented database
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

[Install]
WantedBy=multi-user.target

Utilisez " Control-O" pour enregistrer et " Control-X" pour quitter.

Exécutez le service MongoDB systemd en tapant sudo systemctl start mongodbvotre terminal.

Pour vérifier qu'il a démarré correctement, tapez ce qui suit.

sudo systemctl status mongodb

Vous verrez que le service est actif.

Installation et configuration d'Apache2

Ensuite, nous installerons Apache. Apache est un logiciel de serveur Web gratuit et open source, qui fonctionne également comme un proxy inverse, ce que nous utiliserons dans ce tutoriel. Un proxy inverse est nécessaire pour lier notre application Meteor.js à port 80. Node.js empêche les applications de s'exécuter sur ce port sans accès root. Apache s'exécute aussi rootautomatiquement que se lie à port 80, nous n'aurons donc pas à nous en soucier quand viendra le temps d'exécuter notre site Web.

Installez Apache.

sudo apt update && sudo apt install apache2

Afin de permettre l'accès à des ports Web externes tels que port 80, nous devons configurer notre pare-feu pour Apache. Nous le faisons via UFW(Pare-feu simple).

sudo ufw allow 'Apache Full'

Cela permettra d'accéder au Apache Fullprofil " ". Cela nous donne le trafic entrant port 80, sur lequel notre application s'exécutera.

Installer Meteor.js et créer notre application de base

Maintenant, nous allons installer notre framework web: Meteor.js. Nous utiliserons un simple script bash fourni par l'équipe Meteor pour l'installer.

curl https://install.meteor.com/ | sh

Attendez la fin de l'installation. Fondamentalement, le script télécharge Meteor sur le site officiel et l'installe à l'échelle mondiale, afin que nous puissions l'utiliser de n'importe où. Une fois terminé, nous pouvons créer notre répertoire d'application. Meteor a un petit outil pratique à utiliser pour cela, appelé meteor create. Pour créer votre répertoire d'application, tapez ce qui suit.

meteor create <projectname>

Le dossier sera créé avec le nom spécifié ( <projectname>).

Configuration de notre proxy inverse Apache

Maintenant que notre répertoire d'application est configuré, nous pouvons procéder à la configuration de notre proxy inverse. Apache utilise un module appelé mod_proxy, qui implémente un proxy pour Apache.

sudo apt-get install libapache2-mod-proxy-html libxml2-dev -y

Cela installera le module et le rendra disponible pour Apache.

Ensuite, nous devrons activer tous les modules nécessaires qu'Apache doit exécuter. Nous le ferons avec a2enmod, un outil qui active les modules pour Apache. Ces modules nous permettront de profiter du proxy inverse. Tapez simplement ces commandes dans votre terminal.

sudo a2enmod proxy
sudo a2enmod proxy_http
sudo a2enmod proxy_ajp
sudo a2enmod rewrite
sudo a2enmod deflate
sudo a2enmod headers
sudo a2enmod proxy_balancer
sudo a2enmod proxy_connect
sudo a2enmod proxy_html

Après cela, nous devrons désactiver le démarrage du site Apache par défaut, afin que nous puissions démarrer le nôtre. Sinon, l'application Apache par défaut remplacera la nôtre. Pour désactiver le site par défaut, exécutez simplement ce qui suit.

sudo a2dissite 000-default

Nous allons maintenant créer notre fichier hôte virtuel. Pour ce faire, ouvrez simplement un éditeur de texte.

sudo nano /etc/apache2/sites-available/<projectname>

Copiez et collez ce qui suit.

<VirtualHost *:80>
  ErrorLog ${APACHE_LOG_DIR}/error.log
  CustomLog ${APACHE_LOG_DIR}/access.log combined
  ProxyPreserveHost On
  # Servers to proxy the connection, or
  # List of application servers Usage
  ProxyPass / http://0.0.0.0:3000/
 ServerName localhost
</VirtualHost>
  • VirtualHost *:80: Indique à Apache de se connecter au port 80, ce que nous souhaitons pour notre application Web.

  • ProxyPass: L'adresse IP du site que vous souhaitez transmettre au proxy inverse. Ce sera probablement l'IP de votre VPS

  • ServerName: Le nom de votre serveur (le nom par défaut est généralement localhost).

Une fois que vous avez terminé de configurer les paramètres nécessaires, utilisez " Control-O" pour enregistrer et " Control-X" pour quitter.

Exécuter le site pour la première fois

Pour tester et vous assurer que le site Web fonctionne, tapez ce qui suit dans le répertoire du projet.

meteor

Vous verrez la sortie suivante montrant que votre site a démarré avec succès.

=> App running at: http://localhost:3000/

Notez que Meteor, par défaut, écoute port 3000.

Configuration de notre site Web pour la production

Afin de nous assurer que notre application peut continuer à fonctionner, nous utiliserons un service systemd. Semblable à ce que nous avons fait ci-dessus avec MongoDB, ce service système s'assurera que notre site Web démarrera à chaque démarrage de notre système et continuera de fonctionner. Il redémarrera également notre application, dans le cas où il se bloquerait pour une raison quelconque. Pour configurer notre service systemd, tapez ce qui suit dans votre terminal.

sudo nano /etc/systemd/system/<projectname>.service

Voici à quoi vous voulez que votre fichier ressemble.

[Service]
WorkingDirectory=/home/<yourusername>/<projectname>
ExecStart=/usr/local/bin/meteor --production
Restart=always
StandardOutput=syslog
StandardError=syslog
SyslogIdentifier=<projectName>
User=<yourusername>
Environment=NODE_ENV=production
Environment=PWD=/home/<yourusername>/<projectname>
Environment=PORT=3000
Environment=HTTP_FORWARDED_COUNT=1

Remarque : N'oubliez pas de remplacer projectnamepar le nom du projet et yourusernamepar le nom d'utilisateur du VPS.

Voici quelques lignes clés à garder à l'esprit.

  • WorkingDirectory: Le répertoire de votre application.

  • Restart: Le redémarrage ou non de l'application s'arrête pour une raison quelconque.

  • User: Ton nom d'utilisateur.

  • Environment=PWD: Identique à WorkingDirectory.

  • Environment=PORT: Port sur lequel votre application s'exécute. La valeur par défaut est 3000.

Enregistrez et fermez le fichier.

Maintenant, nous allons activer et démarrer le service.

sudo systemctl enable <projectname>.service

<projectname>est le nom du fichier de service que nous avons créé.

Ensuite, nous commencerons le service.

sudo systemctl start <projectname>.service

Votre candidature va démarrer. Pour vérifier son lancement, exécutez simplement ce qui suit.

sudo systemctl status <projectname>

Vous verrez qu'il est actif, vérifiant que le service a démarré avec succès.

Ensuite, nous allons consulter notre site Web. Dans le navigateur Web de votre choix, accédez à votre adresse IP.

http://your-server-ip/

Vous verrez l'écran exemple Meteor, vérifiant que vous avez tout fait correctement.

Gérer notre application

Maintenant que nous avons commencé notre application, nous devons la gérer.

Redémarrer votre application

sudo systemctl restart <projectname>

Arrêt de l'application

sudo systemctl stop <projectname>

Affichage de l'état de l'application

sudo systemctl status <projectname>

Affichage des journaux

journalctl -u <projectname>

Vous avez maintenant configuré avec succès MongoDB, Apache et Meteor et créé un serveur Web Meteor.js pour la production. Maintenant, le reste est à vous, de concevoir votre site Web à l'avant et à l'arrière. Vous avez accès à MongoDB pour stocker toutes les données dont vous pourriez avoir besoin et à Node.js, qui propose une variété de modules disponibles via Node Package Manager ( NPM) pour renforcer davantage votre backend. Pour plus de documentation, n'hésitez pas à visiter le site Meteor , où vous pourrez découvrir comment personnaliser votre site Web à votre guise. En outre, vous pouvez vous référer à la documentation MongoDB lorsque vous traitez des opérations de base de données.



LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

LIA peut-elle lutter contre un nombre croissant dattaques de ransomware

Les attaques de ransomware sont en augmentation, mais l'IA peut-elle aider à lutter contre le dernier virus informatique ? L'IA est-elle la réponse ? Lisez ici, sachez que l'IA est un boone ou un fléau

ReactOS : est-ce lavenir de Windows ?

ReactOS : est-ce lavenir de Windows ?

ReactOS, un système d'exploitation open source et gratuit est ici avec la dernière version. Cela peut-il suffire aux besoins des utilisateurs de Windows modernes et faire tomber Microsoft ? Découvrons-en plus sur cet ancien style, mais une expérience de système d'exploitation plus récente.

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Restez connecté via lapplication de bureau WhatsApp 24 * 7

Whatsapp a finalement lancé l'application de bureau pour les utilisateurs Mac et Windows. Vous pouvez désormais accéder facilement à Whatsapp depuis Windows ou Mac. Disponible pour Windows 8+ et Mac OS 10.9+

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Comment lIA peut-elle faire passer lautomatisation des processus au niveau supérieur ?

Lisez ceci pour savoir comment l'intelligence artificielle devient populaire parmi les petites entreprises et comment elle augmente les probabilités de les faire grandir et de donner à leurs concurrents un avantage.

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

La mise à jour du supplément macOS Catalina 10.15.4 cause plus de problèmes quelle nen résout

Récemment, Apple a publié macOS Catalina 10.15.4, une mise à jour supplémentaire pour résoudre les problèmes, mais il semble que la mise à jour cause davantage de problèmes, ce qui entraîne le bridage des machines mac. Lisez cet article pour en savoir plus

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux dextraction de données de Big Data

13 outils commerciaux d'extraction de données de Big Data

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Quest-ce quun système de fichiers de journalisation et comment fonctionne-t-il ?

Notre ordinateur stocke toutes les données d'une manière organisée connue sous le nom de système de fichiers de journalisation. C'est une méthode efficace qui permet à l'ordinateur de rechercher et d'afficher des fichiers dès que vous appuyez sur la recherche.https://wethegeek.com/?p=94116&preview=true

Singularité technologique : un futur lointain de la civilisation humaine ?

Singularité technologique : un futur lointain de la civilisation humaine ?

Alors que la science évolue à un rythme rapide, prenant le pas sur une grande partie de nos efforts, les risques de nous soumettre à une Singularité inexplicable augmentent également. Lisez, ce que la singularité pourrait signifier pour nous.

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques danalyse des mégadonnées : partie 1

Un aperçu de 26 techniques d'analyse des mégadonnées : partie 1

Limpact de lintelligence artificielle dans les soins de santé 2021

Limpact de lintelligence artificielle dans les soins de santé 2021

L'IA dans le domaine de la santé a fait de grands progrès au cours des dernières décennies. Ainsi, l'avenir de l'IA dans les soins de santé continue de croître de jour en jour.