Deploying MEAN Stack on CentOS 7.2

By Sumathi Kuppusamy,Alibaba Cloud Tech Share Author

Introduction

MEAN stack is one of the modern web application javascript framework that’s rapidly improving and easy to collaborate and learn. The MEAN Stack contains, from backend to frontend, a schemaless NoSQL database (MongoDB), a server-side JavaScript platform (Node.js), a web application framework running on Node.js to make it easier to write apps (Express.js), and a frontend client-side framework that runs in the browser (AngularJS).

In this article, we will walk through the steps to deploy MEAN stack on CentOS 7.2 deployed in Alibaba Cloud ECS.

Step by Step Walkthrough

Let us look at the steps in detail to deploy MEAN stack on an Alibaba Cloud ECS instance with CentOS 7.2.

Step 1: Create an instance on ECS

  1. Login to Alibaba ECS console and go to “Instances” section in the left hand side bar.
  2. Click on “Create Instance” in Instances page and choose the pricing model, the nearest datacenter region and zone, instance type, network type, security group, network billing type and then the operating system “CentOS 7.2 64bit”.
  3. For better security, add SSH key pair and choose the created key pair from the list while creating the instance.
  4. Also choose security group with strict rules.
  5. After filling the instance name and other details, click on “Add to Cart”. Preview the details in the shopping cart.

Deploying MEAN Stack on CentOS 7.2

  1. Once VM is created, you can look at the instance details in ECS Overview page.

Deploying MEAN Stack on CentOS 7.2

  1. You can procure Elastic IP and assign to VM for mapping to your domain name. Otherwise by default, a temporary IP Address will be assigned.

Step 2: Install NodeJS

NodeJS is one of the faster way to build scalable network application. In order to install nodeJS, run the following commands on CentOS 7:

curl -sL https://rpm.nodesource.com/setup_4.x 
yum install -y nodejs

Sample output:

Deploying MEAN Stack on CentOS 7.2

Step 3: Install MongoDB

MongoDB is the leading NoSQL database service. We will now install it on our ECS instance.

  1. Setup the repo as given in the below steps by creating a file “mongodb.repo” in the directory “/etc/yum.repos.d”.

cat > /etc/yum.repos.d/mongodb.repo
[mongodb]
name=MongoDB Repository
baseurl=http://downloads-distro.mongodb.org/repo/redhat/os/x86_64/
gpgcheck=0
enabled=1

Press Ctrl+D to save and exit.

  1. Install the MongoDB server by executing the following command:

yum install -y mongodb-org

Deploying MEAN Stack on CentOS 7.2

  1. Configuring MongoDB server in authentication mode:
    By default, when you start MongoDB server it runs in promiscuous mode. In order to restrict MongoDB server based on authentication, you need to create users and run mongod service with ‘-auth’ mode.

● Start the mongod service in noauth mode following the below command:

mongod –fork –dbpath /var/lib/mongo –logpath /var/log/meandb.log

Deploying MEAN Stack on CentOS 7.2

Note: The default dbpath is /var/lib/mongo

● Create the admin user by going to mongo shell by typing “mongo” in terminal and feed in the below commands in mongo shell:

mongo
use admin
db.createUser({user:‘siteUserAdmin’,pwd:‘pa55w0rd’,roles:[{role:‘userAdminAnyDatabase’,db:‘admin’}]})

Deploying MEAN Stack on CentOS 7.2

Enter the command “exit” when complete to exit from the mongo shell.

● Now stop the mongod service.

mongod –shutdown –dbpath /var/lib/mongo

Deploying MEAN Stack on CentOS 7.2

● Now start the mongod service in -auth mode

mongod –fork –auth –dbpath /var/lib/mongo –logpath /var/log/meandb.log

Deploying MEAN Stack on CentOS 7.2

● Create a user for your mongo collection (new-mean) by going to mongo shell in the terminal and feed in the below commands in mongo shell. You need to login to your MongoDB account by using the “-u” and “-p” commands:

 mongo -u siteUserAdmin -p pa55word --authenticationDatabase admin
use new-mean;
db.createUser({user:'meanuser',pwd:'pa55w0rd',roles:[{role:'readWrite',db:'new-mean'}]})

Deploying MEAN Stack on CentOS 7.2

Enter the command “exit” when complete to exit from the mongo shell.

Note: In this example, we have used the following username and passwords. For your environment, use appropriate password of your choice.

Database Username Password
admin siteUserAdmin pa55word
new-mean meanuser pa55w0rd

Step 4: Installing Dependencies

a. Install the git by giving the below command:
yum install -y git
Deploying MEAN Stack on CentOS 7.2 b. Install bower and gulp packages In order to bring up the MEAN stack, package managers such as npm, bower, gulp need to be installed. Bower is the package manager for web components. Install these dependencies by running the following commands: ●
sudo npm install -g bower
Deploying MEAN Stack on CentOS 7.2
sudo npm install -g gulp
Deploying MEAN Stack on CentOS 7.2 Note: ●“-g” flag is important to ensure that bower and gulp are installed globally. ●If you encounter the below error “npm: relocation error: npm: symbol SSL_set_cert_cb, version libssl.so.10 not defined in file libssl.so.10 with link time reference”, please run the following command and then re-run the above commands.
yum update -y openssl
Output: Deploying MEAN Stack on CentOS 7.2

Step 5: Installing MEAN Application

a. Clone the mean repo service and change the current working directory to mean:
git clone https://github.com/linnovate/mean.git
Deploying MEAN Stack on CentOS 7.2
cd mean
(Optional) You can inspect the directory structure of mean by using the command “ls”: Deploying MEAN Stack on CentOS 7.2 The package.json file describes dependencies for AngularJS, Web Components and NodeJS. MEAN uses the https://webpack.github.io/”>webpack for bundling web assets. b. Install mean project packages by running the following command:
npm install 
Note: This may take few seconds to complete. c. Configure MONGO_HOST settings in server-start.js to connect to mongo server using the created user meanuser. You can use one of the text editor ‘vi’ or ‘nano’:
nano server-start.js
Change the line containing “MONGO_HOST”: process.env.MONGO_HOST='mongodb://localhost/new-mean' To process.env.MONGO_HOST='mongodb://[email protected]@localhost/new-mean' c. Start the mean service with production mode
export NODE_ENV=production
npm start
Deploying MEAN Stack on CentOS 7.2

Step 6: Grant public access to your MEAN app

As a security measure, all your “inbound” network connections are blocked. You can add a rule to security group of your instance to allow inbound traffic on port 8080 through Alibaba ECS console. Deploying MEAN Stack on CentOS 7.2

Step 7: Browser access to the MEAN application

Launch the browser with the URL http://<external_ip_of_instance>:8080/ Note: Replace with the actual IP address of your ECS instance.

Summary

Thus, we could bring up a MEAN stack based web application on Alibaba Cloud ECS in just few minutes. Now, you have a fully functionalhttps://github.com/linnovate/mean”>MEAN stack on your server!

相关文章:

  • 2022-02-23
  • 2021-12-27
  • 2022-01-24
  • 2021-07-15
  • 2022-12-23
  • 2022-12-23
  • 2021-10-02
  • 2021-06-15
猜你喜欢
  • 2021-12-28
  • 2021-07-12
  • 2022-12-23
  • 2021-06-29
  • 2022-01-15
  • 2022-12-23
  • 2021-09-15
相关资源
相似解决方案