Slik konfigurerer du en Meteor.js-nettapplikasjon med MongoDB og Apache på Ubuntu 16.04 LTS

Meteor.js er et åpen kildekode, JavaScript-rammeverk skrevet med Node.js i tankene. Det er populært på grunn av synet på å bygge nettapplikasjoner i ren JavaScript. Meteor inkluderer front-end JavaScript-støtte som kjører i nettleseren, samt back-end JavaScript, som vil kjøre på vertsserveren. Den integreres veldig godt med front-end JavaScript-rammeverk, som React og Angular.js, samt MongoDB, en populær NoSQL-database. Noen få store grunner til å velge Meteor.js er som følger:

  • Meteor.js er et fullstack-rammeverk. Så med den får du alt du trenger: Database, frontend, backend. Meteor gjør en fantastisk jobb med å binde det hele sammen.

  • Hastighet. Meteors intuitive pakkesystem gir deg mange verktøy du kanskje trenger for å perfeksjonere applikasjonen din.

  • Den har god støtte fra Meteor Developer Group, samt andre utviklere som bruker den. Du vil lett kunne finne ut eventuelle problemer du måtte ha og løse dem raskt.

I denne opplæringen vil vi oppnå følgende mål på Ubuntu 16.04:

  • Installer Node.js, vår Javascript-kjøretid.

  • Installer Meteor.js.

  • Installer MongoDB, Meteors foretrukne database.

  • Installer Apache, vår valgte omvendte proxy, og konfigurer domenet vårt hvis det er aktuelt.

  • Test nettsiden vår.

  • Sett opp nettsiden vår for produksjon.

Installerer Node.js

Du må først installere Node.js, som er vår JavaScript-tolk, og Meteors kjerne. Det vil tillate oss å kjøre Meteor og andre Node.js-applikasjoner vi kan ha i fremtiden. I denne situasjonen skal vi installere Node.js 8. For å starte nedlastingen, kjør ganske enkelt følgende i terminalen din.

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

Vent til nedlastingen og installasjonen er fullført.

Installerer MongoDB

Deretter skal vi installere databasen vår: MongoDB. MongoDB er en gratis, åpen kildekode NoSQL-dokumentdatabase, og Meteors foretrukne database. Den bruker et JSON-lignende format for sine dokumenter, i motsetning til strukturerte tabeller i en tradisjonell SQL-database.

Importer den offentlige MongoDB-nøkkelen som brukes av APT(Advanced Packaging Terminal). Dette lar APT verifisere pakken; i dette tilfellet, MongoDB.

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

Opprett den nødvendige listefilen for 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

Start installasjonen av MongoDB, og vent til installasjonen er ferdig.

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

Åpne systemd-tjenesten for redigering.

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

Kopier og lim inn følgende for å fullføre systemd-tjenesten.

