Cara Menyiapkan Aplikasi Web Meteor.js Dengan MongoDB dan Apache di Ubuntu 16.04 LTS

Meteor.js adalah kerangka JavaScript sumber terbuka yang ditulis dengan mempertimbangkan Node.js. Ini popular kerana pandangannya membina aplikasi web dalam JavaScript tulen. Meteor menggabungkan sokongan JavaScript front-end yang berjalan di penyemak imbas web, dan juga JavaScript back-end, yang akan berjalan di pelayan host. Ini berintegrasi dengan baik dengan kerangka kerja JavaScript front-end, seperti React dan Angular.js, serta MongoDB, pangkalan data NoSQL yang popular. Beberapa sebab besar untuk memilih Meteor.js adalah seperti berikut:

  • Meteor.js adalah rangka kerja penuh. Oleh itu, anda mendapat semua yang anda perlukan: Pangkalan data, bahagian depan, backend. Meteor melakukan pekerjaan yang luar biasa untuk mengikat semuanya.

  • Kepantasan. Sistem pakej intuitif Meteor memberi anda banyak alat yang mungkin anda perlukan untuk menyempurnakan aplikasi anda.

  • Ia mendapat sokongan baik dari Meteor Developer Group, serta rakan-rakan pemaju yang menggunakannya. Anda akan dapat mengetahui masalah anda dengan mudah dan menyelesaikannya dengan cepat.

Dalam tutorial ini, kami akan mencapai matlamat berikut di Ubuntu 16.04:

  • Pasang Node.js, masa operasi Javascript kami.

  • Pasang Meteor.js.

  • Pasang MongoDB, pangkalan data pilihan Meteor.

  • Pasang Apache, proksi pilihan terbalik kami, dan sediakan domain kami jika berkenaan.

  • Uji laman web kami.

  • Sediakan laman web kami untuk pengeluaran.

Memasang Node.js

Anda perlu terlebih dahulu memasang Node.js, yang merupakan jurubahasa JavaScript kami, dan inti Meteor. Ini akan membolehkan kita menjalankan aplikasi Meteor, dan Node.js lain yang mungkin kita miliki pada masa akan datang. Dalam keadaan ini, kami akan memasang Node.js 8. Untuk memulakan muat turun, jalankan yang berikut di terminal anda.

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

Tunggu muat turun dan pemasangan selesai.

Memasang MongoDB

Seterusnya, kami akan memasang pangkalan data kami: MongoDB. MongoDB adalah pangkalan data dokumen sumber terbuka percuma, dan pangkalan data pilihan Meteor. Ia menggunakan format seperti JSON untuk dokumennya, berbanding dengan jadual berstruktur dalam pangkalan data SQL tradisional.

Import kunci awam MongoDB yang digunakan oleh APT(Terminal Pembungkusan Lanjutan). Ini membolehkan APT mengesahkan pakej; dalam kes ini, MongoDB.

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

Buat fail senarai yang diperlukan untuk 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

Mulakan pemasangan MongoDB, dan tunggu sehingga pemasangan selesai.

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

Buka perkhidmatan systemd untuk penyuntingan.

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

Salin dan tampal yang berikut untuk menyelesaikan perkhidmatan 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

Gunakan " Control-O" untuk menyimpan, dan " Control-X" untuk keluar.

Jalankan perkhidmatan MongdDB systemd dengan menaip sudo systemctl start mongodbterminal anda.

Untuk mengesahkan bahawa ia berjaya dimulakan, ketik berikut.

sudo systemctl status mongodb

Anda akan melihat bahawa perkhidmatan ini aktif.

Memasang dan menyiapkan Apache2

Seterusnya, kami akan memasang Apache. Apache adalah perisian pelayan web sumber terbuka dan bebas, yang juga berfungsi sebagai proksi terbalik, yang akan kami gunakan dalam tutorial ini. Proksi terbalik diperlukan untuk mengikat Aplikasi Meteor.js kami port 80. Node.js menyekat aplikasi agar tidak berjalan di port tersebut tanpa akses root. Apache berjalan rootsecara automatik dan mengikatnya port 80, jadi kami tidak perlu risau lagi apabila tiba masanya untuk menjalankan laman web kami.

Pasang Apache.

sudo apt update && sudo apt install apache2

Untuk membolehkan akses ke port web luar seperti port 80, kita perlu mengkonfigurasi firewall kita untuk Apache. Kami melakukannya melalui UFW(Firewall Tidak Komplikasi).

sudo ufw allow 'Apache Full'

Ini akan membenarkan akses ke Apache Fullprofil "". Ini memberi kita lalu lintas yang masuk port 80, seperti itulah aplikasi kita akan berjalan.

