วิธีการติดตั้ง Meteor.js Web Application ด้วย MongoDB และ Apache บน Ubuntu 16.04 LTS

Meteor.js เป็นเฟรมเวิร์กโอเพนซอร์ส JavaScript ที่เขียนด้วย Node.js เป็นที่นิยมเนื่องจากมุมมองของการสร้างโปรแกรมประยุกต์บนเว็บในจาวาสคริปต์บริสุทธิ์ Meteor รวมเอาการสนับสนุน JavaScript front-end ที่ทำงานในเว็บเบราว์เซอร์เช่นเดียวกับ back-end JavaScript ซึ่งจะทำงานบนเซิร์ฟเวอร์โฮสต์ มันทำงานร่วมกันได้เป็นอย่างดีกับเฟรมเวิร์ก JavaScript ส่วนหน้าเช่น React และ Angular.js รวมถึง MongoDB ซึ่งเป็นฐานข้อมูล NoSQL ที่ได้รับความนิยม เหตุผลสำคัญสองสามข้อในการเลือก Meteor.js มีดังนี้:

  • Meteor.js เป็นเฟรมเวิร์กสแต็กเต็มรูปแบบ ดังนั้นด้วยคุณจะได้รับทุกสิ่งที่คุณต้องการ: ฐานข้อมูลส่วนหน้าส่วนหลัง ดาวตกทำหน้าที่ได้อย่างยอดเยี่ยมในการรวมมันเข้าด้วยกัน

  • ความเร็ว. ระบบแพ็คเกจที่ใช้งานง่ายของ Meteor มอบเครื่องมือมากมายที่คุณอาจจำเป็นต้องใช้ในการปรับแต่งแอพ

  • มันได้รับการสนับสนุนที่ดีจากกลุ่มนักพัฒนา Meteor รวมถึงนักพัฒนาเพื่อนที่ใช้มัน คุณจะสามารถเข้าใจถึงปัญหาใด ๆ ที่คุณมีและแก้ไขได้อย่างรวดเร็ว

ในบทช่วยสอนนี้เราจะบรรลุเป้าหมายต่อไปนี้บน Ubuntu 16.04:

  • ติดตั้งNode.jsรันไทม์ Javascript ของเรา

  • Meteor.jsติดตั้ง

  • ติดตั้งMongoDBฐานข้อมูลของ Meteor

  • ติดตั้งApacheพร็อกซีย้อนกลับที่เราเลือกและตั้งค่าโดเมนของเราหากมี

  • ทดสอบเว็บไซต์ของเรา

  • ติดตั้งเว็บไซต์ของเราเพื่อการผลิต

กำลังติดตั้ง Node.js

คุณจะต้องติดตั้ง Node.js ซึ่งเป็นล่าม JavaScript ของเราและแกนหลักของ Meteor มันจะช่วยให้เราสามารถเรียกใช้ Meteor และแอปพลิเคชั่นอื่น ๆ ของ Node.js ที่เราอาจมีในอนาคต ในสถานการณ์เช่นนี้เราจะทำการติดตั้ง Node.js 8. ในการเริ่มต้นการดาวน์โหลด

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

รอให้การดาวน์โหลดและติดตั้งเสร็จสมบูรณ์

การติดตั้ง MongoDB

ต่อไปเราจะทำการติดตั้งฐานข้อมูลของเรา: MongoDB MongoDB เป็นฐานข้อมูลเอกสาร NoSQL โอเพ่นซอร์สฟรีและฐานข้อมูลของ Meteor มันใช้รูปแบบเหมือน JSON สำหรับเอกสารเมื่อเทียบกับตารางที่มีโครงสร้างในฐานข้อมูล SQL แบบดั้งเดิม

นำเข้ากุญแจสาธารณะ MongoDB ที่ใช้โดยAPT(Advanced Packaging Terminal) สิ่งนี้ทำให้ APT สามารถตรวจสอบแพ็คเกจได้ ในกรณีนี้ MongoDB

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

