平常做完项目都很少自己部署,但是感觉作为一个开发者不会部署有点过不去,于是询问了身边的小伙伴一波,做出以下总结。
一、概述
本文将从以下三个个方面来讲解:
配置oneinstack
将nodejs项目上传至服务器
使用pm2运行nodejs项目
二、具体步骤
1、拥有自己的服务器
先到阿里云买一台学生机,买完以后记得到控制台重置密码,密码设置的尽可能的复杂;
2、下载Xshell
之后需要到Xshell官方网站下载XShell;
3、 oneinstack配置web环境
用oneinstack配web环境,具体配置如下:
4、 XShell连接远程主机
配置完以后,XShell连接远程主机;
5、更新系统软件
连接完成之后, XShell
控制台上的小红点会变成小绿点,显示小绿点即表示连接成功,如果还是小红点则说明连接失败,需重返检查下原来的配置是否有错误,及时纠正。
成功连接后, XShell
控制台输入yum update -y
来更新系统软件,更新完成之后,将第三步 oneinstack
最底部生成的安装命令粘贴继续粘贴进控制台,稍等片刻,将完成重置和登录。
6、在服务器上安装node环境
登录之后,我们需要在服务器安装一个node环境。这里需要注意的一点是,如果需求没有很大的话,用命令yum install -y nodejs
在 XShell
控制台即可直接安装,但是 XShell
里面的版本是在比较低,比如我安装的时候是 10.21.0
,实际上 node
已经出到14版本了,所以建议是手动安装。接下来讲解在服务器手动安装最新版本nodejs环境的做法:
①首先需要在本地下载nodejs最新版本,在node官网下载服务器能够运行的版本,因为我的是centOS系统,选择linux Binaries(x64)。
PS :不要像我一样傻以为是在本地安装一个 node
环境,本地的 node
环境和远程的 node
环境完全不是同一个东西。
②在本地下载完成后,需要将安装包(即压缩包文件)复制到服务器里面,如何复制呢,这个根据个人需求传到服务器对应的路径下。( windows
系统推荐使用winscp软件或者Xftp软件进行上传,速度很快)
③上传后,在服务端进行解压,这里需要用命令行在XShell里面进行解压。(注意:node-v14.15.4-linux-x64.tar.xz是你node安装包的名字)
解压思路是:需要先将xz文件解压成tar文件,之后将tar文件解压成文件夹完成解压
xz -d node-v14.15.4-linux-x64.tar.xz
tar -xvf node-v14.15.4-linux-x64.tar
④解压后,将node文件夹下的所有内容复制到/usr/local/node,配置环境变量。这里路径/usr/local/node下的node文件需要新建,用mkdir -p 路径名
可以直接建立路径下的文件夹。
⑤配置环境变量。linux的环境变量文件是/etc/profile,可执行文件在/usr/local/node/bin里,所以要把这个路径加入到这个环境变量文件中。
vi /etc/profile
输入命令后进入界面,再输入i进入编辑模式,PageDown到最后一行,不换行,添加环境变量。
: /usr/local/node/bin
⑥保存退出。
ESC
Shift zz
⑦保存退出后执行如下命令,将环境变量生效。
source /etc/profile
⑧装完之后node -v
查看版本号是否一一对应。
7、部署项目到服务器上
安装完 node
环境,接下来需要把我们的项目部署到服务器上。(这里介绍从 git
上拉项目到服务器上)
①先到 /home
下面创建一个属于你自己用户名的文件夹,比如名字为 monday
,那么就会有 /home/monday
,之后把自己的项目文件克隆到monday文件下,为 /home/monday/project-name
。
②进入自己用户名的文件夹,git clone
你的项目地址,之后 npm i
。
③上传 nodejs
项目后,配置数据库。
8、安装pm2并启动nodejs项目
①使用npm全局安装pm2:npm install pm2 -g
;
②进入nodejs项目目录,我把项目上传到了 /home/monday/project-name
,所以,输入cd /home/monday/project-name
的项目目录回车,进入项目目录启动nodejs项目,看个人对自己项目的设计来决定启动方式,我的是npm run prd
;
③检查nodejs项目是否启动:输入pm2 list回车,如果出现下面的列表,就说明 nodejs
项目已经顺利在后台建立了服务。
至此,我们就把服务启动起来啦!
三、快捷指令
1、linux的常用命令
- rm -rf 目录 删除目录
- cp -R conf.example conf 复制conf.example(已存在文件)为conf(未存在)
- curl http://www.linux.com 用于测试一台服务器是否可以到达一个网站
- ①yum install screen -y;②screen -S lnmp 用于解决连接非正常中断,重新连接会话
2、pm2的常用命令
- pm2 list——查看进程列表
- pm2 restart 0——重启服务
- pm2 stop 0——停止服务
- pm2 delete 0——停止后要对进程进行删除
- pm2 info 0——可以查看当前进程的所有信息以及一些录像
- pm2 log 0——查看日志
- pm2 monit——监控进程列表