在EC2上安装MEAN环境
搭建决策树项目外网DEMO尝试几个地方后,最后选择了EC2(Amazon Elastic Compute Cloud)。选择的是最经济便宜的Amazon Linux AMI系统t2.micro型(前期免费)。因为是基于Red Hat的发行版本的系统,操作和在实验室的centos类似,本文结合了上一篇搭建NodeJS环境,并包含安装MongoDB的事宜,当然还包括扰人的Amazon远程连接的安全机制了。
使用PuTTY连接
首先需要将EC2生成的私钥(.pem)转换为PuTTY支持的格式(.ppk)。打开PuTTYgen,按照图或者官方文档来操作。
生成好密钥后,使用PuTTY来远程连接主机,在椭圆方块内写入ec2-user@public_dns_name或者public_ip(这两个值都可以在生成的实例中找到),注意两个方块内的值无误就好了。
打开左边的Connection->SSH->Auth,导入刚才生成的**.ppk即可。
在第一个配置时,远端主机总是不认我的私钥,网上建议是将主机镜像导入到一个新实例。不过我是简单粗暴地新建了一个实例。进入console后可以进入root模式来安装一些包。
安装NodeJS
首先注意不要直接按照上一篇文章安装NodeJS,因为AMAZON的上的gcc版本高于4.8,make NodeJS时会报错V8编译错误(./deps/v8/src/checks.h:271:5: note: in expansion of macro ‘SEMI_STATIC_JOIN’ SEMI_STATIC_JOIN(StaticAssertTypedef, LINE)),所以需要安装低版本的gcc,我安装的是4.7.3。命令如下
# wget -c http://ftp.gnu.org/gnu/gcc/gcc-4.7.3/gcc-4.7.3.tar.gz # tar zxvf gcc-4.7.3.tar.gz # cd gcc-4.7.3 # ./contrib/download_prerequisites # ./configure --enable-checking=release --enable-languages=c,c++ --disable-multilib # make 这个make时间超长,保持耐心 # make install
检查一下版本,安装NodeJS(v0.10.35,高版本安装bcrypt包暂不友好)就能成功,当然这里因为bash找不到gcc命令配置bash也失败,我就简单粗暴地新建一次实例。
安装mongoDB
接下来的安装就比较顺利了。
# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-2.7.8.tgz # tar zxvf mongodb-linux-x86_64-2.6.7.tgz # mv mongodb-linux-x86_64-2.6.7 /usr/local/mongodb # cd /usr/local/mongodb
启动时使用参数 –smallfiles避免报ERROR: Insufficient free space for journal files,也记得先建立文件夹/usr/local/mongodb/data以及/data/db、logs。
# ./bin/mongod --smallfiles --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongodb.log --fork
开机自启动
# echo "/usr/local/mongodb/bin/mongod --smallfiles --dbpath=/usr/local/mongodb/data/db --logpath=/usr/local/mongodb/logs/mongodb.log --fork" >> /etc/rc.local
传源码运行服务器
使用WinSCP传输文件,记得在高级设置中将**.ppk私钥导入SSH验证,主机名单使用public_dns_name就好。源码传好后安装依赖(npm install),运行(使用nohup ndoe add &命令保持运行状态),不过关闭就需要直接kill程序了。
断断续续的工作量大致为1天,其中建立连接和安装gcc耗时最多。操持Linux就是需要耐心,共勉之。封面放了一张与内容无关的图。
References: