Centos7下nodejs-mongodb部署

来源:互联网 发布:c语言字符集 编辑:程序博客网 时间:2024/06/10 01:49
Centos7环境下部署nodejs网站,数据库为mongodb

一、 当前的系统环境
[root@7node ~]# uname -r
3.10.0-514.26.2.el7.x86_64
[root@7node ~]# cat /etc/redhat-release
CentOS Linux release 7.3.1611 (Core)
二、 nodejs项目部署

///下载
[root@c7-o12c-5 ~]# wget https://nodejs.org/dist/v6.11.2/node-v6.11.2-linux-x64.tar.xz
///解压
[root@c7-o12c-5 ~]# tar -xvf node-v6.11.2-linux-x64.tar.xz
///设置软连接
[root@c7-o12c-5 ~]# ln -s node-v6.11.2-linux-x64 nodejs
///切换到那个软连接的目录
[root@c7-o12c-5 ~]# cd nodejs
///可以ls查看里面有哪些文件,切换到里面的bin目录下
[root@c7-o12c-5 nodejs]# cd bin
///bin目录的可执行文件,
[root@c7-o12c-5 bin]# ls
node npm

///调用node
[root@c7-o12c-5 bin]# node -v  =====///其实#./node -v是可以的
bash: node: command not found.../////系统找不到node命令在哪里
//查看系统命令路径
[root@c7-o12c-5 bin]# echo $PATH
/usr/local/bin:/usr/local/sbin:/usr/bin:/usr/sbin:/bin:/sbin:/home/he/.local/bin:/home/he/bin
[root@c7-o12c-5 bin]# pwd ////当前路径
/root/nodejs/bin
[root@c7-o12c-5 bin]# vim /etc/bashrc ///配置node命令的路径
[root@c7-o12c-5 server]# cat /etc/bashrc | tail -n1
export PATH=$PATH:/root/nodejs/bin
[root@c7-o12c-5 bin]# source /etc/bashrc
[root@c7-o12c-5 bin]# node -v

v6.11.2
[root@c7-o12c-5 bin]# npm -v
3.10.10
////切换到你的项目文件里(我的项目文件在当前目录下)
[root@test ~]# cd server
[root@test server]# ls
////项目里的文件有哪些
index.js model node_modules package.json public

[root@c7-o12c-5 server]# node index.js


*************
////因为我的反复实验,再执行可能出现的错误
   events.js:160
   throw er; // Unhandled 'error' event
   ^
   Error: listen EADDRINUSE :::3000
   at Object.exports._errnoException (util.js:1020:11)
   at exports._exceptionWithHostPort (util.js:1043:20)
   at Server._listen2 (net.js:1258:14)
   at listen (net.js:1294:10)
   at Server.listen (net.js:1390:5)
   at EventEmitter.listen (/root/server/node_modules/express/lib/application.js:618:24)
   at Object.<anonymous> (/root/server/index.js:32:5)
   at Module._compile (module.js:570:32)
   at Object.Module._extensions..js (module.js:579:10)
   at Module.load (module.js:487:32)
///解决
  [root@c7-o12c-5 server]# ps | grep node ////监听端口被占用
  3065 pts/0 00:00:01 node
  [root@c7-o12c-5 server]# kill 3065
  [1]+ Terminated node server/index.js (wd: ~)
  (wd now: ~/server)
  [root@c7-o12c-5 server]# ps -ef | grep node ///查看进程
**********************

[root@c7-o12c-5 server]# node index.js //////前端运行
处于等待中
在浏览器里输入:http://localhost:3000------ok
Ctrl+c
浏览器刷新,木有了
[root@c7-o12c-5 server]# node index.js & //////后端运行咯
[root@c7-o12c-5 server]# netstat -tpln | grep node //////浏览成功,端口肯定存在喽,我只是看看。
tcp6 0 0 :::3000 :::* LISTEN 3641/node

****///////数据库还没有,所以一用到存储机制nodejs进程就会自动停止,和项目程序有关。下面安装mongo数据库

三、 mongodb部署
下载:方式一:先下到window系统再用xshell传到虚拟机上喽
http://www.mongodb.org/downloads



方式二:也可以直接wget,不过注意解压方式
[root@7node server]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-3.4.9.tgz //////我用这个包有问题,bin下面没有mongo,真是绝了,我用方式一


安装
:用xshell上传到虚拟机root用户的家目录下
[root@c7-o12c-5 ~]# ls
mongodb-linux-x86_64-rhel70-3.4.9.gz ///查看虚拟机已经有这个包了
[root@c7-o12c-5 ~]# tar -xvf mongodb-linux-x86_64-rhel70-3.4.9.gz//解压
[root@c7-o12c-5 ~]# mv mongodb-linux-x86_64-rhel70-3.4.9 mongo///将解压后的文件改个好记的名字
//////或者做软连接# ln ‐s mongodb‐linux‐x86_64‐rhel70-3.4.0/ mongo
[root@c7-o12c-5 ~]# ls mongo
bin GNU-AGPL-3.0 MPL-2 README THIRD-PARTY-NOTICES
[root@c7-o12c-5 ~]# cd mongo
[root@c7-o12c-5 mongo]# pwd