Memasang Meteor.js & membuat aplikasi asas kami

Sekarang, kami akan memasang kerangka web kami: Meteor.js. Kami akan menggunakan skrip bash sederhana yang disediakan oleh pasukan Meteor untuk memasangnya.

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

Tunggu pemasangan selesai. Pada dasarnya apa yang dilakukan skrip adalah memuat turun Meteor dari laman web rasmi, dan memasangnya secara global, sehingga kita dapat menggunakannya dari mana saja. Setelah selesai, kita dapat membuat direktori aplikasi kita. Meteor mempunyai alat kecil yang berguna untuk kita gunakan untuk melakukannya, dipanggil meteor create. Untuk membuat direktori aplikasi anda, ketik berikut.

meteor create <projectname>

Folder akan dibuat dengan nama yang ditentukan ( <projectname>).

Menyiapkan proksi terbalik Apache kami

Sekarang setelah kami menyediakan direktori aplikasi kami, kami dapat meneruskan penyediaan proksi terbalik kami. Apache menggunakan modul yang dipanggil mod_proxy, yang menerapkan proksi untuk Apache.

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

Ini akan memasang modul dan menyediakannya untuk digunakan oleh Apache.

Seterusnya, kita perlu mengaktifkan semua modul yang diperlukan Apache untuk dijalankan. Kami akan melakukan ini dengan a2enmod, alat yang membolehkan modul untuk Apache. Modul ini akan membolehkan kita memanfaatkan proksi terbalik. Cukup ketik perintah ini ke terminal anda.

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

Selepas itu, kita perlu mematikan laman web Apache lalai dari mula, jadi kita boleh memulakan sendiri. Jika tidak, aplikasi Apache lalai akan mengatasi aplikasi kita. Untuk melumpuhkan laman web lalai, jalankan yang berikut.

sudo a2dissite 000-default

Sekarang kita akan membuat fail hos maya kita. Untuk melakukannya, buka penyunting teks sahaja.

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

Salin dan tampal yang berikut.

<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: Menyuruh Apache melampirkan ke port 80, yang kami mahukan untuk aplikasi web kami.

  • ProxyPass: Alamat IP laman web yang ingin anda kirimkan ke proksi terbalik. Ini kemungkinan besar adalah IP VPS anda

  • ServerName: Nama pelayan anda (nama lalai biasanya localhost).

Setelah anda selesai mengkonfigurasi tetapan yang diperlukan, gunakan " Control-O" untuk menyimpan dan " Control-X" untuk keluar.

Menjalankan laman web untuk pertama kalinya

Untuk menguji dan memastikan laman web berjalan, ketik berikut di direktori projek.

meteor

Anda akan melihat output berikut menunjukkan bahawa laman web anda telah berjaya dimulakan.

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

Perhatikan bahawa Meteor, secara lalai mendengar port 3000.

Menyiapkan laman web kami untuk pengeluaran

Untuk memastikan aplikasi kami dapat terus berjalan, kami akan menggunakan perkhidmatan systemd. Sama seperti yang kami lakukan di atas dengan MongoDB, perkhidmatan sistem ini akan memastikan bahawa laman web kami akan dimulakan setiap kali sistem kami bermula, dan terus berjalan. Ia juga akan memulakan semula aplikasi kami, sekiranya ia rosak kerana alasan apa pun. Untuk menyediakan perkhidmatan systemd kami, ketik yang berikut di terminal anda.

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

Inilah yang anda mahukan seperti fail anda.

