现在的位置: 首页 > 综合 > 正文

Ubuntu + Node.js + Mongodb开发环境搭建

2014年07月08日 ⁄ 综合 ⁄ 共 6086字 ⁄ 字号 评论关闭

需求

1.VMware Workstation 10.0.1(官网有)自己找序列号

2.Ubuntu 12.04.04系统盘类型IOS要求桌面版或server版 要求英文版(官网有)

3.Node.js源码包(官网有)

4.Mongodb(官网有)

搭建过程

一.创建Ubuntu虚拟机

1.点击右边窗口点Create a New Viretual Machine

2.选择Custom并点击Next

3.无需选择点击Next

4.选择I will install the operating system later并Next

5.选择Linux并Version里选择Ubuntu如果是64位选Ubuntu-64然后Next

6.在Location里设置虚拟机路径(记得找个大点的地方就别放C盘里了)然后Next

7.第一项为有几个处理器,第二项为一个处理器有几个核,按自己的电脑配置填写就好了,然后Next

8.内存512MB就够了,如果你电脑空间够大就随意了,依旧Next

9.网络选择默认的NAT就好,Next

10.默认LSI Logic(Recommended)然后Next

11.Create a new viretual disk然后Next

12.默认SCSI(Recommended)然后Next

13.硬盘分配20G就好了,记得选上Store virtual disk as a single file然后Next

14.默认就好,设置硬盘文件的位置,然后Next

15.检查下有没有错误然后Finish

16.完成之后左边的MyComputer下面多了个刚刚新建的Ubuntu点击

17.在右边的窗口中点击Edit virtual machine settings

18.在弹出的窗口中点击CD/DVD右边选择Use ISO image file在下面选择之前准备好的Ubuntu.iso就好了(这里以桌面版为例server版自行网上查找)

19.点17步里窗口中的Power on this virtual machine启动电源就自动开始安装Ubuntu

20.在弹出Welcome窗口中选择左边选择English 右边选择InstallUbuntu

21.在之后的Preparing to install Ubuntu窗口中勾选下面两项,然后Continue

22.Installation type窗口选择Something else再Continue

23.之后的分区窗口,选中/dev/sda点击New Partition Table...

24.在弹出的对话框里点击Continue

25.选中出现的free space点击Add...

26.依次选择与填写 Primary ;10000;beginning;Ext4journaling file system;/点击OK(作为系统盘10个G还是有必要的)

27.再一次选中出现的free space点击Add...

28.依次选择与填写 Logical;1000;beginning;swap area点OK

29.再一次选中出现的free space点击Add...

30.依次选择与填写 Logical;(这一项不用改剩下多少是多少);beginning;Ext4journaling file system;/home点OK

31.点击Install Now(注意以上分区顺序不要变)

32.选择你所在时区,ShangHai就可以点Continue

33.两边者选English(us)点Continue

34.配置个人信息用户名密码Continue

35.点击Restart Now

36.重起后会停在一个界面按Enter

37.自动进入到桌面,到这里就算是安装完了(可以备份一下整个虚拟机)

二.安装VMware Tools(桌面版)

1.在左边的虚拟机窗口点击刚刚建立的虚拟机Ubuntu右键选择安装VMware Tools

2.把桌面上弹出的光驱窗口中的压缩文件VMwareTools-9.6.1-1378637.tar.gz复制到桌面上

3.右键点击压缩包Open With Archive Manager

4.在弹出的窗口中点击Extract

5.在之后的弹出窗口中继续点击Extract

6.这时候桌面上就出现了刚刚解压出来的vmware-tools-distrib文件

7.按Ctrl+Alt+T打开终端

8.输入sudo -s(为了取得root权限)

9.之后会让你输入密码(注意输入密码是没有显示任何变化的)输完密码点击回车,就获得root权限了

10.输入cd Desktop/vmware-tools-distrib/(这里和Windows一样)回车

11.然后输入sudo ./vmware-install.pl回车

12.之后一直按提示输入回车直到自动返回到命令行

13.这时候如果没有报错,就会提示You must restart your X session before any mouse or graphics changes take effect.

14.这时候重起就安装完成了

15.重起后随便从windows中拖动一个文件到虚拟机的桌面上如果成功的复制了就是安装成功.(这时候也可以备份一下)

三.使用Xshell传输文件(server版)

1.在windows上安装Xshell与Xftp(官网有)安装时记得选择for home/school(免费版)

2.打开虚拟机ubuntu终端输入sudo apt-get install openssh-server回车直到安装完