/root/mongo
配置:
[root@c7-o12c-5 mongo]# vim /etc/bashrc///在末尾添加
export PATH=$PATH:/root/mongo/bin
[root@c7-o12c-5 mongo]# source /etc/bashrc
[root@c7-o12c-5 mongo]# which mongo

/root/mongo/bin/mongo
[root@c7-o12c-5 mongo]# mkdir /mongodb/data/db -p
[root@c7-o12c-5 mongo]# mkdir /mongodb/data/log -p



没有启动就用mongo命令连接数据库,会出现以下问题
[root@c7-o12c-5 mongo ]# mongo
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
2017-09-19T08:47:52.805+0800 W NETWORK [thread1] Failed to connect to 127.0.0.1:27017, in(checking socket for error after poll), reason: Connection refused
2017-09-19T08:47:52.809+0800 E QUERY [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:237:13
@(connect):1:6
exception: connect failed
(///如果重启还是出现以上报错,关掉selinux看看,再重新启动,查看进程。)

启动

命令行启动////我不喜欢这个方式

[root@c7-o12c-5 mongo]# mongod --dbpath /mongodb/data/db/ --logpath /mongodb/data/log/mongodb.log --logappend &
[2] 4454
[root@c7-o12c-5 mongo]# ps -ef | grep mongo ////查看启动是否成功
root 2669 2483 1 08:49 pts/0 00:00:10 mongod --dbpath /mongodb/data/db/ --logpath /mongodb/data/log/mongodb.log --logappend
root 4487 2483 0 09:01 pts/0 00:00:00 grep --color=auto mongo

[root@c7-o12c-5 mongo]# mongo ////连接,会出现一些警告,但不是错误!
MongoDB shell version v3.4.9
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.9
Server has startup warnings:
2017-09-19T08:49:30.987+0800 I STORAGE [initandlisten]
2017-09-19T08:49:30.988+0800 I STORAGE [initandlisten] ** WARNING: Using the XFS filesystem is strongly recommended with the WiredTiger storage engine
2017-09-19T08:49:30.988+0800 I STORAGE [initandlisten] ** See http://dochub.mongodb.org/core/prodnotes-filesystem
2017-09-19T08:49:31.463+0800 I CONTROL [initandlisten]
2017-09-19T08:49:31.463+0800 I CONTROL [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-09-19T08:49:31.463+0800 I CONTROL [initandlisten] ** Read and write access to data and configuration is unrestricted.
2017-09-19T08:49:31.464+0800 I CONTROL [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-09-19T08:49:31.464+0800 I CONTROL [initandlisten]
2017-09-19T08:49:31.465+0800 I CONTROL [initandlisten]
2017-09-19T08:49:31.465+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/enabled is 'always'.
2017-09-19T08:49:31.465+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-09-19T08:49:31.465+0800 I CONTROL [initandlisten]
2017-09-19T08:49:31.465+0800 I CONTROL [initandlisten] ** WARNING: /sys/kernel/mm/transparent_hugepage/defrag is 'always'.
2017-09-19T08:49:31.465+0800 I CONTROL [initandlisten] ** We suggest setting it to 'never'
2017-09-19T08:49:31.465+0800 I CONTROL [initandlisten]
> exit
bye
(或者杀死进程,启动时加上—rest,然后浏览器输入:http://localhost:28017)

配置文件启动:

[root@c7-o12c-5 mongo]# cat /mongodb/mongodb.cnf

dbpath=/mongodb/data/db
logpath=/mongodb/data/log/mongodb.log
logappend=true
port=27017
[root@7 c7-o12c-5 mongo]# mongod -f /mongodb/mongodb.cnf &//启动
[root@c7-o12c-5 mongo]# ps -ef | grep mongo
root 5764 2483 1 09:46 pts/0 00:00:23 mongod -f /mongodb/mongodb.cnf --rest
root 6354 2483 0 10:13 pts/0 00:00:00 grep --color=auto mongo

[root@c7-o12c-5 mongo]# tail -n10 /mongodb/data/log/mongodb.log

[root@c7-o12c-5 mongo]# mongo
查看:在网页书填入信息,会自动寻找本机的27017端口存储。
> show dbs  ///数据存在哪个库,开发人员说了算……下面就是进入库查看是否生成数据集合
admin 0.000GB
local 0.000GB

可能遇到的问题:
遇到再说……




原创粉丝点击