作为一个自(mo)律(yu)的前端,不能总是依靠后端大佬部署前端项目,自己动手,丰衣足食🤣
云服务器
云服务器有很多:阿里云、腾讯云、天翼云、百度云等,这里推荐阿里云
购买
进入阿里云官网,注册、完善个人信息、学生认证后,可购买大约 10 元/月的云服务器,购买时推荐选择 CentOS 云服务器(以下的操作基于 CentOS)
注意
- 购买服务器时,你会给服务器设置用户名和密码,记住用户名和密码,接下来会用到
- 购买服务器后,你可以查看所购买的云服务器的相关信息,有一个公网 ip 的东西,接下来也会用到
SSH 连接云服务器
SSH 软件选择
- 如果你使用的系统是 Windows,推荐使用 Xshell
- 如果你使用的系统是 MacOS,推荐使用 Termius
- 如果你使用的系统是 Linux,那你大概率是个大佬,无需推荐
Xshell
-
点击链接填写邮箱申请家庭/学校免费版
-
下载安装后看到如下界面
-
点击左上角 “文件” -> “新建”,弹出如下窗口
-
开始输入:名称可以自定义,协议默认 SSH,主机输入你购买的云服务器的公网 ip,端口号默认 22
-
点击“用户身份验证”,输入你购买云服务器时设置给该服务器设置的用户名和密码,然后点击“确定”或者“连接”都可以。注意,不是你的阿里云账号密码,是云服务器的用户名和密码
-
随后你可以看到这个界面,说明连接成功。左侧的会话是你设置好的连接列表,双击即可进行连接
Termius
- 价格过于昂贵,学生党推荐使用破解版,如果经济允许就上正版,支持正版
- 打开软件,看的如下界面
- 点击 “+ NEW HOST"
- 右侧出现如下界面,按步骤操作
- 保存后, 在 HOSTS 页面可以看到你设置好的 HOST
- 双击设置好的 HOST 即可进行连接
注意
使用 SSH 软件连接成功后,接下来的操作与你使用什么 SSH 软件无关,当然你也可以使用在接下来我们要安装的宝塔里面的终端功能。不过我使用的系统是 MacOS,所以有关 SSH 的操作都是在 Termius 上进行
安装服务器环境
你可以把云服务器想象成一台远程电脑,这样子会好理解一些。所以你要给一台“新电脑”安装环境,才能让你的项目在“新电脑”跑起来,就像你的项目在你的电脑运行时也需要安装环境一样
安装宝塔
宝塔是一个很好用的服务器运维面板,使用宝塔可以很方便的管理云服务器的资源
- 复制 CentOS 那条命令到你连接好的服务器终端,回车,按提示操作即可
- 安装成功后记得在最后你会看到宝塔的账号密码,是随机生成的,先把账号密码记下来,然后要记得你需要进入宝塔界面修改账号密码
- 安装成功后你也会看到宝塔的外网链接、内网链接,打开外网链接,你会发现根本打不开这个界面,因为宝塔的端口是 8888,但是你还没有在服务器的安全组设置这个端口,因此,进入阿里云控制台,找到 云服务 ESC,进入你的云服务器实例
- 进去后,给安全组添加 8888 端口
- 保存后,再刷新宝塔的链接,应该就能打开了
- 登陆宝塔后,修改用户名和密码,完善信息
安装 node 和 npm
下载压缩包
建议下载最新稳定版,如果版本过低会造成后面 pm2 无法正常运行
wget https://nodejs.org/dist/v12.19.0/node-v12.19.0-linux-x64.tar.xz
注意:node 压缩包已经包含了 npm 了
解压
tar -xvJf node-v12.19.0-linux-x64.tar.xz
配置环境变量
- 打开文件
vim /etc/profile
-
按
i进入编辑模式 -
到文件底部输入下面两行,注意
/root/node-v12.19.0-linux-x64是我的安装路径,实际安装路径根据自己的设置来
export NODE_HOME=/root/node-v12.19.0-linux-x64
export PATH=$PATH:$NODE_HOME/bin
-
输入完成后,按
Esc退出编辑模式,然后输入:wq回车保存 -
执行下面命令将环境变量生效
source /etc/profile
- 将目录软链接到全局环境下,前面
/root/node-v12.19.0-linux-x64/bin/node和/root/node-v12.19.0-linux-x64/bin/npm根据自己设置的路径输入,后面/usr/local/bin/node、/usr/local/bin/node这两个是固定的
ln -s /root/node-v12.19.0-linux-x64/bin/node /usr/local/bin/node
ln -s /root/node-v12.19.0-linux-x64/bin/npm /usr/local/bin/npm
- 避免使用包的命令时可能会提示找不到命令(固定写法)
echo -e "export PATH=$(npm prefix -g)/bin:$PATH" >> ~/.bashrc && source ~/.bashrc
- 配置完成,输入
node -v和npm -v检查是否配置成功,看到下图所示即配置成功
安装 MongoDB
下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-4.0.21-rc0.tgz
解压与重命名
// 解压
tar xvf mongodb-linux-x86_64-4.0.21-rc0.tgz
// 重命名解压后得到的文件夹为 mongodb,方便接下来的配置
mv mongodb-linux-x86_64-4.0.21-rc0 mongodb
创建数据和日志存放目录
这里创建的文件路径可以自己设置
mkdir /www/local/mongodb/data
mkdir /www/local/mongodb/logs
- 在本地创建一个 mongodb.conf 文件,这是 mongodb 的脚本文件,输入下面的内容,保存
#端口号(默认的端口号是27017,这里修改也是为了安全性)
port = 20411
#数据目录(指向刚才创建的数据文件目录)
dbpath = /www/local/mongodb/data
#日志目录(指向刚才创建的日志目录,并指定mongodb.log文件名,系统会自动创建)
logpath = /www/local/mongodb/logs/log.log
#设置后台运行
fork = true
#日志输出方式(写日志的模式:设置为true为追加。默认是覆盖。如果未指定此设置,启动时MongoDB的将覆盖现有的日志文件。)
logappend = true
#对外开放端口(默认是127.0.0.1)
bind_ip = 0.0.0.0
- 将保存后的文件上传到 mongodb 数据库的目录下,我的是
/root/mongodb,然后进入数据库bin目录
cd /root/mongodb/bin
- 运行命令,启动 MongoDB
./mongod --config ../mongodb.conf
- 进入数据库
./mongo --port=20411
- 切换到 admin 数据库
use admin
- 设置数据库管理员,用户名和密码自定义
db.createUser({user:"root",pwd:"123456",roles:[{role:"userAdminAnyDatabase",db:"admin"}]})
- 退出数据库,查看数据库进程
ps aux |grep mongodb
- 杀死进程
kill -9 xxxx
- 修改 mongodb.conf,开启验证,再次上传
#端口号(默认的端口号是27017,这里修改也是为了安全性)
port = 20411
#数据目录(指向刚才创建的数据文件目录)
dbpath = /www/local/mongodb/data
#日志目录(指向刚才创建的日志目录,并指定mongodb.log文件名,系统会自动创建)
logpath = /www/local/mongodb/logs/log.log
#设置后台运行
fork = true
#日志输出方式(写日志的模式:设置为true为追加。默认是覆盖。如果未指定此设置,启动时MongoDB的将覆盖现有的日志文件。)
logappend = true
#开启认证(默认是flase,不需要认证的,这里开启认证是为了安全性)
auth = true
#对外开放端口(默认是127.0.0.1)
bind_ip = 0.0.0.0
- 再次启动、进入数据库
./mongod --config ../mongodb.conf
./mongo --port=20411
- 切换到 admin 数据库
use admin
- 验证数据库,结果为 1 即成功验证
db.auth("root","123456")
使用 Navicat 连接远程数据库
生产环境下不建议使用 Navicat 对数据库进行直接的增删改
部署 Node 项目
ftp 上传项目
将你的 Node 项目除了 node_modules 文件夹之外的所有文件上传至服务器的一个指定文件路径,因为 node_modules 文件夹一般很大,我们可以通过 npm install 安装
例如:
安装 pm2
npm install -g pm2
进入项目所在目录
这里的目录根据自己的路径来
cd /www/server/node/cloud
安装依赖
npm install
启动项目
pm2 start ./bin/www
大功告成!