前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >如何在CentOS 7上使用MEAN.JS安装MEAN堆栈

如何在CentOS 7上使用MEAN.JS安装MEAN堆栈

原创
作者头像
乌鸦
修改2018-10-22 12:05:36
1.1K0
修改2018-10-22 12:05:36
举报

介绍

MEAN是由以下组件组成的软件应用程序堆栈:

  • MongoDB,一个支持服务器端JavaScript执行的NoSQL数据库
  • ExpressJS,一个Node.js Web应用程序框架
  • AngularJS,一个适用于开发动态单页面应用程序的Web应用程序框架
  • NodeJS,一种异步事件驱动框架,适用于构建可伸缩的网络应用程序

术语MEAN最初由Valeri Karpov创造,该术语源自每个组件的第一个字母。Valeri在这篇博客文章中定义了MEAN ,其中他给出了选择在MEAN堆栈的帮助下开发JavaScript应用程序的一些动机:

通过使用Javascript进行编码,我们能够在软件本身和开发人员的生产力方面实现性能提升。使用MongoDB,我们可以将文档存储为类似JSON的格式,在基于ExpressJS和NodeJS的服务器上编写JSON查询,并将JSON文档无缝传递到AngularJS前端。当存储在数据库中的对象与客户端Javascript看到的对象基本相同时,调试和数据库管理变得更加容易。更好的是,在客户端工作的人可以很容易地理解服务器端代码和数据库查询; 通过使用相同的语法和对象,您可以免于考虑多组语言最佳实践,并减少了理解代码库的入门门槛。

目前的平均堆叠的两个并行实现:MEAN.ioMEAN.JS。每个都有一个略有不同的安装方法。MEAN.JS是一个纯粹由社区驱动的实现,而MEAN.io则由一家名为Linnovate的公司赞助。它们都包含相同的组件,但MEAN.io提供了额外的命令行工具,mean以及商业支持。

在本指南中,我们将使用MEAN.JS在CentOS 7服务器上安装MEAN堆栈。使用此方法包括首先安装MongoDB,然后安装NodeJS,然后从GitHub克隆MEAN.JS文件。

准备

首先,您需要具备以下条件:

  • 具有至少4GB RAM的CentOS 7服务器。MEAN堆栈的某些组件npm需要大量内存。
  • 一台已经设置好可以使用sudo命令的非root账号的CentOS服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器

第1步 - 安装依赖项

因为我们将从源代码编译应用程序,克隆Git存储库以及安装Ruby gem,所以我们首先需要安装一些依赖项。libpng-develfontconfig需要一个MEAN.JS模块(pngquant)。

代码语言:javascript
复制
sudo yum install gcc-c++ make git fontconfig bzip2 libpng-devel ruby ruby-devel

我们将要安装的一些Node.js模块将需要Sass,一种CSS扩展语言。使用Ruby的包管理器gem来安装它。

代码语言:javascript
复制
sudo gem install sass

现在已经安装了依赖项,我们可以安装堆栈的第一个组件:MongoDB。

第2步 - 安装MongoDB

MongoDB不在官方CentOS存储库中,因此要安装它,您必须启用官方MongoDB存储库。这将使您可以访问最新的软件包,并允许您从那里安装它。

在本教程中,我们将安装社区版,可以免费下载。还有一个企业版,但这需要许可证,所以我们不会在这里处理它。

在发布时,MongoDB 3.2是最新的稳定版,可供下载和安装。要启用存储库,请在CentOS存储库/etc/yum.repos.d目录下为其创建文件。对于MongoDB 3.2,我们将调用该文件mongodb.org-3.2.repo

使用vi或您喜欢的文本编辑器创建和打开/etc/yum.repos.d/mongodb.org-3.2.repo

代码语言:javascript
复制
sudo vi /etc/yum.repos.d/mongodb.org-3.2.repo

要将程序包管理器指向官方MongoDB存储库并启用它,请将以下内容复制并粘贴到该文件中。设置enabled=1允许存储库和设置gpgcheck=1启用从存储库安装的所有包上的GNU Privacy Guard(GPG)签名检查。

