在阿里云服务器上部署基于PM2和mongose的Node项目

标签: 阿里云  node  PM2

前言

最近工作不是很忙,在空闲时间学习用node+express搭建自己的个人博客。目前进度大概进行到一半了,等不及想部署上线看下效果(学习阶段的人总是很兴奋,有一点点小成果就想马上看看 =_=!)。 
于是买了个阿里云服务器和域名,自己尝试来部署一下,捣鼓了两天终于捣鼓好了,这里来记录一下,以免后面又忘了。博客地址:www.itzoujie.com

参考:

阿里云帮助文档: 部署Node.js项目(CentOS) 
推酷文章 
简书文章 
segmentfault文章 
pm2使用方法

一、买服务器

比较穷,选了最低配的。30/月,1核,1G内存,1M带宽,操作系统:CentOS 7.2 64位。作为一个从来没有解除过阿里云的菜鸟,这两天真是踩了无数坑,不过也学到了很多东西。

二、开始捣鼓,来看看怎么部署。

网上的教程很多,但还是想自己来写一下,这样自己好理解,也能加深记忆。首先远程链接,阿里云的远程连接功能不会用,输入用户名后然后输入登录密码,总是输入不完就跳了,不知道咋回事。因为服务器系统是Linux的,我电脑是windows 7的系统。如果服务器是windows server的系统可以使用电脑的远程桌面连接,这里就不细说了,不会的上网搜一下就行了。windows远程连接Linux网上说有两种常用的远程连接工具:Putty和Xshell,我选择的是Xshell。

1、远程连接服务器

下载Xshell 并安装,打开软件你会看到会话框:

打开Xshell连接软件

点击新建并设置和填写如下信息:

设置Xshell连接

填好后先不要点确定,点击左侧树状图中“用户身份验证”,填写信息:

设置Xshell连接

然后点击确定后,就会像上面第一张图显示的,然后点击连接,连接成功如图显示:

链接成功

2、安装Node.js

按照阿里云帮助文档: 部署Node.js项目(CentOS) 教程中步骤2操作(linux系统指令大全);

(1)、wget命令下载Node.js安装包。

该安装包是编译好的文件,解压之后,在bin文件夹中就已存在node和npm,无需重复编译。

wget https://nodejs.org/dist/v6.9.5/node-v6.9.5-linux-x64.tar.xz
  • 1
(2)、解压文件。
tar xvf node-v6.9.5-linux-x64.tar.xz
  • 1
