Ricerca nel sito web

Come installare MEAN Stack su Ubuntu 22.04


Su questa pagina

  1. Prerequisiti
  2. Per iniziare
  3. Installa MongoDB
  4. Installa Node.js
  5. Scarica e installa lo stack MEAN
  6. Crea applicazione MEAN
  7. Installa e configura Nginx per l'applicazione MEAN
  8. Accedi all'applicazione MEAN
  9. Conclusione

Lo stack MEAN è un framework basato su JavaScript gratuito e open source utilizzato per lo sviluppo di applicazioni web. Il MEAN è composto da quattro tecnologie chiave MongoDB, Express, Angular e Node. Lo stack è progettato per rendere incredibilmente facile la creazione di applicazioni Web in JavaScript e la gestione di JSON. Puoi utilizzare le applicazioni MEAN in molti modi. Tuttavia, è particolarmente adatto alle applicazioni in tempo reale, in particolare quelle eseguite in modo nativo nel cloud e alle applicazioni Web (dinamiche) a pagina singola create in Angular.js.

In questo post, ti mostreremo come installare lo stack MEAN sul server Ubuntu 22.04.

Prerequisiti

  • Un server che esegue Ubuntu 22.04.
  • Nome di dominio valido indicato con l'IP del tuo server.
  • Sul server è configurata una password di root.

Iniziare

Prima di iniziare, si consiglia di aggiornare tutti i pacchetti di sistema all'ultima versione. Puoi aggiornarli tutti con il seguente comando:

apt update -y
apt upgrade -y

Una volta aggiornati tutti i pacchetti, installa le dipendenze richieste utilizzando il seguente comando:

apt install python3 dirmngr gnupg apt-transport-https ca-certificates software-properties-common -y

Una volta installate tutte le dipendenze, puoi procedere al passaggio successivo.

Installa MongoDB

Per impostazione predefinita, il pacchetto MongoDB non è incluso nel repository predefinito di Ubuntu. Quindi dovrai aggiungere il repository MongoDB al tuo server.

Innanzitutto, scarica e aggiungi la chiave MongoDB con il seguente comando:

wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | apt-key add -

Successivamente, aggiungi il repository MongoDB ad APT con il seguente comando:

echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse" | tee /etc/apt/sources.list.d/mongodb-org-4.4.list

Successivamente, scarica e installa la dipendenza libssl con il seguente comando:

wget http://archive.ubuntu.com/ubuntu/pool/main/o/openssl/libssl1.1_1.1.1f-1ubuntu2_amd64.deb
dpkg -i libssl1.1_1.1.1f-1ubuntu2_amd64.deb

Successivamente, aggiorna il repository e installa il pacchetto MongoDB con il seguente comando:

apt-get update -y
apt-get install mongodb-org -y

Al termine dell'installazione, avviare e abilitare il servizio MongoDB utilizzando il seguente comando:

systemctl start mongod
systemctl enable mongod

Successivamente, controlla lo stato del servizio MongoDB utilizzando il seguente comando:

systemctl status mongod

Otterrai il seguente output:

