在Google云端平台上部署MEAN.JS
我尝试在Google云端平台(也是KeystoneJS CMS)上部署MEAN.JS,但不起作用。 我在线使用命令行工具。
按顺序,我安装了Node.js,MongoDB,bower和grunt,然后我尝试部署MEAN.JS:
-
安装Node.js:
sudo apt-get install curl curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs nodejs-legacy
sudo apt-get install curl curl -sL https://deb.nodesource.com/setup | sudo bash - sudo apt-get install -y nodejs nodejs-legacy
-
安装MongoDB:
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list sudo apt-get update sudo apt-get install -y mongodb-org
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv 7F0CEB10 echo 'deb http://downloads-distro.mongodb.org/repo/debian-sysvinit dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list sudo apt-get update sudo apt-get install -y mongodb-org
-
安装bower et
sudo npm install -g bower sudo npm install -g grunt-cli
:sudo npm install -g bower sudo npm install -g grunt-cli
-
安装MEAN.js:
sudo npm install -g generator-meanjs mkdir mean cd mean yo meanjs grunt
这是命令行板上的结果:
Running "jshint:all" (jshint) task 53 files lint free. Running "csslint:all" (csslint) task 2 files lint free. Running "concurrent:default" (concurrent) task Running "watch" task Running "nodemon:dev" (nodemon) task Waiting... [nodemon] v1.2.1 [nodemon] to restart at any time, enter
rs
[nodemon] watching: app/views/ / . gruntfile.js server.js config/ / .js app/* /*.j s [nodemon] starting node --debug server.js
debugger listening on port 5858 NODE_ENV is not defined! Using default development environment js-bson: Failed to load c++ bson extension, using pure JS version Failed to load c++ bson extension, using pure JS version MEAN.JS application started on port 3000
我可以定义NODE_ENVvariables(testing,开发,所有…),但它是同样的问题。
问题是 :
它应该工作,但我试图访问我的IP:端口(在这种情况下,146.148.113.68:3000):“此网页不可用”。
这是VM,包MEAN.JS的问题吗? 我有与KeystoneJS CMS相同的问题。
谢谢 !
你确定你的机器的端口是开放的吗? 在Compute Engine上部署应用程序时,必须编辑networking设置以允许自定义端口。 有容易的勾选选项允许HTTP和HTTPstream量,但对于自定义的端口,你将不得不添加端口设置。
本文档可能会有所帮助,但您可以随时在云控制台中find这些内容。
此外,现在Google Cloud Launcher也支持MEAN堆栈部署,同时兼顾MEAN.io和MEAN.js风格,简化了整个过程。
一切都看起来很好唯一要改变的是防火墙设置,它阻止了您的Web应用程序,VM或KeystoneJS CMS没有问题。 您需要更改传入和传出stream量的防火墙设置:
您需要指定IP和端口号,我已经为所有testing目的临时授予所有端口的访问权限。
尝试其他服务来托pipe您的MEANJS Web应用程序。 Heroku: https: //www.heroku.com/ Nodejitsu: https ://www.nodejitsu.com/
如果它在这些平台上运行,那么问题就不在于你的云。