部署NodeJs项目到CentOS服务器

  • 安装工具和搭建服务器环境(64位)
  • 本地安装会话管理器(Xshell)
  • 安装NodeJs
  • 安装phantomJs
  • 安装MongoDB
  • 开始部署项目
  • 将NodeJs项目文件通过sftp传输到服务器上
  • forever运行NodeJs项目
  • 可能遇到的问题


安装工具和搭建服务器环境(64位)

  1. Xshell
  2. NodeJs
  3. PhantomJs
  4. MongoDB

本地安装会话管理器(Xshell)

百度搜xshell下载安装就好;
配置好链接信息:IP地址,账号和密码(我用的是root账号),连接后会有个类似windows下命令行的linux的终端;
搭建服务器的环境所用命令都在这个终端;

安装NodeJs

提前在根目录(命令:cd / 进入根目录)下,我新建了个目录software(新建software目录命令:mkdir software),然后进入该目录下(cd software) ;

在NodeJs 官网复制下载链接,我这里使用的是Linux x64
输入命令:

wget https://nodejs.org/dist/v10.15.3/node-v10.15.3-linux-x64.tar.xz

下载完成后解压

tar -xvf node-v10.15.3-linux-x64.tar.xz

此时还不能全局使用node和npm命令
做个软连接

ln -s /software/node-v10.15.3-linux-x64/bin/node /usr/local/bin/node
    
ln -s /software/node-v10.15.3-linux-x64/bin/npm /usr/local/bin/npm

然后再输入node -v 或 npm -v查看是否输出版本号,有则成功;

宝塔面板部署和docker部署的区别 宝塔面板部署nodejs项目_mongodb

安装phantomJs

同样在software目录下

在phantomJs 官网复制下载链接,依然是Linux x64
输入命令:

wget https://bitbucket.org/ariya/phantomjs/downloads/phantomjs-2.1.1-linux-x86_64.tar.bz2

完成后解压,但是我没有安装bzip2(解压会报错),所以安装之后在解压

yum install bzip2.x86_64 

tar -jxvf phantomjs-2.1.1-linux-x86_64.tar.bz2

配置环境变量,输入一下命令后按 i 键进入编辑状态

sudo vi /etc/profile

文件末尾增加如下内容,具体路径按实际情况设置

export PATH=$PATH:/software/phantomjs-2.1.1-linux-x86_64/bin

添加完成后,按 esc 键退出编辑模式,然后按下 shift+: 再输入wq,即可保存并退出

然后执行以下命令,是环境变量生效

source /etc/profile

查看phantomJs版本,输入phantomJs -v查看是否输出版本号,有则成功;

宝塔面板部署和docker部署的区别 宝塔面板部署nodejs项目_NodeJs_02

安装MongoDB

仅限64位的CentOS系统

  1. 创建仓库文件
vi /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/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
  1. 安装
yum install -y mongodb-org
没有权限就在前面加:   sudo

安装完毕后修改配置文件

vi /etc/mongod.conf
修改配置文件的 bind_ip, 默认是 127.0.0.1 只限于本机连接。我需要远程连接数据库,所以安装完成后把这个修改为 0.0.0.0 ,这样通过别的机器就可以连接;
  1. MongoDB 启动、停止、重启命令

启动命令:

service mongod start

停止命令:

service mongod stop

重启命令:

service mongod restart

查看mongoDB是否启动成功(可以通过查看日志文件)

cat /var/log/mongodb/mongod.log

日志文件最后一行应该会出现如下一句说明(则表示启动成功了,端口为 27017

宝塔面板部署和docker部署的区别 宝塔面板部署nodejs项目_NodeJs_03

开始部署项目

将NodeJs项目文件通过sftp传输到服务器上

我这里使用的是 FileZilla Client 软件,百度即可下载;

配置如下

宝塔面板部署和docker部署的区别 宝塔面板部署nodejs项目_NodeJs_04


我将项目放到 /mnt 目录下

forever运行NodeJs项目

进入项目根目录(命令:cd /mnt/cartoon
使用一般命令 node app.js 运行的话,在关闭Xshell后项目服务也会关闭;

//npm全局安装forever
npm install forever -g
可能是我node安装的目录不是默认的,forever不想网上说的默认安装位置在/usr/bin下

手动创建软连接

ln -s /software/node-v10.15.3-linux-x64/lib/node_modules/forever/bin/forever /usr/bin/forever

使用forever启动NodeJs项目

forever start app.js
//关闭命令
forever stop app.js
//重启命令
forever restart app.js

可能遇到的问题

NodeJs项目安装依赖,执行npm install,会报错误,网上查了下,好像是权限什么什么的错误;
执行下面命令

rm -rf ./node_modules //先把node_modules文件全部删掉
npm install --unsafe-perm