18/09/2018, 16:43

Làm thế nào để cài đặt ngăn xếp MEAN với MEAN.JS trên CentOS 7

Giới thiệu MEAN là một ngăn xếp ứng dụng phần mềm được tạo thành từ các thành phần sau: MongoDB , một cơ sở dữ liệu NoSQL có hỗ trợ thực thi JavaScript phía máy chủ ExpressJS , một khung ứng dụng web Node.js AngularJS , một khung ứng dụng web phù hợp để phát triển các ứng dụng ...

Giới thiệu

MEAN là một ngăn xếp ứng dụng phần mềm được tạo thành từ các thành phần sau:

  • MongoDB, một cơ sở dữ liệu NoSQL có hỗ trợ thực thi JavaScript phía máy chủ

  • ExpressJS, một khung ứng dụng web Node.js

  • AngularJS, một khung ứng dụng web phù hợp để phát triển các ứng dụng động, một trang

  • NodeJS, một khung điều khiển sự kiện không đồng bộ phù hợp để xây dựng các ứng dụng mạng có thể mở rộng

Thuật ngữ MEAN lần đầu tiên được đặt ra bởi Valeri Karpov, và thuật ngữ này bắt nguồn từ chữ cái đầu tiên của mỗi thành phần. Valeri định nghĩa MEAN trong bài đăng trên blog này, trong đó ông đã đưa ra một số động lực để lựa chọn phát triển các ứng dụng JavaScript với sự trợ giúp của ngăn xếp MEAN:

Bằng cách mã hóa với Javascript trong suốt, chúng tôi có thể nhận ra lợi ích hiệu suất trong cả bản thân phần mềm và năng suất của các nhà phát triển của chúng tôi. Với MongoDB, chúng ta có thể lưu trữ các tài liệu của chúng ta theo định dạng JSON-như, viết các truy vấn JSON trên máy chủ dựa trên ExpressJS và NodeJS của chúng ta, và liền mạch chuyển các tài liệu JSON tới lối vào AngularJS của chúng ta. Gỡ lỗi và quản trị cơ sở dữ liệu trở nên dễ dàng hơn rất nhiều khi các đối tượng được lưu trữ trong cơ sở dữ liệu của bạn về cơ bản giống với các đối tượng mà Javascript khách hàng của bạn nhìn thấy. Thậm chí tốt hơn, ai đó làm việc ở phía khách hàng có thể dễ dàng hiểu được mã phía máy chủ và truy vấn cơ sở dữ liệu; sử dụng cùng một cú pháp và các đối tượng theo toàn bộ cách để giải phóng bạn khỏi phải cân nhắc nhiều tập hợp các phương pháp hay nhất về ngôn ngữ và giảm rào cản truy cập để hiểu được codebase của bạn.

Hiện tại có hai triển khai song song của ngăn xếp MEAN: MEAN.ioMEAN.JS. Mỗi phương thức cài đặt hơi khác nhau. MEAN.JS là một hoạt động hoàn toàn do cộng đồng thực hiện, trong khi MEAN.io được tài trợ bởi một công ty có tên là Linnovate. Cả hai đều bao gồm các thành phần giống nhau, nhưng MEAN.io cung cấp một công cụ dòng lệnh bổ sung, mean, cũng như hỗ trợ thương mại.

Trong hướng dẫn này, chúng tôi sẽ cài đặt một ngăn xếp MEAN trên máy chủ CentOS 7 sử dụng MEAN.JS. Sử dụng phương pháp này liên quan đến việc cài đặt MongoDB đầu tiên, sau đó là NodeJS, sau đó nhân bản các tệp MEAN.JS từ GitHub.

Điều kiện tiên quyết

Để bắt đầu, bạn sẽ cần phải có những điều sau đây:

  • Một máy chủ CentOS 7 có ít nhất 4GB RAM. Một số thành phần của ngăn xếp MEAN, như npm, đòi hỏi nhiều bộ nhớ.

  • Người dùng không phải root sudo được định cấu hình bằng Hướng dẫn cài đặt máy chủ ban đầu CentOS 7 này.

Bước 1 - Cài đặt phụ thuộc

Vì chúng ta sẽ biên dịch các ứng dụng từ nguồn, nhân bản một kho lưu trữ Git và cài đặt các gem của Ruby, trước tiên chúng ta sẽ cần phải cài đặt một số phụ thuộc. libpng-devel và fontconfig là cần thiết bởi một trong các mô-đun MEAN.JS (pngquant).

