MEAN是由以下组件组成的软件应用程序堆栈:
术语MEAN最初由Valeri Karpov创造,该术语源自每个组件的第一个字母。Valeri在这篇博客文章中定义了MEAN ,其中他给出了选择在MEAN堆栈的帮助下开发JavaScript应用程序的一些动机:
通过使用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文件。
首先,您需要具备以下条件:
npm
需要大量内存。sudo
命令的非root账号的CentOS服务器,并且已开启防火墙。没有服务器的同学可以在这里购买,不过我个人更推荐您使用免费的腾讯云开发者实验室进行试验,学会安装后再购买服务器。因为我们将从源代码编译应用程序,克隆Git存储库以及安装Ruby gem,所以我们首先需要安装一些依赖项。libpng-devel
和fontconfig
需要一个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。
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.
安装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堆栈的其余组件。
我们将在此步骤中安装的组件是Bower,一个用于管理前端应用程序的包管理器,以及用于自动执行常见任务的Gulp。
Bower和Gulp都需要全局安装,我们通过传递g选项来完成npm
。全局安装这两个应用程序使它们在系统范围内可用,而不是仅从本地项目的目录中获得。
首先安装Bower:
sudo npm install -g bower
然后安装Gulp:
sudo npm install -g gulp
现在,我们终于安装了所有必备软件包。我们可以继续安装用于创建应用程序的实际MEAN.JS样板。
首先,我们将克隆官方的MEAN.JS GitHub存储库。
git clone https://github.com/meanjs/mean.git meanjs
将MEAN.JS样板克隆调用到主目录中meanjs
的目录中。要安装项目引用的所有软件包,您需要在该目录中,因此请进入该目录。
cd ~/meanjs
然后以非root用户身份安装所需的软件包。
npm install
安装将需要几分钟。完成后,您将拥有开发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 start
或gulp
以前重启示例应用程序。
您现在可以用自己喜欢的浏览器访问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 删除。