สร้างไฟล์รายการที่จำเป็นสำหรับ 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

เริ่มการติดตั้ง MongoDB และรอให้การติดตั้งเสร็จสิ้น

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

เปิดบริการ systemd เพื่อแก้ไข

sudo nano /etc/systemd/system/mongodb.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

ใช้ " Control-O" เพื่อบันทึกและ " Control-X" เพื่อออก

เรียกใช้บริการ MongoDB systemd โดยพิมพ์sudo systemctl start mongodbเทอร์มินัลของคุณ

เมื่อต้องการตรวจสอบว่ามันเริ่มต้นได้สำเร็จพิมพ์ต่อไปนี้

sudo systemctl status mongodb

คุณจะเห็นว่าบริการนั้นเปิดใช้งานอยู่

การติดตั้งและตั้งค่า Apache2

ต่อไปเราจะติดตั้ง Apache Apache เป็นซอฟต์แวร์เว็บเซิร์ฟเวอร์ฟรีและโอเพนซอร์ซซึ่งทำหน้าที่เป็นพร็อกซีย้อนกลับซึ่งเป็นสิ่งที่เราจะใช้ในบทช่วยสอนนี้ port 80พร็อกซีกลับเป็นสิ่งจำเป็นที่จะผูกแอพลิเคชันของเราที่จะ Meteor.js Node.js บล็อกแอปพลิเคชันไม่ให้ทำงานบนพอร์ตนั้นโดยไม่ต้องเข้าถึงรูท Apache ทำงานrootโดยอัตโนมัติและเชื่อมโยงกับport 80ดังนั้นเราจะไม่ต้องกังวลเกี่ยวกับมันเมื่อถึงเวลาต้องเปิดเว็บไซต์ของเรา

ติดตั้ง Apache

sudo apt update && sudo apt install apache2

เพื่อให้สามารถเข้าถึงเว็บพอร์ตภายนอกเช่นport 80เราจำเป็นต้องกำหนดค่าไฟร์วอลล์ของเราสำหรับ Apache เราทำสิ่งนี้ผ่านUFW(ไฟร์วอลล์ที่ไม่ซับซ้อน)

sudo ufw allow 'Apache Full'

นี่จะอนุญาตให้เข้าถึงApache Fullโปรไฟล์ "" สิ่งนี้ทำให้เราได้รับปริมาณข้อมูลเข้ามาport 80ซึ่งเป็นสิ่งที่แอปพลิเคชันของเราจะทำงาน

การติดตั้ง Meteor.js และสร้างแอปพลิเคชันพื้นฐานของเรา

ตอนนี้เราจะติดตั้งเว็บเฟรมเวิร์กของเรา: Meteor.js เราจะใช้สคริปต์ทุบตีง่าย ๆ ที่ทีม Meteor ติดตั้งไว้

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

รอให้การติดตั้งเสร็จสิ้น สิ่งที่สคริปต์ทำคือดาวน์โหลด Meteor จากเว็บไซต์ทางการและติดตั้งทั่วโลกดังนั้นเราจึงสามารถใช้งานได้จากทุกที่ เมื่อเสร็จแล้วเราสามารถสร้างไดเรกทอรีแอปพลิเคชันของเรา meteor createดาวตกมีเครื่องมือที่มีประโยชน์น้อยสำหรับเราที่จะใช้ในการทำเช่นนั้นเรียกว่า ในการสร้างไดเรกทอรีแอปพลิเคชันของคุณให้พิมพ์ดังต่อไปนี้

meteor create <projectname>

โฟลเดอร์จะถูกสร้างด้วยชื่อที่ระบุ ( <projectname>)

การตั้งค่าพร็อกซีย้อนกลับ Apache ของเรา