sudo yum install gcc-c++ make git fontconfig bzip2 libpng-devel ruby ruby-devel

Một số mô-đun Node.js mà chúng tôi sẽ cài đặt sẽ yêu cầu Sass, một ngôn ngữ mở rộng CSS. Cài đặt nó bằng cách sử dụng gem, Quản lý gói của Ruby.

sudo gem install sass

Bây giờ các phần phụ thuộc được cài đặt, chúng ta có thể cài đặt thành phần đầu tiên của ngăn xếp: MongoDB.

Bước 2 - Cài đặt MongoDB

MongoDB không nằm trong kho lưu trữ CentOS chính thức, do đó, để cài đặt nó, bạn sẽ phải kích hoạt kho lưu trữ MongoDB chính thức. Điều này sẽ cho phép bạn truy cập vào các gói mới nhất và cho phép bạn cài đặt nó từ đó.

Đối với hướng dẫn này, chúng tôi sẽ cài đặt phiên bản cộng đồng, có sẵn để tải xuống miễn phí. Ngoài ra còn có một phiên bản Enterprise, nhưng nó đòi hỏi một giấy phép, vì vậy chúng tôi sẽ không giải quyết nó ở đây.

Vào thời điểm xuất bản, MongoDB 3.2 là phiên bản ổn định mới nhất có sẵn để tải xuống và cài đặt. Để kích hoạt kho lưu trữ, hãy tạo một tệp cho nó dưới /etc/yum.repos.d, thư mục kho lưu trữ CentOS. Đối với MongoDB 3.2, chúng ta sẽ gọi tệp đó mongodb.org-3.2.repo.

Tạo và mở /etc/yum.repos.d/mongodb.org-3.2.repo sử dụng vi hoặc trình soạn thảo văn bản yêu thích của bạn.

sudo vi /etc/yum.repos.d/mongodb.org-3.2.repo

Để trỏ trình quản lý gói đến kho lưu trữ MongoDB chính thức và kích hoạt nó, hãy sao chép và dán phần sau vào tệp. Cài đặt enabled=1 cho phép kho lưu trữ và cài đặt gpgcheck=1 bật kiểm tra chữ ký của GNU Privacy Guard (GPG) trên tất cả các gói được cài đặt từ kho lưu trữ.

/etc/yum.repos.d/mongodb.org-3.2.repo

