介绍
MEAN是由以下组件组成的软件应用程序:- MongoDB中 ,一个NoSQL资料库与服务器端JavaScript执行的支持
- ExpressJS,使Node.js的Web应用程序框架
- AngularJS,适合开发动态,单页应用程序的Web应用程序框架
- 的NodeJS,适合构建可扩展的网络应用的异步事件驱动的框架
通过使用Javascript编码,我们能够在软件本身和开发人员的生产力方面实现性能提升。使用MongoDB,我们可以以类似JSON的格式存储我们的文档,在基于ExpressJS和NodeJS的服务器上写入JSON查询,并无缝地将JSON文档传递到我们的AngularJS前端。当存储在数据库中的对象与客户端Javascript所看到的对象基本相同时,调试和数据库管理变得更加容易。更好的是,在客户端工作的人可以很容易地理解服务器端代码和数据库查询;使用相同的语法和对象,使您不必考虑多组语言最佳实践,并减少了了解您的代码库的入口门槛。目前的平均栈的两个平行的实现 :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
,需要大量的内存。 - sudo的一个非root用户使用配置这7 CentOS的初始服务器设置指南 。
第1步 - 安装依赖关系
因为我们会从源代码编译应用程序,克隆一个Git仓库,并安装RubyGem,我们需要先安装一些依赖。libpng-devel
和
fontconfig
由MEAN.JS模块(pngquant)中的一个需要。
sudo yum install gcc-c++ make git fontconfig bzip2 libpng-devel ruby ruby-devel
我们将要安装的一些Node.js模块将需要Sass,一种CSS扩展语言。使用安装
gem
,Ruby的包管理器。
sudo gem install sass
现在安装了依赖关系,我们可以安装的第一个组件:MongoDB。
第2步 - 安装MongoDB
MongoDB不在官方CentOS存储库中,因此要安装它,您必须启用官方MongoDB存储库。这将让您访问最新的软件包,并允许您从那里安装。 在本教程中,我们将安装社区版,可以免费下载。还有一个企业版,但这需要一个许可证,所以我们不会在这里处理。 在出版时,MongoDB 3.2是最新的稳定版本可供下载和安装。要启用存储库中,创建一个文件为它下/etc/yum.repos.d
,CentOS的库目录。 MongoDB的3.2,我们会打电话给这个文件
mongodb.org-3.2.repo
。 创建并打开
/etc/yum.repos.d/mongodb.org-3.2.repo
使用
vi
或您喜爱的文本编辑器。
sudo vi /etc/yum.repos.d/mongodb.org-3.2.repo
要将包管理器指向官方MongoDB存储库并启用它,请将以下内容复制并粘贴到文件中。设置
enabled=1
使资源库和设置
gpgcheck=1
开启GNU隐私卫士(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的资源库。首先,添加稳定分支的存储库。在执行脚本之前,可以使用下面的命令访问浏览器中的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。 无论鲍尔和咕嘟咕嘟需要由 -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.JS的标志,包括文字
恭喜!
你已经配置和运行示例应用程序,这意味着你有你的服务器上的全功能MEAN。