如何在CentOS7上使用MEAN.JS安装MEAN堆栈
介绍
MEAN 是由以下组件组成的软件应用程序堆栈:
- MongoDB,一个支持服务器端 JavaScript 执行的 NoSQL 数据库
- ExpressJS,一个 Node.js 网络应用框架
- AngularJS,一个适合开发动态、单页应用的web应用框架
- NodeJS,一个异步事件驱动框架,适合构建可扩展的网络应用程序
术语 MEAN 最早由 Valeri Karpov 创造,该术语源自每个组件的第一个字母。 Valeri 在 这篇博文 中定义了 MEAN,其中他给出了选择借助 MEAN 堆栈开发 JavaScript 应用程序的一些动机:
通过自始至终使用 Javascript 进行编码,我们能够在软件本身和开发人员的生产力方面实现性能提升。 使用 MongoDB,我们可以以类似 JSON 的格式存储文档,在基于 ExpressJS 和 NodeJS 的服务器上编写 JSON 查询,并将 JSON 文档无缝传递到我们的 AngularJS 前端。 当存储在数据库中的对象与客户端 Javascript 看到的对象基本相同时,调试和数据库管理会变得容易得多。 更好的是,在客户端工作的人可以轻松理解服务器端代码和数据库查询; 在整个过程中使用相同的语法和对象使您不必考虑多组语言最佳实践,并降低了理解代码库的进入障碍。
MEAN 堆栈目前有两种并行实现:MEAN.io 和 MEAN.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
,需要大量内存。 - 使用 this CentOS 7 初始服务器设置指南 配置的 sudo 非 root 用户。
第 1 步 — 安装依赖项
因为我们将从源代码编译应用程序、克隆 Git 存储库并安装 Ruby gem,所以我们需要先安装一些依赖项。 MEAN.JS 模块 (pngquant) 之一需要 libpng-devel
和 fontconfig
。
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) 签名检查。
/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
保存并关闭文件,然后安装mongodb-org
包安装MongoDB及其相关工具。 当提示导入 GPG 密钥时,键入 y
表示是:
sudo yum install mongodb-org
安装完成后,启动 MongoDB 守护进程。
sudo systemctl start mongod
mongod
,MongoDB 守护进程,现在应该正在运行,您可以使用以下命令进行验证:
sudo systemctl status mongod
如果它正在运行,则输出应类似于以下内容:
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..
我们需要安装的堆栈的下一部分是 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 和 npm
,一个 Node.js 的包管理器。
sudo yum install -y nodejs
验证是否安装了 Node.js 和 npm
。
npm version
输出应该是:
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' }
现在 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 样板
首先,我们将克隆官方的 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
注意:这些命令的初始运行可能会失败,输出类似于以下内容:
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'.
如果您收到此错误,则修复很简单。 它涉及删除 node_modules
目录,清除缓存,然后重新安装包。
rm -rf node_modules npm cache clean npm install
然后像以前一样使用 npm start
或 gulp
重新启动示例应用程序。
您现在可以通过在您喜欢的浏览器中访问 http://your_server_ip:3000
来访问您的 MEAN 应用程序。 这应该会呈现一个带有 MEAN.JS 徽标的页面,包括文本恭喜! 您已经配置并运行了示例应用程序。 这意味着您的服务器上有一个功能齐全的 MEAN 堆栈。
结论
现在您已经拥有了必要的组件和 MEAN.JS 样板,您可以开始构建、测试和部署您自己的应用程序。 查看 MEAN.JS 网站 上的 文档以获取有关使用 MEAN.JS 的具体帮助。