[NodeJS] 腾讯云 CentOS7.2 部署 Express+MongoDB 项目

第一次部署应用到服务器上,写这篇文章来记录一下基本的流程,以方便以后忘了可以查看,并希望可以帮到同样有疑惑的朋友。

环境

操作系统: Ubuntu 16.04
腾讯云主机镜像: CentOS 7.2 64位

登录云主机

参考链接: 帮助中心-腾讯云 如何远程登录linux服务器

使用ssh远程登录,也可以用其他的登录,自行选择。
* 连接: ssh -q -l [云服务器登录账号] -p 22 [云服务器的公网IP地址]
* 断开连接: logoutexit

Node.js安装

参考链接: Installing Node.js via package manager

根据需要的版本分别输入:
* Run as root on RHEL, CentOS or Fedora, for Node.js v6 LTS:

curl –silent –location https://rpm.nodesource.com/setup_6.x | bash -

  • Alternatively for Node.js v7:

curl –silent –location https://rpm.nodesource.com/setup_7.x | bash -

  • Alternatively for Node.js 0.10:

curl –silent –location https://rpm.nodesource.com/setup | bash -

然后用管理员身份,安装

yum -y install nodejs


另外下面有个可选项,大意是提示我们安装用npm编译安装包时可能需要的依赖,我一并安装了。

Optional: install build tools
To compile and install native addons from npm you may also need to install build tools:

在终端中输入

yum install gcc-c++ make

或者

yum groupinstall ‘Development Tools’

MongoDB

安装

版本: v3.4.0

参考链接: Install MongoDB Community Edition on Red Hat Enterprise or CentOS Linux

首先配置 yum,新建并编辑

vim /etc/yum.repos.d/mongodb-org-3.4.repo

在其中输入

[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/testing/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc

然后输入如下命令进行安装

sudo yum install -y mongodb-org

如果想要安装其他版本的Mongodb可以点开参考链接里面有更详细的安装指南。

服务管理

service mongod start #启动
service mongod stop #停止
service mongod restart #重启

配置

配置文件路径: /etc/mongod.conf。

若要自己指定数据存储位置和日志的存储位置,我们可以修改MongoDB的配置文件。

举个例子:
若要将数据文件存储在 /home/data/mongo
日志文件存储在 /home/data/log/mongodb.log

注意: 这两个存储的位置要给MongoDB足够的权限来操作,否则会报错

则将配置文件对应部分修改,其他不变

# where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /home/data/log/mongod.log

# Where and how to store data.
storage:
  dbPath: /home/data/mongo
  journal:
    enabled: true

然后,通过指定配置文件启动MongoDB。

mongod -f /etc/mongod.conf

默认会在后台运行,出现信息

about to fork child process, waiting until server is ready for connections.
forked process: 10286
child process started successfully, parent exiting

如果没有后台运行,可以检查配置文件中

# how the process runs
processManagement:
  fork: true  # 这里是不是 true

直接使用命令来后台运行MongoDB

mongod –fork –dbpath [dbpath] –logpath [logpath]

这里 [dbpath] 是数据文件夹的路径,[logpath] 是日志文件的路径。

例如,还是上面的存储位置,
数据文件存储在 /home/data/mongo
日志文件存储在 /home/data/log/mongodb.log

mongod –fork –dbpath /home/data/mongo –logpath /home/data/log/mongodb.log

关闭后台运行

在终端输入

mongo
use admin
db.shutdownServer()

小提示

  1. 启动服务前,先查看一下端口是否被占用,若被占用可以添加 –port 参数来指定端口。

    netstat -ap | grep [port]

  2. 关闭后台运行的指定了其他端口的MongoDB,连接数据库时也要加端口号。

    mongo localhost:port

上传文件

Filezilla 参考文档: FileZilla Documentation

我用的是Filezilla,站点信息填写:

主机: 公网IP
端口: 22
协议: SFTP-SSH File Transfer Protocol
用户名: 云服务器登录账号
密码: 云服务器的公网IP地址

连接后就可以将本地文件上传到云服务器上了。

Express后台运行

使用 forever 让Node.js应用后台执行

安装 forever

npm install forever -g

基本使用

forever –help #帮助,有更详细的命令和参数说明
forever start app.js #启动 app.js
forever stop app.js #关闭 app.js
forever start -l forever.log -o out.log -e err.log app.js

准备就绪

上面的安装和配置都没有问题后,假设app.js为程序入口文件。
只要先后台运行MongoDB

mongod -f /etc/mongod.conf

然后在用forever启动项目

forever start app.js

在浏览器中输入公网IP+端口号,就可以看到页面啦。


以上所有,如有错误,麻烦指出,我会及时更改的。

你可能感兴趣的:(NodeJs,ubuntu,centos,express,mongodb,腾讯云,部署)