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 mongodb
votre 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 root
automatiquement 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 Full
profil " ". 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 projectname
par le nom du projet et yourusername
par 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
Où <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.