代码语言:javascript
复制
[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

保存并关闭该文件,然后安装该mongodb-org软件包以安装MongoDB及其相关工具。当提示您导入GPG密钥时,请键入y以确认:

代码语言:javascript
复制
sudo yum install mongodb-org

安装完成后,启动MongoDB守护程序。

代码语言:javascript
复制
sudo systemctl start mongod

mongod,MongoDB守护程序现在应该正在运行,您可以使用以下命令验证:

代码语言:javascript
复制
sudo systemctl status mongod

如果它正在运行,输出应类似于以下内容:

代码语言:javascript
复制
mongod.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..

我们需要安装的堆栈的下一部分是Node.js.

第3步 - 安装Node.js.

安装Node.js的一种简单方法是使用NodeSource Node.js存储库中的二进制文件。首先,添加stable分支的存储库。您可以通过访问浏览器中的URL,使用以下命令在执行脚本之前读取脚本的内容。

代码语言:javascript
复制
curl -sL https://rpm.nodesource.com/setup_4.x | sudo -E bash -

接下来,安装Node.js和Node.js npm的包管理器。

代码语言:javascript
复制
sudo yum install -y nodejs

验证Node.js和npm已安装。

代码语言:javascript
复制
npm version

输出应该是:

代码语言:javascript
复制
{ 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' }

现在已经安装npm,我们可以安装MEAN堆栈的其余组件。

第4步 - 安装Bower和Gulp

我们将在此步骤中安装的组件是Bower,一个用于管理前端应用程序的包管理器,以及用于自动执行常见任务的Gulp。

Bower和Gulp都需要全局安装,我们通过传递g选项来完成npm。全局安装这两个应用程序使它们在系统范围内可用,而不是仅从本地项目的目录中获得。

首先安装Bower:

代码语言:javascript
复制
sudo npm install -g bower

然后安装Gulp:

代码语言:javascript
复制
sudo npm install -g gulp

现在,我们终于安装了所有必备软件包。我们可以继续安装用于创建应用程序的实际MEAN.JS样板。

步骤5 - 安装MEAN Boilerplate

首先,我们将克隆官方的MEAN.JS GitHub存储库。

代码语言:javascript
复制
git clone https://github.com/meanjs/mean.git meanjs

将MEAN.JS样板克隆调用到主目录中meanjs的目录中。要安装项目引用的所有软件包,您需要在该目录中,因此请进入该目录。

代码语言:javascript
复制
cd ~/meanjs

然后以非root用户身份安装所需的软件包。

代码语言:javascript
复制
npm install

安装将需要几分钟。完成后,您将拥有开发MEAN应用程序所需的一切。在最后一步中,我们将测试堆栈以确保它正常工作。

第6步 - 运行示例MEAN应用程序

让我们运行示例应用程序以确保系统正常运行。一种方法是使用npm start,另一种方法是使用gulp。这两个命令都允许您在开发模式下测试应用程序。在这里,我们将使用npm

代码语言:javascript
复制
npm start

注意:这些命令中的任何一个的初始运行可能会失败,输出类似于:

代码语言:javascript
复制
[12:56:49] 'lint' errored after 702 ms
[12:56:49] Error in plugin 'run-sequence'
Message:
    An error occured in task 'sass'.

如果您收到此错误,则修复很简单。它涉及删除node_modules目录,清除缓存,然后重新安装包。

代码语言:javascript
复制
rm -rf node_modules
npm cache clean
npm install

然后使用npm startgulp以前重启示例应用程序。

您现在可以用自己喜欢的浏览器访问http://your_server_ip:3000里的MEAN应用程序。这应该呈现一个带有MEAN.JS标志的页面,包括文字恭喜!您已配置并运行示例应用程序。这意味着您的服务器上有一个功能齐全的MEAN堆栈。

结论

现在您已拥有必要的组件和MEAN.JS样板,您可以开始构建,测试和部署自己的应用程序。查看MEAN.JS网站上文档,了解有关使用MEAN.JS的具体帮助。

更多CentOS教程请前往腾讯云+社区学习更多知识。

参考文献:《How To Install the MEAN Stack with MEAN.JS on CentOS 7》

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 介绍
    • 准备
      • 第1步 - 安装依赖项
        • 第2步 - 安装MongoDB
          • 第3步 - 安装Node.js.
            • 第4步 - 安装Bower和Gulp
              • 步骤5 - 安装MEAN Boilerplate
                • 第6步 - 运行示例MEAN应用程序
                  • 结论
                  相关产品与服务
                  云数据库 MongoDB
                  腾讯云数据库 MongoDB(TencentDB for MongoDB)是腾讯云基于全球广受欢迎的 MongoDB 打造的高性能 NoSQL 数据库,100%完全兼容 MongoDB 协议,支持跨文档事务,提供稳定丰富的监控管理,弹性可扩展、自动容灾,适用于文档型数据库场景,您无需自建灾备体系及控制管理系统。
                  领券
                  问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档