[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

Catatan : Jangan lupa ganti projectnamedengan nama projek, dan yourusernamedengan nama pengguna VPS.

Berikut adalah beberapa garis kunci yang perlu anda ingat.

  • WorkingDirectory: Direktori aplikasi anda.

  • Restart: Sama ada untuk memulakan semula aplikasi berhenti atau tidak atas alasan apa pun.

  • User: Nama pengguna anda.

  • Environment=PWD: Sama dengan WorkingDirectory.

  • Environment=PORT: Port yang digunakan oleh aplikasi anda. Lalai adalah 3000.

Simpan dan tutup fail.

Sekarang, kami akan mengaktifkan dan memulakan perkhidmatan.

sudo systemctl enable <projectname>.service

Di manakah <projectname>nama fail perkhidmatan yang kami buat.

Kemudian, kami akan memulakan perkhidmatan.

sudo systemctl start <projectname>.service

Permohonan anda akan dimulakan. Untuk mengesahkan bahawa ia telah dilancarkan, jalankan yang berikut.

sudo systemctl status <projectname>

Anda akan melihat bahawa ia aktif, mengesahkan bahawa perkhidmatan telah berjaya dimulakan.

Seterusnya, kami akan memeriksa laman web kami. Dalam penyemak imbas web pilihan anda, arahkan ke alamat IP anda.

http://your-server-ip/

Anda akan melihat skrin sampel Meteor, mengesahkan bahawa anda telah melakukan semuanya dengan betul.

Menguruskan aplikasi kami

Sekarang kita sudah memulakan aplikasi kita, kita perlu menguruskannya.

Memulakan semula aplikasi anda

sudo systemctl restart <projectname>

Menghentikan permohonan

sudo systemctl stop <projectname>

Melihat status aplikasi

sudo systemctl status <projectname>

Melihat log

journalctl -u <projectname>

Anda kini berjaya mengkonfigurasi MongoDB, Apache, dan Meteor, dan membuat pelayan web Meteor.js untuk pengeluaran. Kini selebihnya terpulang kepada anda, untuk merancang laman web anda di hujung depan dan bahagian belakang. Anda mempunyai akses ke MongoDB untuk menyimpan data yang mungkin anda perlukan, dan Node.js, yang menawarkan pelbagai modul yang tersedia melalui Node Package Manager ( NPM) untuk mengukuhkan lagi sokongan anda. Untuk lebih banyak dokumentasi, sila lawati laman Meteor , di mana anda boleh mengetahui lebih lanjut cara menyesuaikan laman web anda mengikut keinginan anda. Anda juga boleh merujuk kepada dokumentasi MongoDB , ketika anda berurusan dengan operasi pangkalan data.



Leave a Comment

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

Pandangan tentang 26 Teknik Analisis Data Besar: Bahagian 1

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

6 Perkara Yang Sangat Menggila Tentang Nintendo Switch

Ramai daripada anda tahu Switch akan keluar pada Mac 2017 dan ciri baharunya. Bagi yang tidak tahu, kami telah menyediakan senarai ciri yang menjadikan 'Tukar' sebagai 'gajet yang mesti ada'.

Janji Teknologi Yang Masih Tidak Ditepati

Janji Teknologi Yang Masih Tidak Ditepati

Adakah anda menunggu gergasi teknologi memenuhi janji mereka? semak apa yang masih belum dihantar.

Fungsi Lapisan Seni Bina Rujukan Data Besar

Fungsi Lapisan Seni Bina Rujukan Data Besar

Baca blog untuk mengetahui lapisan berbeza dalam Seni Bina Data Besar dan fungsinya dengan cara yang paling mudah.

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Bagaimana AI Boleh Mengambil Automasi Proses ke Tahap Seterusnya?

Baca ini untuk mengetahui cara Kecerdasan Buatan semakin popular di kalangan syarikat berskala kecil dan cara ia meningkatkan kebarangkalian untuk menjadikan mereka berkembang dan memberikan pesaing mereka kelebihan.

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA: Berapa Lama Ia Boleh Kekal Sebagai Teknik Berdaya maju Untuk Perbezaan Manusia-AI?

CAPTCHA telah menjadi agak sukar untuk diselesaikan oleh pengguna dalam beberapa tahun kebelakangan ini. Adakah ia dapat kekal berkesan dalam pengesanan spam dan bot pada masa hadapan?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Keunikan Teknologi: Masa Depan Tamadun Manusia yang Jauh?

Apabila Sains Berkembang pada kadar yang pantas, mengambil alih banyak usaha kita, risiko untuk menundukkan diri kita kepada Ketunggalan yang tidak dapat dijelaskan juga meningkat. Baca, apakah makna ketunggalan bagi kita.

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Teleperubatan Dan Penjagaan Kesihatan Jauh: Masa Depan Ada Di Sini

Apakah teleperubatan, penjagaan kesihatan jauh dan impaknya kepada generasi akan datang? Adakah ia tempat yang baik atau tidak dalam situasi pandemik? Baca blog untuk mencari paparan!

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Pernahkah Anda Terfikir Bagaimana Penggodam Mendapatkan Wang?

Anda mungkin pernah mendengar bahawa penggodam memperoleh banyak wang, tetapi pernahkah anda terfikir bagaimana mereka memperoleh wang seperti itu? Mari berbincang.

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Kemas Kini Tambahan macOS Catalina 10.15.4 Menyebabkan Lebih Banyak Isu Daripada Penyelesaian

Baru-baru ini Apple mengeluarkan macOS Catalina 10.15.4 kemas kini tambahan untuk menyelesaikan masalah tetapi nampaknya kemas kini itu menyebabkan lebih banyak masalah yang membawa kepada pemusnahan mesin mac. Baca artikel ini untuk mengetahui lebih lanjut