ตอนนี้เราได้ตั้งค่าไดเรกทอรีแอปพลิเคชันของเราแล้วเราสามารถดำเนินการตั้งค่า reverse proxy ของเราได้ Apache ใช้โมดูลที่เรียกว่าmod_proxyซึ่งใช้พร็อกซีสำหรับ Apache

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

สิ่งนี้จะติดตั้งโมดูลและทำให้ Apache พร้อมใช้งาน

ต่อไปเราจะต้องเปิดใช้งานโมดูลที่จำเป็นทั้งหมดของ Apache ที่จำเป็นในการทำงาน เราจะทำเช่นนี้กับa2enmodเครื่องมือที่เปิดใช้งานโมดูลสำหรับ Apache โมดูลเหล่านี้จะช่วยให้เราสามารถใช้ประโยชน์จาก reverse proxy เพียงพิมพ์คำสั่งเหล่านี้ลงในเทอร์มินัลของคุณ

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

หลังจากนั้นเราจะต้องปิดการใช้งานเว็บไซต์ Apache เริ่มต้นจากการเริ่มต้นขึ้นเพื่อให้เราสามารถเริ่มต้นขึ้นเอง มิฉะนั้นแอปพลิเคชัน Apache เริ่มต้นจะแทนที่ของเรา หากต้องการปิดการใช้งานเว็บไซต์เริ่มต้นเพียงเรียกใช้สิ่งต่อไปนี้

sudo a2dissite 000-default

ตอนนี้เราจะสร้างไฟล์โฮสต์เสมือนของเรา ในการทำเช่นนั้นเพียงแค่เปิดโปรแกรมแก้ไขข้อความ

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

คัดลอกและวางต่อไปนี้

<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: บอกให้ Apache เชื่อมต่อกับพอร์ต 80 ซึ่งเป็นสิ่งที่เราต้องการสำหรับเว็บแอปพลิเคชันของเรา

  • ProxyPass: ที่อยู่ IP ของเว็บไซต์ที่คุณต้องการส่งต่อไปยังพร็อกซีย้อนกลับ นี่น่าจะเป็น IP ของ VPS ของคุณ

  • ServerName: ชื่อเซิร์ฟเวอร์ของคุณ (โดยปกติชื่อเริ่มต้นlocalhost)

เมื่อคุณกำหนดการตั้งค่าที่จำเป็นเสร็จแล้วให้ใช้ " Control-O" เพื่อบันทึกและ " Control-X" เพื่อออก

ใช้งานเว็บไซต์เป็นครั้งแรก

เมื่อต้องการทดสอบและตรวจสอบให้แน่ใจว่าเว็บไซต์กำลังทำงานอยู่ให้พิมพ์ดังต่อไปนี้ในไดเรกทอรีโครงการ

meteor

คุณจะเห็นผลลัพธ์ต่อไปนี้แสดงว่าไซต์ของคุณเริ่มต้นได้สำเร็จ

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

port 3000จะทราบว่าดาวตกโดยเริ่มต้นในการฟัง

การตั้งค่าเว็บไซต์ของเราเพื่อการผลิต

เพื่อให้แน่ใจว่าแอปของเราสามารถทำงานต่อไปได้เราจะใช้บริการ systemd เช่นเดียวกับที่เราทำกับ MongoDB บริการของระบบนี้จะทำให้แน่ใจได้ว่าเว็บไซต์ของเราจะเริ่มทำงานเมื่อใดก็ตามที่ระบบของเราเริ่มต้นและยังคงทำงานต่อไป มันจะรีสตาร์ทแอปพลิเคชันของเราในกรณีที่เกิดปัญหาด้วยเหตุผลใดก็ตาม ในการตั้งค่าบริการ systemd ของเราให้พิมพ์ดังต่อไปนี้ในเครื่องเทอร์มินัลของคุณ

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

นี่คือสิ่งที่คุณต้องการให้ไฟล์ของคุณมีลักษณะ