? mongod.service - MongoDB Database Server
     Loaded: loaded (/lib/systemd/system/mongod.service; disabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-10-30 07:30:10 UTC; 5s ago
       Docs: https://docs.mongodb.org/manual
   Main PID: 2995 (mongod)
     Memory: 60.5M
        CPU: 1.050s
     CGroup: /system.slice/mongod.service
             ??2995 /usr/bin/mongod --config /etc/mongod.conf

Oct 30 07:30:10 ubuntu2204 systemd[1]: Started MongoDB Database Server.

Al termine, puoi procedere con l'installazione di Node.js.

Installa Node.js

Per impostazione predefinita, il pacchetto Node.js non è incluso nel repository predefinito di Ubuntu. Quindi dovrai installarlo dal repository di origine del nodo.

Innanzitutto, aggiungi il repository di origine del nodo utilizzando il seguente comando:

curl -sL https://deb.nodesource.com/setup_18.x | bash -

Successivamente, installa il pacchetto Node.js utilizzando il seguente comando:

apt-get install nodejs -y

Una volta installato il pacchetto Node.js, puoi verificare la versione di Node.js utilizzando il seguente comando:

node -v

Otterrai il seguente output:

v18.12.0

Successivamente, installa il pacchetto Yarn, Gulp e PM2 utilizzando NPM:

npm install -g yarn
npm install -g gulp
npm install pm2 -g

Una volta terminato, puoi procedere al passaggio successivo.

Scarica e installa MEAN Stack

Innanzitutto, dovrai scaricare l'ultima versione dello stack MEAN dal repository Git. Puoi scaricarlo usando il seguente comando:

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

Una volta completato il download, vai alla directory scaricata e installa tutte le dipendenze richieste utilizzando il seguente comando:

cd mean
yarn install

Una volta installate tutte le dipendenze, puoi procedere al passaggio successivo.

Crea un'applicazione MEAN

In questa sezione creeremo una semplice applicazione MEAN.

Per fare ciò, crea un'applicazione MEAN all'interno della directory mean con il seguente comando:

nano server.js

Aggiungi il seguente codice:

const express = require('express');
const MongoClient = require('mongodb').MongoClient;
const app = express();

app.use('/', (req, res) => {
MongoClient.connect("mongodb://localhost:27017/test", function(err, db){
db.collection('Example', function(err, collection){
collection.insert({ pageHits: 'pageHits' });
db.collection('Example').count(function(err, count){
if(err) throw err;
res.status(200).send('Page Hits: ' + Math.floor(count/2));
});
});
});
});

app.listen(3000);
console.log('Server running at http://localhost:3000/');

module.exports = app;

Salvare e chiudere il file quindi avviare l'applicazione utilizzando il PM2:

pm2 start server.js

Otterrai il seguente output:

                          Runtime Edition

        PM2 is a Production Process Manager for Node.js applications
                     with a built-in Load Balancer.

                Start and Daemonize any application:
                $ pm2 start app.js

                Load Balance 4 instances of api.js:
                $ pm2 start api.js -i 4

                Monitor in production:
                $ pm2 monitor

                Make pm2 auto-boot at server restart:
                $ pm2 startup

                To go further checkout:
                http://pm2.io/


                        -------------

[PM2] Spawning PM2 daemon with pm2_home=/root/.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting /root/mean/server.js in fork_mode (1 instance)
[PM2] Done.
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? id  ? name      ? namespace   ? version ? mode    ? pid      ? uptime ? ?    ? status    ? cpu      ? mem      ? user     ? watching ?
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
? 0   ? server    ? default     ? 0.6.0   ? fork    ? 5644     ? 0s     ? 0    ? online    ? 0%       ? 45.2mb   ? root     ? disabled ?
????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????

Quindi, abilita l'applicazione MEAN per avviarla dopo il riavvio del sistema:

pm2 startup

Otterrai il seguente output:

Target path
/etc/systemd/system/pm2-root.service
Command list
[ 'systemctl enable pm2-root' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-root.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-root...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-root.service → /etc/systemd/system/pm2-root.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

Per impostazione predefinita, l'applicazione MEAN è in ascolto sulla porta 3000. Puoi verificarlo con il seguente comando:

ss -antpl | grep 3000

Otterrai il seguente output:

LISTEN 0      511                *:3000             *:*    users:(("node /root/mean",pid=5644,fd=20))

Una volta terminato, puoi procedere al passaggio successivo.

Installa e configura Nginx per l'applicazione MEAN

Innanzitutto, installa il pacchetto del server Web Nginx con il seguente comando:

apt-get install nginx -y

Una volta installato Nginx, crea un file di configurazione dell'host virtuale Nginx utilizzando il seguente comando:

nano /etc/nginx/conf.d/mean.conf

Aggiungi le seguenti configurazioni:

server {
listen 80;

server_name mean.example.com;
access_log /var/log/nginx/mean-access.log;
error_log /var/log/nginx/mean-error.log;

location / {
proxy_set_header X-Forwarded-Host $host;
proxy_set_header X-Forwarded-Server $host;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_pass http://localhost:3000/;
}
}

Salva e chiudi il file, quindi verifica Nginx per errori di sintassi con il seguente comando:

nginx -t

Dovresti ottenere il seguente output:

nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

Successivamente, riavvia il servizio Nginx per applicare le modifiche.

systemctl restart nginx

Puoi anche controllare lo stato di Nginx usando il seguente comando:

systemctl status nginx

Dovresti ottenere il seguente output:

? nginx.service - A high performance web server and a reverse proxy server
     Loaded: loaded (/lib/systemd/system/nginx.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-10-30 07:37:24 UTC; 4s ago
       Docs: man:nginx(8)
    Process: 6416 ExecStartPre=/usr/sbin/nginx -t -q -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
    Process: 6417 ExecStart=/usr/sbin/nginx -g daemon on; master_process on; (code=exited, status=0/SUCCESS)
   Main PID: 6418 (nginx)
      Tasks: 3 (limit: 4579)
     Memory: 3.3M
        CPU: 49ms
     CGroup: /system.slice/nginx.service
             ??6418 "nginx: master process /usr/sbin/nginx -g daemon on; master_process on;"
             ??6419 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""
             ??6420 "nginx: worker process" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" ""

Oct 30 07:37:24 ubuntu2204 systemd[1]: Starting A high performance web server and a reverse proxy server...
Oct 30 07:37:24 ubuntu2204 systemd[1]: Started A high performance web server and a reverse proxy server.

Una volta terminato, puoi procedere al passaggio successivo.

Accedi all'applicazione MEAN

A questo punto, Nginx è installato e configurato come proxy inverso per l'applicazione MEAN. Ora puoi accedere all'applicazione MEAN utilizzando l'URL http://mean.example.com. Dovresti vedere l'interfaccia web MEAN nella seguente schermata:

Conclusione

Congratulazioni! hai installato e configurato correttamente lo stack MEAN su Ubuntu 22.04. Ora puoi iniziare a sviluppare applicazioni utilizzando lo stack MEAN e ospitarlo sul server di produzione. Non esitate a chiedermi se avete domande.