专栏首页云计算教程系列如何在CentOS 7上使用MEAN.JS安装MEAN堆栈
原创

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

介绍

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)。

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

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

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

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

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

[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以确认:

sudo yum install mongodb-org

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

sudo systemctl start mongod

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

sudo systemctl status mongod

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

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,使用以下命令在执行脚本之前读取脚本的内容。

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

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

sudo yum install -y nodejs

验证Node.js和npm已安装。

npm version

输出应该是:

{ 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:

sudo npm install -g bower

然后安装Gulp:

sudo npm install -g gulp

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

步骤5 - 安装MEAN Boilerplate

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

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

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

cd ~/meanjs

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

npm install

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

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

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

npm start

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

[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目录,清除缓存,然后重新安装包。

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》

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

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

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何在Ubuntu上使用Passenger安装Rails和nginx

    Ruby on Rails为Web开发人员提供了一个快速创建各种Web应用程序的框架,而nginx是一个轻量级的高性能Web服务器软件。通过Phusion Pa...

    乌鸦
  • 如何使用Restic Backup Client将数据备份到对象存储服务

    Restic是一个用Go语言编写,安全且高效的备份客户端。它可以将本地文件备份到许多不同的后端存储库,例如本地目录,SFTP服务器或对象存储服务。

    乌鸦
  • 如何在Debian 9上安装和保护Redis

    Redis是一个内存中的键值存储,以其灵活性,性能和广泛的语言支持而闻名。本教程演示如何在Debian 9服务器上安装,配置和保护Redis。

    乌鸦
  • 机器学习中的基本问题——log损失与交叉熵的等价性

    1、log损失 image.png 2、交叉熵 image.png

    zhaozhiyong
  • 2.5 node.js回首望

    node.js是什么?上一小节2.4说过了,也就是一个可以脱离浏览器独立的javascript的运行时(runtime)。nodejs之父Ryan Dahl...

    周星星9527
  • 客户端浏览器一次http完整请求过程流程图(图文结合诠释请求过程)

    相信看完这张图后大家对一次请求也有了大致的了解了,当前其中还有很多细节小编没有画出来,然后我们来看看部分过程的细节

    公众号---志学Python
  • 浅谈 windows 命名管道

    很多时候,在一些文章中,工具利用中,都会提到管道(pipe)。那么,什么是管道呢?管道能做什么呢?本文以 windows 管道为主,边学习边整理,希望可以给其他...

    信安之路
  • JAVA 拾遗 — CPU Cache 与缓存行

    最近的两篇文章,介绍了我参加的中间件比赛中一些相对重要的优化,但实际上还存在很多细节优化,出于篇幅限制并未提及,在最近的博文中,我会将他们整理成独立的知识点,并...

    kirito-moe
  • 【并发那些事】可见性问题的万恶之源

    还记得那些年,你写的那些多线程 BUG 吗?明明只想得到个 1 + 1 = 2 的预期,结果他有时候得到 1,有时候得到 3,但偏偏有时候他也会返回正确的 2。...

    KIWI
  • Skype for Business 安装组件RewriteModule失败

    最近QQ网友提到部署Skype for Business,安装组件时提示安装必备组件失败:RewriteModule,如下图,安装文件名是rewrite_2.0...

    杨强生

扫码关注云+社区

领取腾讯云代金券