[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

หมายเหตุ : อย่าลืมแทนที่projectnameด้วยชื่อโครงการและyourusernameด้วยชื่อผู้ใช้ของ VPS

ต่อไปนี้เป็นบรรทัดสำคัญสำหรับคุณที่ต้องคำนึงถึง

  • WorkingDirectory: ไดเรกทอรีของแอปพลิเคชันของคุณ

  • Restart: ไม่ว่าจะรีสตาร์ทแอปพลิเคชันหรือไม่ก็ตามไม่ว่าจะด้วยเหตุผลใดก็ตาม

  • User: ชื่อผู้ใช้ของคุณ

  • Environment=PWDWorkingDirectoryที่จะเหมือนกัน

  • Environment=PORT: พอร์ตที่แอปพลิเคชันของคุณกำลังทำงานอยู่ 3000เริ่มต้นคือ

บันทึกและปิดไฟล์

ตอนนี้เราจะเปิดใช้งานและเริ่มบริการ

sudo systemctl enable <projectname>.service

ในกรณีที่<projectname>เป็นชื่อของไฟล์บริการที่เราสร้าง

จากนั้นเราจะเริ่มให้บริการ

sudo systemctl start <projectname>.service

ใบสมัครของคุณจะเริ่มขึ้น หากต้องการตรวจสอบว่าเปิดตัวแล้วให้เรียกใช้สิ่งต่อไปนี้

sudo systemctl status <projectname>

คุณจะเห็นว่ามันใช้งานได้ตรวจสอบว่าบริการได้เริ่มต้นได้สำเร็จ

ต่อไปเราจะตรวจสอบเว็บไซต์ของเรา ในเว็บเบราว์เซอร์ที่คุณเลือกนำทางไปยังที่อยู่ IP ของคุณ

http://your-server-ip/

คุณจะเห็นหน้าจอตัวอย่างของ Meteor ยืนยันว่าคุณทำทุกอย่างถูกต้อง

การจัดการใบสมัครของเรา

ตอนนี้เราได้เริ่มต้นแอปพลิเคชันของเราแล้วเราจะต้องจัดการมัน

รีสตาร์ทแอปพลิเคชันของคุณ

sudo systemctl restart <projectname>

การหยุดแอปพลิเคชัน

sudo systemctl stop <projectname>

การดูสถานะของแอปพลิเคชัน

sudo systemctl status <projectname>

ดูบันทึก

journalctl -u <projectname>

ตอนนี้คุณได้กำหนดค่า MongoDB, Apache และ Meteor เรียบร้อยแล้วและสร้างเว็บเซิร์ฟเวอร์ Meteor.js เพื่อการผลิต ตอนนี้ส่วนที่เหลือขึ้นอยู่กับคุณในการออกแบบเว็บไซต์ของคุณที่ส่วนหน้าและส่วนหลัง คุณสามารถเข้าถึง MongoDB เพื่อจัดเก็บข้อมูลใด ๆ ที่คุณอาจต้องการและ Node.js ซึ่งนำเสนอโมดูลที่หลากหลายผ่าน Node Package Manager ( NPM) เพื่อเสริมความแข็งแกร่งให้กับแบ็กเอนด์ของคุณ สำหรับเอกสารเพิ่มเติมโปรดเยี่ยมชมเว็บไซต์ Meteorซึ่งคุณสามารถเรียนรู้เพิ่มเติมเกี่ยวกับวิธีกำหนดเว็บไซต์ของคุณเองตามที่คุณต้องการ นอกจากนี้คุณอาจอ้างถึงเอกสารประกอบ MongoDBเมื่อคุณจัดการกับฐานข้อมูล



Leave a Comment

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS: นี่คืออนาคตของ Windows หรือไม่?

ReactOS ซึ่งเป็นโอเพ่นซอร์สและระบบปฏิบัติการฟรีพร้อมเวอร์ชันล่าสุดแล้ว สามารถตอบสนองความต้องการของผู้ใช้ Windows ยุคใหม่และล้ม Microsoft ได้หรือไม่? มาหาข้อมูลเพิ่มเติมเกี่ยวกับรูปแบบเก่านี้ แต่เป็นประสบการณ์ OS ที่ใหม่กว่ากัน

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

AI สามารถต่อสู้กับการโจมตีของแรนซัมแวร์ที่เพิ่มขึ้นได้หรือไม่

การโจมตีของ Ransomware กำลังเพิ่มขึ้น แต่ AI สามารถช่วยจัดการกับไวรัสคอมพิวเตอร์ตัวล่าสุดได้หรือไม่? AI คือคำตอบ? อ่านที่นี่รู้ว่า AI boone หรือ bane

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

เชื่อมต่อผ่าน WhatsApp Desktop App 24*7

ในที่สุด Whatsapp ก็เปิดตัวแอพเดสก์ท็อปสำหรับผู้ใช้ Mac และ Windows ตอนนี้คุณสามารถเข้าถึง Whatsapp จาก Windows หรือ Mac ได้อย่างง่ายดาย ใช้ได้กับ Windows 8+ และ Mac OS 10.9+

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

AI จะนำกระบวนการอัตโนมัติไปสู่อีกระดับได้อย่างไร

อ่านข้อมูลนี้เพื่อทราบว่าปัญญาประดิษฐ์กำลังได้รับความนิยมในหมู่บริษัทขนาดเล็กอย่างไร และเพิ่มโอกาสในการทำให้พวกเขาเติบโตและทำให้คู่แข่งได้เปรียบ

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

การอัปเดตเสริม macOS Catalina 10.15.4 ทำให้เกิดปัญหามากกว่าการแก้ปัญหา

เมื่อเร็ว ๆ นี้ Apple เปิดตัว macOS Catalina 10.15.4 การอัปเดตเสริมเพื่อแก้ไขปัญหา แต่ดูเหมือนว่าการอัปเดตทำให้เกิดปัญหามากขึ้นที่นำไปสู่การสร้างเครื่อง Mac อ่านบทความนี้เพื่อเรียนรู้เพิ่มเติม

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

13 เครื่องมือดึงข้อมูลเชิงพาณิชย์ของ Big Data

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

ระบบไฟล์บันทึกคืออะไรและทำงานอย่างไร

คอมพิวเตอร์ของเราจัดเก็บข้อมูลทั้งหมดในลักษณะที่เรียกว่าระบบไฟล์บันทึก เป็นวิธีการที่มีประสิทธิภาพที่ช่วยให้คอมพิวเตอร์สามารถค้นหาและแสดงไฟล์ได้ทันทีที่คุณกดค้นหาhttps://wethegeek.com/?p=94116&preview=true

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ภาวะเอกฐานทางเทคโนโลยี: อนาคตอันห่างไกลของอารยธรรมมนุษย์?

ในขณะที่วิทยาศาสตร์มีวิวัฒนาการไปอย่างรวดเร็ว โดยรับช่วงต่อความพยายามของเราอย่างมาก ความเสี่ยงในการทำให้ตัวเองตกอยู่ในภาวะภาวะเอกฐานที่อธิบายไม่ได้ก็เพิ่มขึ้นเช่นกัน อ่านว่าภาวะเอกฐานอาจมีความหมายสำหรับเราอย่างไร

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ข้อมูลเชิงลึกเกี่ยวกับ 26 เทคนิคการวิเคราะห์ข้อมูลขนาดใหญ่: ตอนที่ 1

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

ผลกระทบของปัญญาประดิษฐ์ในการดูแลสุขภาพ 2021

AI ในการดูแลสุขภาพได้ก้าวกระโดดอย่างมากจากทศวรรษที่ผ่านมา ดังนั้นอนาคตของ AI ในการดูแลสุขภาพจึงยังคงเติบโตทุกวัน