[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

Bruk " Control-O" for å lagre, og " Control-X" for å avslutte.

Kjør MongoDB systemd-tjenesten ved å skrive sudo systemctl start mongodbinn terminalen din.

For å bekrefte at den har startet vellykket, skriv inn følgende.

sudo systemctl status mongodb

Du vil se at tjenesten er aktiv.

Installere og sette opp Apache2

Deretter vil vi installere Apache. Apache er en gratis og åpen kildekode-nettserverprogramvare, som også fungerer som en omvendt proxy, som er det vi skal bruke i denne opplæringen. En omvendt proxy er nødvendig for å binde vår Meteor.js-applikasjon til port 80. Node.js blokkerer programmer fra å kjøre på den porten uten root-tilgang. Apache kjører like rootautomatisk og binder til port 80, så vi trenger ikke å bekymre oss for det når det er på tide å kjøre nettstedet vårt.

Installer Apache.

sudo apt update && sudo apt install apache2

For å tillate tilgang til eksterne webporter som port 80, må vi konfigurere brannmuren vår for Apache. Vi gjør dette gjennom UFW(Ukomplisert brannmur).

sudo ufw allow 'Apache Full'

Dette vil gi tilgang til Apache Fullprofilen " ". Dette gir oss innkommende trafikk til port 80, som er det applikasjonen vår skal kjøre på.

Installere Meteor.js og lage vår basisapplikasjon

Nå skal vi installere vårt nettrammeverk: Meteor.js. Vi vil bruke et enkelt bash-skript levert av Meteor-teamet for å installere det.

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

Vent til installasjonen er ferdig. Det skriptet gjør, er at det laster ned Meteor fra det offisielle nettstedet og installerer det globalt, slik at vi kan bruke det fra hvor som helst. Når den er ferdig, kan vi opprette applikasjonskatalogen vår. Meteor har et hendig lite verktøy som vi kan bruke for å gjøre det, kalt meteor create. For å opprette applikasjonskatalogen din, skriv inn følgende.

meteor create <projectname>

Mappen vil bli opprettet med navnet angitt ( <projectname>).

Sette opp vår Apache reverse proxy

Nå som vi har konfigurert applikasjonskatalogen vår, kan vi fortsette med å sette opp vår omvendte proxy. Apache bruker en modul kalt mod_proxy, som implementerer en proxy for Apache.

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

Dette vil installere modulen og gjøre den tilgjengelig for Apache å bruke.

Deretter må vi aktivere alle de nødvendige modulene Apache trenger for å kjøre. Vi vil gjøre dette med a2enmod, et verktøy som muliggjør moduler for Apache. Disse modulene vil tillate oss å dra nytte av omvendt proxy. Bare skriv inn disse kommandoene i terminalen.

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

Etter det må vi deaktivere standard Apache-nettstedet fra å starte opp, slik at vi kan starte opp vårt eget. Ellers vil standard Apache-applikasjonen overstyre vår. For å deaktivere standardsiden, kjør ganske enkelt følgende.

sudo a2dissite 000-default

Nå skal vi lage vår virtuelle vertsfil. For å gjøre det, bare åpne et tekstredigeringsprogram.

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

Kopier og lim inn følgende.

<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: Ber Apache koble til port 80, som er det vi ønsker for nettapplikasjonen vår.

  • ProxyPass: IP-adressen til nettstedet du vil videresende til omvendt proxy. Dette vil mest sannsynlig være IP-en til din VPS

  • ServerName: Navnet på serveren din (standardnavnet er vanligvis localhost).

Når du er ferdig med å konfigurere de nødvendige innstillingene, bruk " Control-O" for å lagre og " Control-X" for å avslutte.

Kjører siden for første gang

For å teste og sikre at nettstedet kjører, skriv inn følgende i prosjektkatalogen.

meteor

Du vil se følgende utdata som viser at nettstedet ditt har startet vellykket.

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

Legg merke til at Meteor som standard lytter på port 3000.

Sette opp nettsiden vår for produksjon

For å sikre at appen vår kan fortsette å kjøre, vil vi bruke en systemd tjeneste. I likhet med det vi gjorde ovenfor med MongoDB, vil denne systemtjenesten sørge for at nettsiden vår starter opp hver gang systemet starter, og fortsetter å kjøre. Den vil også starte applikasjonen vår på nytt i tilfelle den krasjer uansett årsak. For å sette opp vår systemd-tjeneste, skriv inn følgende i terminalen din.

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

Her er hvordan du vil at filen skal se ut.

[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

Merk : Ikke glem å erstatte projectnamemed navnet på prosjektet, og yourusernamemed brukernavnet til VPS.

Her er noen nøkkellinjer du bør huske på.

  • WorkingDirectory: Katalogen til applikasjonen din.

  • Restart: Hvorvidt du skal starte applikasjonen på nytt eller ikke, stopper uansett årsak.

  • User: Ditt brukernavn.

  • Environment=PWD: Identisk med WorkingDirectory.

  • Environment=PORT: Porten som programmet kjører på. Standard er 3000.

Lagre og lukk filen.

Nå vil vi aktivere og starte tjenesten.

sudo systemctl enable <projectname>.service

Hvor <projectname>er navnet på tjenestefilen vi opprettet.

Deretter starter vi tjenesten.

sudo systemctl start <projectname>.service

Søknaden din starter. For å bekrefte at den har startet, kjør bare følgende.

sudo systemctl status <projectname>

Du vil se at den er aktiv, og bekrefter at tjenesten har startet.

Deretter vil vi sjekke ut nettsiden vår. Naviger til IP-adressen din i din valgte nettleser.

http://your-server-ip/

Du vil se Meteor-eksempelskjermen, som bekrefter at du har gjort alt riktig.

Administrere applikasjonen vår

Nå som vi har startet søknaden vår, må vi administrere den.

Starter applikasjonen på nytt

sudo systemctl restart <projectname>

Stopper applikasjonen

sudo systemctl stop <projectname>

Viser applikasjonens status

sudo systemctl status <projectname>

Viser loggene

journalctl -u <projectname>

Du har nå konfigurert MongoDB, Apache og Meteor, og opprettet en Meteor.js-webserver for produksjon. Nå er resten opp til deg, for å designe nettstedet ditt på front- og bakenden. Du har tilgang til MongoDB for å lagre alle data du måtte trenge, og Node.js, som tilbyr en rekke moduler tilgjengelig gjennom Node Package Manager ( NPM) for å styrke din backend ytterligere. For mer dokumentasjon, besøk gjerne Meteor-siden , hvor du videre kan lære hvordan du tilpasser nettsiden din til din smak. Du kan også referere til MongoDB-dokumentasjonen når du har å gjøre med databaseoperasjoner.


Hvordan sette opp en Tekkit Classic Server på Ubuntu 16.10

Hvordan sette opp en Tekkit Classic Server på Ubuntu 16.10

Bruker du et annet system? Hva er Tekkit Classic? Tekkit Classic er en modpack for spillet alle kjenner og elsker; Minecraft. Den inneholder noe av ver

Opprette en Jekyll-blogg på Ubuntu 16.04

Opprette en Jekyll-blogg på Ubuntu 16.04

Bruker du et annet system? Jekyll er et flott alternativ til WordPress for blogging eller deling av innhold. Det krever ingen databaser, og det er veldig enkelt, jeg

Hvordan installere og konfigurere PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

Hvordan installere og konfigurere PHP 7.0 eller PHP 7.1 på Ubuntu 16.04

PHP og relaterte pakker er de mest brukte komponentene når du distribuerer en webserver. I denne artikkelen vil vi lære hvordan du setter opp PHP 7.0 eller PHP 7.1 o

Slik installerer du Squid Proxy på CentOS

Slik installerer du Squid Proxy på CentOS

Squid er et populært, gratis Linux-program som lar deg lage en webproxy for videresending. I denne veiledningen vil du se hvordan du installerer Squid på CentOS for å gjøre deg om

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Slik installerer du Lighttpd (LLMP Stack) på CentOS 6

Introduksjon Lighttpd er en apachegaffel som har som mål å være mye mindre ressurskrevende. Den er lett, derav navnet, og er ganske enkel å bruke. Installer

Sette opp en Yii-applikasjon på Ubuntu 14.04

Sette opp en Yii-applikasjon på Ubuntu 14.04

Yii er et PHP-rammeverk som lar deg utvikle applikasjoner raskere og enklere. Det er enkelt å installere Yii på Ubuntu, som du vil lære nøyaktig

Sett opp din egen DNS-server på Debian/Ubuntu

Sett opp din egen DNS-server på Debian/Ubuntu

Denne opplæringen forklarer hvordan du setter opp en DNS-server ved å bruke Bind9 på Debian eller Ubuntu. Bytt ut ditt-domenenavn.com gjennom hele artikkelen. På th

Konfigurering av statisk nettverk og IPv6 på CentOS 7

Konfigurering av statisk nettverk og IPv6 på CentOS 7

VULTR har nylig gjort endringer på sin side, og alt skal nå fungere bra ut av boksen med NetworkManager aktivert. Skulle du ønske å deaktivere

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Endring av Icinga2 for å bruke hoved-/klientmodell på CentOS 6 eller CentOS 7

Icinga2 er et kraftig overvåkingssystem, og når det brukes i en master-klient-modell, kan det erstatte behovet for NRPE-baserte overvåkingskontroller. Mester-klienten

Sett opp Red5 Media Server på Ubuntu 16.04

Sett opp Red5 Media Server på Ubuntu 16.04

Bruker du et annet system? Red5 er en åpen kildekode medieserver implementert i Java som lar deg kjøre Flash flerbrukerapplikasjoner som live streamin

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

Kompiler og installer Nginx med PageSpeed-modulen på Debian 8

I denne artikkelen vil vi se hvordan du kompilerer og installerer Nginx mainline fra de offisielle kildene til Nginx med PageSpeed-modulen, som lar deg t

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Hvordan installere Apache Cassandra 3.11.x på Ubuntu 16.04 LTS

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Slik installerer du Apache Cassandra 3.11.x på CentOS 7

Bruker du et annet system? Apache Cassandra er et gratis og åpen kildekode NoSQL-databasebehandlingssystem som er designet for å gi skalerbarhet, høy

Hvordan installere Vanilla Forum på Ubuntu 16.04

Hvordan installere Vanilla Forum på Ubuntu 16.04

Bruker du et annet system? Vanilla forum er en åpen kildekode-forumapplikasjon skrevet i PHP. Det er en fullt tilpassbar, enkel å bruke og støtter ekstern

Hvordan installere Kanboard på Ubuntu 18.04 LTS

Hvordan installere Kanboard på Ubuntu 18.04 LTS

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Kanboard på Debian 9

Hvordan installere Kanboard på Debian 9

Bruker du et annet system? Introduksjon Kanboard er et gratis og åpen kildekodeprogram for prosjektledelse som er designet for å forenkle og visualisere

Hvordan installere Gitea på Debian 9

Hvordan installere Gitea på Debian 9

Bruker du et annet system? Gitea er et alternativt åpen kildekode, selvdrevet versjonskontrollsystem drevet av Git. Gitea er skrevet på Golang og er

Hvordan installere Gitea på Ubuntu 18.04

Hvordan installere Gitea på Ubuntu 18.04

Bruker du et annet system? Gitea er et alternativt, selvdrevet versjonskontrollsystem med åpen kildekode drevet av git. Gitea er skrevet på Golang og er

Hvordan installere Thelia 2.3 på Debian 9

Hvordan installere Thelia 2.3 på Debian 9

Bruker du et annet system? Thelia er et åpen kildekodeverktøy for å lage e-business-nettsteder og administrere nettinnhold skrevet i PHP. Thelia kildekode i

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Hvordan installere MODX Revolution på en Ubuntu 16.04 LAMP VPS

Bruker du et annet system? MODX Revolution er et raskt, fleksibelt, skalerbart, gratis og åpen kildekode, enterprise-grade Content Management System (CMS) skrevet i

The Rise of Machines: Real World Applications of AI

The Rise of Machines: Real World Applications of AI

Kunstig intelligens er ikke i fremtiden, det er her akkurat i nåtiden I denne bloggen Les hvordan kunstig intelligens-applikasjoner har påvirket ulike sektorer.

DDOS-angrep: en kort oversikt

DDOS-angrep: en kort oversikt

Er du også et offer for DDOS-angrep og forvirret over forebyggingsmetodene? Les denne artikkelen for å løse spørsmålene dine.

Har du noen gang lurt på hvordan hackere tjener penger?

Har du noen gang lurt på hvordan hackere tjener penger?

Du har kanskje hørt at hackere tjener mye penger, men har du noen gang lurt på hvordan tjener de den slags penger? la oss diskutere.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Revolusjonerende oppfinnelser fra Google som vil gjøre livet ditt enkelt.

Vil du se revolusjonerende oppfinnelser fra Google og hvordan disse oppfinnelsene forandret livet til alle mennesker i dag? Les deretter til bloggen for å se oppfinnelser fra Google.

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Fredag ​​Essential: Hva skjedde med AI-drevne biler?

Konseptet med selvkjørende biler som skal ut på veiene ved hjelp av kunstig intelligens er en drøm vi har hatt en stund nå. Men til tross for flere løfter, er de ingen steder å se. Les denne bloggen for å lære mer...

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Teknologisk singularitet: en fjern fremtid for menneskelig sivilisasjon?

Ettersom vitenskapen utvikler seg raskt og tar over mye av innsatsen vår, øker også risikoen for å utsette oss for en uforklarlig singularitet. Les hva singularitet kan bety for oss.

Evolusjon av datalagring – infografikk

Evolusjon av datalagring – infografikk

Lagringsmetodene for dataene har vært i utvikling kan være siden fødselen av dataene. Denne bloggen dekker utviklingen av datalagring på grunnlag av en infografikk.

Funksjonaliteter til Big Data Reference Architecture Layers

Funksjonaliteter til Big Data Reference Architecture Layers

Les bloggen for å kjenne ulike lag i Big Data Architecture og deres funksjoner på den enkleste måten.

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

6 fantastiske fordeler ved å ha smarte hjemmeenheter i livene våre

I denne digitaldrevne verden har smarthusenheter blitt en avgjørende del av livet. Her er noen fantastiske fordeler med smarthusenheter om hvordan de gjør livet vårt verdt å leve og enklere.

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

macOS Catalina 10.15.4 tilleggsoppdatering forårsaker flere problemer enn å løse

Nylig lanserte Apple macOS Catalina 10.15.4 en tilleggsoppdatering for å fikse problemer, men det ser ut til at oppdateringen forårsaker flere problemer som fører til muring av mac-maskiner. Les denne artikkelen for å lære mer