我尝试在Google Cloud Platform(也是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
安装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
安装bower et Grunt:
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_ENV变量(测试,开发,所有......),但这是同样的问题。
问题是:
它应该工作,但我尝试访问我的IP:端口(在这种情况下146.148.113.68:3000):“此网页不可用”。
这是VM,包,MEAN.JS的问题吗?我对KeystoneJS CMS也有同样的问题。
谢谢!
答案 0 :(得分:1)
您确定机器的端口是否可以访问?在Compute Engine上部署应用程序时,您必须编辑网络设置以允许自定义端口。有允许HTTP和HTTP流量的简单复选标记选项,但对于自定义端口,您必须在设置中添加端口。
This documentation可能会有所帮助,但您始终可以在云端控制台中找到这些内容。
此外,现在Google Cloud Launcher还支持使用MEAN.io和MEAN.js风格的MEAN堆栈部署,这简化了整个过程。
答案 1 :(得分:0)
一切看起来很好只有改变的是阻止你的web应用程序的防火墙设置,VM或KeystoneJS CMS没有问题。您只需更改传入和外出流量的防火墙设置:
您需要指定IP和端口号,我已暂时访问所有端口以进行测试。
答案 2 :(得分:-1)
尝试其他服务来托管您的MEANJS Web应用程序。 Heroku:https://www.heroku.com/ Nodejitsu:https://www.nodejitsu.com/
如果它适用于这些平台,则问题不在于您的云。