(3)、软件默认安装在/root/node-v6.9.5-linux-x64/目录下。如果需要将该软件安装到其他目录(如:/opt/node/)下,请进行如下操作:
mkdir -p /opt/node/
mv /root/node-v6.9.5-linux-x64/* /opt/node/
rm -f /usr/local/bin/node
rm -f /usr/local/bin/npm
ln -s /opt/node/bin/node /usr/local/bin/node
ln -s /opt/node/bin/npm /usr/local/bin/npm
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
(4)、查看node.js和npm版本:
node -v
npm -v
  • 1
  • 2

完成以上步骤node.js就算安装成功了

3、安装mongodb

参考 简书文章

软件安装位置:/usr/local/mongodb 
数据存放位置:/var/mongodb/data 
日志存放位置:/var/mongodb/logs

(1)、进入 /usr/local/:

cd /usr/local

(2)、安装mongodb:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.5.tgz
  • 1

其他版本链接可以去官网查看 
mongodb版本选择

(3)、解压安装包,并重命名文件夹为mongodb
tar zxvf mongodb-linux-x86_64-3.4.5.tgz
mv mongodb-linux-x86_64-3.4.5 mongodb
  • 1
  • 2
(4)、创建数据和日志存放目录
mkdir /var/mongodb
mkdir /var/mongodb/data
mkdir /var/mongodb/logs
  • 1
  • 2
  • 3
(5)、设置开机启动项

打开rc.local文件,添加CentOS开机启动项: 
不熟悉linux命令的可以参考:linux系统指令大全

vim /etc/rc.d/rc.local
  • 1

打开文件后输入‘i’启用编辑。将mongodb启动命令追加到本文件中,让mongodb开机自启动:

/opt/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork
  • 1

设置开机启动项

按 Esc 退出编辑,输入 :wq (冒号wq),回车保存并关闭文件。

保存并关闭文件

(6)、手动启动mongodb
/opt/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork
  • 1

数据库安装和启动已完成,下面安装pm2

4、安装pm2

(1)、通过npm全局安装:
npm install pm2 -g
  • 1

这个时候使用 pm2 -v 查看版本可能会报错,需要设置一下环境变量

(2)、设置环境变量

使用 vim 命令打开文件 /etc/profile

vim /etc/profile
  • 1

同样,按‘i’启动编辑,将pm2的路径添加到环境变量中;

pm2路径

PATH=$PATH:/opt/node/lib/node_modules/pm2/bin
  • 1

添加环境变量

保存退出之后输入:source /etc/profile 可以让变量生效。

5、上传项目

上传项目使用的是Xftp

(1)、下载

下载Xftp

(2)、连接服务器

如果已经安装,可以点击Xshell中‘新建文件传输’,直接链接到服务器(前提是Xshell已连接); 
手动配置连接和Xshell差不多:

配置Xftp链接

(3)、上传项目目录

参考 
我把代码上传到了/home目录文件夹下。

这里写图片描述

6、启动项目

(1)、使用pm2启动项目

控制台进入存放代码的目录,和本地操作类似,本地使用node /bin/www 启动项目,这里换成pm2 start /bin/www ; 
项目启动成功后就可以使用 IP:端口 号访问了。IP是你服务器的公网IP,端口号是你代码中设置的监听端口。

三、结束

至此,部署过程全部结束,我也是小白,从来没碰过linux,实际操作中也遇到了各种问题。但是多尝试,多搜索,细心一点一般都能部署成功。写个博客记录一下部署过程,好记性不如烂笔头,以后忘记了查一下博客很快就能弄明白。也希望能够帮助其他刚接触linux部署的小伙伴。这个博客也不算是原创,自己有点懒,文笔也不好,算是其他博友的教程,各位可以随意转载。

版权声明:本文为itKingOne原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/itKingOne/article/details/78706875

智能推荐

在阿里云服务器上部署Jekyll博客

Step 0 首先买一台服务器,并且装好环境 我都是在阿里云上面买,而且我只是想挂一个个人网站,所以只需要最便宜的轻量应用服务器就好,半年只需要72块钱。(我现在想来,之前也应该买香港的服务器,因为更加便宜(大陆的要60块一月),而且不需要给服务器备案,想起我当时备案还弄了好久)。另一方面来说,大陆访问香港的服务器确实会比较慢。 安装环境主要是安装Ruby和Jekyll的环境,如果是在mac上面,...

在CentOS使用宝塔使用pm2部署node的express项目

对于前端开发人员来说,配置后端服务器的工作都是脑瓜疼的,好在宝塔这种可视化工具还是挺好用 在部署上线前,假设你的项目已经写好的了。   我的是node的express项目,只写了几个简单的接口,没有用到sql数据库 1. 在宝塔上添加新的站点 2. 打包你的项目到站点目录下(我的放在根目录下) 3. 安装pm2 4.点击设置打开pm2配置环境 4.1选择node的版本跟安装依赖 5.配置...

在阿里云服务器上部署java项目(三)

在安装好Tomcat和MySQL之后,最关键的是安装jdk,在这里我推荐安装jdk8。 下载jdk8.0 点击下方链接,进入jdk8下载页面 https://www.oracle.com/technetwork/java/javase/downloads/java-archive-javase8-2177648.html 根据自身linux系统位数以及安装方式选择格式,我这里选择的是x64.tar...

小白第一次在阿里云服务器上部署web项目

做web项目开发的时候,以前都是大牛把框架搭建好,自己往里面写代码。久而久之,小白也想自己搭框架,自己在服务器上部署。所以在本地搭建了一个基于NetBeans+spring+Mybatis+MVC 的web项目框架,搭建过程可参考之前的博客。 传送门【web项目搭建】 项目搭建好了,就想在服务器上试试手,然后就申请了阿里云服务器的免费试用一个月(穷)。 1、阿里云服务器的申请 首先是登录官网,注册...

阿里云CentOS系统nodejs部署、应用、起服务和pm2,阿里云内网入方向规则配置

最近学习nodejs,公司也有部分项目是nodejs部署的,所以买了个阿里云的服务器,自己部署和搭建一个服务器; 以下是部署过程: 连接服务器之后,我们进入的是root的目录下面 1:wget命令下载Node.js安装包。该安装包是编译好的文件,解压之后,在bin文件夹中就已存在node和npm,无需重复编 2:解压下载的文件 3:全局node和npm 使其在任意位置都可以用 4:查看node和n...

猜你喜欢

Linux环境下配置和安装hadoop及hadoop集群搭建(VMware)

文章目录 一、安装准备 二、hadoop的配置 1.首先配置hadoop-env.sh 2.配置core-site.xml 3.配置hdfs-site.xml 4.配置mapred-site.xml 5.配置yarn-site.xml 6.配置slaves 7.配置hadoop环境变量 三、格式化HDFS 四、启动hadoop 五、集群搭建 1.克隆虚拟机 2.配置免密登录 3.修改主机器的配置文...

使用QProcess打开和关闭第三方应用,比如CMD

使用QProcess打开和关闭第三方应用,比如CMD 注意: 很多教程不一定是对的,但我这篇绝对是对的,因为我踩坑过啊。 为了节省时间,直接上图、上代码,so easy! 重要事情说3遍: 杀死进程,一定要加/F 和 /T 杀死进程,一定要加/F 和 /T 杀死进程,一定要加/F 和 /T 开始 验证下,打开任务管理器就能看到 总结 从上面看,是不是很简单,taskkill不知道是啥,是windo...

自定义View实现注销图案的加载动画

先看效果图: 有那味了。。。(懂得都懂^ ^ √) 我们先来分析一下怎么画,然后再研究怎么让他动起来 这个View是由内部的注销图案和外面一圈圆环构成。而内部的注销图案又是由一个基本满角度的圆弧和一根竖线组成 一、绘制内部注销图案 首先初始化画笔和圆弧的外切矩形: 圆弧的中心是View的中心,坐标为(getWidth()/2,getWidth()/2),半径设置为getWidth/4,...

vue3使用vue-count-to组件

项目场景: 数据可视化大屏开发的过程中,需要实现一种滚动数字的效果,在使用vue2时,使用vue-count-to完全没有问题,功能也比较完善(滚动时长,开始值,结束值,前缀,后缀,千分隔符,小数分隔符等等),但是在vue3中使用会出现问题。 展示的效果 问题描述: 出现的错误时 == Cannot read property ‘_c’ of undefined== 这是一...

【java设计模式】中介者模式

步骤一:创建 中介者 Mediator 步骤二:建立具体中介者 实现者 步骤三:建立同事类接口 User 步骤四:建立同事类的具体实现类 步骤五:测试...