3.输入ps -e |grep ssh确认打开ssh服务

4.输入ifconfig查看IP地址,后面有用(这个IP也可以自己设定成静态IP)

5.回到windows打开Xshell

6.新建会话 名称随便起 协议ssh 主机(输入之前记下的IP)端口号不用改(这个是默认ssh的端口号,在ubuntu上可以改)再确定

7.按照提示输入要链接的用户名与密码

8.这时候你会发现你已经可以向在Ubuntu上终端一样远程操作Ubuntu了

9.点右上角绿色的图标新建文件传输(如果没装Xftp会提示安装)

10.图形界面的Xftp就很直观的可以执行文件传输操作了

11.server版的关机命令是shutdown -h now

四.安装nodejs

1.上官网下载nodejs源码包这里是node-v0.10.25.tar.gz(注意不是linux版)

2.用Xftp传到server上这里是/home/fire

3.进入终端输入sudo apt-get install g++ curl libssl-dev apache2-utils(编译环境)

4.tar zcxf node-v0.10.25.tar.gz

5.cd node-v0.10.25

6../configure

7.make(这里如果提示没有make就按提示输入apt-get install make)

8.sudo make install

9.输入npm --version检查安装是否成功

五.安装mongodb(来自官网)

1.sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 7F0CEB10(配置Ubuntu的包管理工具,确保包的一致性和授权)

2.echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list(创建/etc/apt/sources.list.d/10gen.list文件)

3.sudo apt-get update(更新软件库)

4.sudo apt-get install mongodb-10gen这就算可以用了,后面是版本安装

5.apt-get install mongodb-10gen=2.2.3(版本号可以自己改)

6.echo “mongodb-10gen hold” | sudo apkg --set-selections(阻止因其他软件安装时造成的升级,该命令无反馈)

7.可以通过/etc/mongodb.conf文件来配置MongoDB。控制脚本在/etc/init.d/mongodb。

MongoDB实例会把数据存储在/var/lib/mongodb数据文件,日志记录在/var/log/mongodb日志文件。

7.sudo service mongodb start或stop或restart用于测试

8.输入mongo就可以看到版本号与其他信息了,下面可以试试简单的命令

9.db.test.save({a:1})

10.db.test.find()会看到输出{ "_id" : ObjectId("53058011b87b35d91ffa437e"), "a" : 1 }

六.Nodejs操作Mongodb

1.npm install mongodb

2.示例代码

var  mongodb = require('mongodb');

var  server  = new mongodb.Server('localhost', 27017, {auto_reconnect:true});

var  db = new mongodb.Db('mydb', server, {safe:true});

 

//连接db

db.open(function(err, db){

    if(!err){

        console.log('connect db');

        // 连接Collection(可以认为是mysql的table)

        // 第1种连接方式

        // db.collection('mycoll',{safe:true}, function(err, collection){

        //     if(err){

        //         console.log(err);

        //     }

        // });

        // 第2种连接方式

        db.createCollection('mycoll', {safe:true}, function(err, collection){

            if(err){

                console.log(err);

            }else{

                //新增数据

                // var tmp1 = {id:'1',title:'hello',number:1};

       //          collection.insert(tmp1,{safe:true},function(err, result){

       //              console.log(result);

       //          }); 

                   //更新数据

                   // collection.update({title:'hello'}, {$set:{number:3}}, {safe:true}, function(err, result){

                   //     console.log(result);

                   // });

                   // 删除数据

                       // collection.remove({title:'hello'},{safe:true},function(err,result){

        //                   console.log(result);

        //               });

 

                // console.log(collection);

                // 查询数据

                var tmp1 = {title:'hello'};

                   var tmp2 = {title:'world'};

                   collection.insert([tmp1,tmp2],{safe:true},function(err,result){

                   console.log(result);

                   }); 

                   collection.find().toArray(function(err,docs){

                   console.log('find');

                   console.log(docs);

                   }); 

                   collection.findOne(function(err,doc){

                    console.log('findOne');

                      console.log(doc);

                   }); 

            }

 

        });

        // console.log('delete ...');

        // //删除Collection

        // db.dropCollection('mycoll',{safe:true},function(err,result){

 

  //           if(err){

                

        //         console.log('err:');

        //         console.log(err);

        //     }else{

        //         console.log('ok:');

        //         console.log(result);

        //     }

  //       }); 

    }else{

        console.log(err);

    }

});

 

 

抱歉!评论已关闭.