[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

Lưu và đóng tệp, sau đó cài đặt mongodb-org gói để cài đặt MongoDB và các công cụ liên quan của nó. Khi được nhắc nhập khóa GPG, hãy nhập y cho có:

sudo yum install mongodb-org

Sau khi cài đặt xong, khởi động trình nền MongoDB.

sudo systemctl start mongod

mongod, daemon MongoDB, bây giờ sẽ chạy, và bạn có thể xác minh rằng bằng cách sử dụng lệnh sau:

sudo systemctl status mongod

Nếu nó đang chạy, đầu ra sẽ trông giống như sau:

Outputmongod.service - SYSV: Mongo is a scalable, document-oriented database.
   Loaded: loaded (/etc/rc.d/init.d/mongod)
   Active: active (running) since Tue 2016-09-06 12:42:16 UTC; 9s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 9374 ExecStart=/etc/rc.d/init.d/mongod start (code=exited, status=0/SUCCESS)
   CGroup: /system.slice/mongod.service
           └─9385 /usr/bin/mongod -f /etc/mongod.conf

Sep 06 12:42:16 centos-mean-js systemd[1]: Starting SYSV: Mongo is a scalable, document-oriented database....
Sep 06 12:42:16 centos-mean-js runuser[9381]: pam_unix(runuser:session): session opened for user mongod by (uid=0)
Sep 06 12:42:16 centos-mean-js mongod[9374]: Starting mongod: [  OK  ]
Sep 06 12:42:16 centos-mean-js systemd[1]: Started SYSV: Mongo is a scalable, document-oriented database..

Phần tiếp theo của ngăn xếp chúng ta cần cài đặt là Node.js.

Bước 3 - Cài đặt Node.js

Một cách dễ dàng để cài đặt Node.js là sử dụng nhị phân từ NodeSource Kho lưu trữ Node.js. Đầu tiên, thêm kho lưu trữ của nhánh ổn định. Bạn có thể đọc nội dung của tập lệnh trước khi thực thi bằng cách sử dụng lệnh bên dưới bằng cách truy cập URL trong trình duyệt của bạn.

curl -sL https://rpm.nodesource.com/setup_4.x | sudo -E bash -

Tiếp theo, cài đặt Node.js và npm, một người quản lý gói cho Node.js.

sudo yum install -y nodejs

Xác minh rằng Node.js và npm đã được cài đặt.

npm version

Đầu ra phải là:

Output{ npm: '2.15.9',
  ares: '1.10.1-DEV',
  http_parser: '2.7.0',
  icu: '56.1',
  modules: '46',
  node: '4.5.0',
  openssl: '1.0.2h',
  uv: '1.9.1',
  v8: '4.5.103.37',
  zlib: '1.2.8' }

Bây giờ thì npm được cài đặt, chúng tôi có thể cài đặt phần còn lại của các thành phần của ngăn xếp MEAN.

Bước 4 - Cài đặt Bower và Gulp

Các thành phần chúng ta sẽ cài đặt trong bước này là Bower, một trình quản lý gói được sử dụng để quản lý ứng dụng front-end và Gulp, được sử dụng để tự động hóa các tác vụ thông thường.

Cả Bower và Gulp cần phải được cài đặt trên toàn cầu, mà chúng ta thực hiện bằng cách vượt qua g tùy chọn để npm. Cài đặt cả hai ứng dụng trên toàn cầu làm cho chúng có sẵn trên toàn hệ thống, thay vì chỉ từ thư mục của dự án cục bộ.

Bower cài đặt đầu tiên:

sudo npm install -g bower

Sau đó cài đặt Gulp:

sudo npm install -g gulp

Bây giờ, cuối cùng chúng ta đã cài đặt tất cả các gói tiền đề. Chúng ta có thể chuyển sang cài đặt bản mẫu MEAN.JS thực tế được sử dụng để tạo ra các ứng dụng.

Bước 5 - Cài đặt MEAN Boilerplate

Đầu tiên, chúng tôi sẽ nhân bản kho lưu trữ MEAN.JS GitHub chính thức.

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

Điều đó sao chép bản mẫu MEAN.JS vào một thư mục có tên meanjs trong thư mục chính của bạn. Để cài đặt tất cả các gói các tài liệu tham khảo dự án, bạn cần phải được bên trong thư mục đó, do đó, di chuyển vào nó.

cd ~/meanjs

Sau đó cài đặt các gói cần thiết như người dùng không phải root.

npm install

Quá trình cài đặt sẽ mất vài phút. Khi nó hoàn thành, bạn có mọi thứ bạn cần để phát triển một ứng dụng MEAN. Trong bước cuối cùng, chúng tôi sẽ kiểm tra ngăn xếp để đảm bảo nó hoạt động.

Bước 6 - Chạy ứng dụng MEAN mẫu của bạn

Hãy chạy ứng dụng mẫu để đảm bảo rằng hệ thống hoạt động chính xác. Một phương pháp là sử dụng npm startvà phương pháp khác là sử dụng gulp. Cả hai lệnh cho phép bạn kiểm tra ứng dụng của mình trong chế độ phát triển. Ở đây, chúng ta sẽ sử dụng npm.

npm start

chú thích: Việc chạy ban đầu của một trong hai lệnh này có thể không thành công với đầu ra tương tự như sau:

Error output[12:56:49] 'lint' errored after 702 ms
[12:56:49] Error in plugin 'run-sequence'
Message:
    An error occured in task 'sass'.

Nếu bạn nhận được lỗi này, sửa chữa rất đơn giản. Nó liên quan đến việc xóa node_modules thư mục, xóa bộ nhớ cache, sau đó cài đặt lại các gói.

rm -rf node_modules

npm cache clean

npm install

Sau đó khởi động lại ứng dụng mẫu với npm start hoặc là gulp như trước.

Bây giờ bạn có thể truy cập ứng dụng MEAN của bạn bằng cách truy cập http://your_server_ip:3000 trong trình duyệt yêu thích của bạn. Điều đó sẽ hiển thị một trang có biểu tượng MEAN.JS, bao gồm cả văn bản Chúc mừng! Bạn đã định cấu hình và chạy ứng dụng mẫu. Điều này có nghĩa là bạn có một ngăn xếp MEAN đầy đủ chức năng trên máy chủ của bạn.

Phần kết luận

Bây giờ bạn có các thành phần cần thiết và bản mẫu MEAN.JS, bạn có thể bắt đầu xây dựng, thử nghiệm và triển khai các ứng dụng của riêng bạn. Kiểm tra tài liệu trên trang web của MEAN.JS để được trợ giúp cụ thể khi làm việc với MEAN.JS.

0