购买主机
看个人爱好,本人购买阿里云主机,最低配置55元/月
安装相关模块
- 在阿里云管理控制台启动购买的云主机
- 使用
zoc6
连接服务器 更新软件
yum -y update
安装开发工具
yum -y groupinstall "Development Tools"
- 下载Node源码
- cd /usr/src
- wget http://nodejs.org/dist/v0.10.32/node-v0.10.32.tar.gz
- 安装Node
- 解压node-v0.10.32.tar.gz
- cd node-v0.10.32
- ./configure
- make
- make install
- *注:编译后的二进制文件会放置于系统路径下
/usr/local/bin/node
- 安装MongoDB
- 检查是否安装过mongodb
- rpm -qa |grep mongodb
- service mongodb status
- mongodb配置
- 上传位置: /usr/local
- 软件安装位置: /user/local/mongodb
- 数据存储位置: /var/local/mongodb/data
- 日志存储位置: /var/local/mongodb/logs
- cd /usr/src
- 下载mongo,并上传至 /usr/local
- mv mongodb-linux-x86_64-2.6.4 mongodb && cd mongodb
- mkdir /var/local/mongodb
- mkdir /var/local/mongodb/data
- mkdir /var/local/mongodb/logs
- 配置防火墙
- iptables -L -n // 查看防火墙配置信息
- service iptables status // 检查防火墙状态
- iptables -A INPUT -p tcp –dport 27017 -j ACCEPT
- service iptables save
- service iptables restart
- 详细的防火墙配置见
参考资料
- 检查是否安装过mongodb
- 启动mongodb
- /usr/local/mongodb/bin/mongod –dbpath=/var/local/mongodb/data –logpath=/var/local/mongodb/logs/log.log -fork
- 配置mongodb
- 开机启动: vim /etc/rc.d/
- 在末尾追加 /usr/local/mongodb/bin/mongod –dbpath=/var/local/mongodb/data –logpath=/var/local/mongodb/logs/log.log -fork
- 将制定项目上传至服务器
- 安装依赖模块 node install
- 启动项目 node index.js
修改阿里云主机名
- vim /etc/hosts
- vim /etc/sysconfig/network
- hostname 新主机名
重新ssh登录,生效;
碰到的问题
启动时报 cannot execute binary file
执行 /usr/local/mongodb/bin/mongod –dbpath=/var/local/mongodb/data –logpath=/var/local/mongodb/logs/log.log 报错 -bash: ./mongod: cannot execute binary file
原因: mongodb版本与centos版本不匹配,本人安装了32位的centos,但mongodb的版本为64位
解决方案: 下载32位的mongodb进行安装
mongodb无法启动(Unclean shutdown detected)
1 | Unclean shutdown detected. |
原因: mongodb意外退出导致数据文件被锁, 本人采用kill -9 pid
导致此问题
解决方案:
## 删除dbpath下的mongod.lock文件
rm /usr/local/mongodb/data/mongod.lock
## 修复数据文件
mongod --dbpath=/usr/local/mongodb/data --repair
## 重启mongodb
/usr/local/mongodb/bin/mongod --dbpath=/var/local/mongodb/data --logpath=/var/local/mongodb/logs/log.log
总结: 错误的关闭方式导致的问题,以后应该避免kill -9 pid
这种暴力的方式, 可采用kill -2 pid
或切换到mongodb的admin数据库下执行db.shutdownServer()