CentOS7.x下,安装node+pm2+mongoDB+nginx部署vue项目

本文章参考了qiu_freedom的博客,改动主要在现有版本的更新和自己参考博客搭建遇到的问题(已解决)赋上了说明。

一、购买服务器和远程连接

1.购买服务器和域名

可以选择腾讯或者是其他产商的服务器,购买后会获得服务器ip地址,再购买域名,将域名绑定到ip地址上。

2.下载Xshell和Xftp

Xshell是用来远程连接服务器的,Xftp是用来远程上传文件的(你的项目文件),下载地址: 网址直达,填写姓名和邮件地址后,下载地址会直接发送到你的邮件,个人使用时免费的。

二、安装node

1.在你现在的电脑上看需要的node版本

网址直达
CentOS7.x下,安装node+pm2+mongoDB+nginx部署vue项目_第1张图片
建议选择LTS带Erbium的稳定版。

2.远程下载node

我选择的是Node.js 12.16.0的版本
2.1、首先切换到/usr/local/src使用wget下载

cd /usr/local/src
wget https://nodejs.org/dist/v12.16.0/node-v12.16.0-linux-x64.tar.xz

2.2、解压到当前目录下(或者解压到你想解压的目录)

tar xvf node-v12.16.0-linux-x64.tar.xz

3.创建软链接,设置全局环境变量使node和npm命令可在全局使用

ln -s /usr/local/src/node-v12.16.0-linux-x64/bin/node /usr/local/bin/node
ln -s /usr/local/src/node-v12.16.0-linux-x64/bin/npm /usr/local/bin/npm

通过node -v 命令检测node是否成功安装

三、安装mongoDB

1.首先用你现在的电脑登录mongodb官网的安装说明

链接:网址直达
因为我服务器是CentOS系统,所以选择了RedHat
1.1、 复制画圈的代码
CentOS7.x下,安装node+pm2+mongoDB+nginx部署vue项目_第2张图片
1.2、创建文件,注意对应版本号

vi /etc/yum.repos.d/mongodb-org-4.2.repo

1.3、将复制的内容粘贴,按ESC,:wq保存并退出编辑

1.4、安装MongoDB

sudo yum install -y mongodb-org

1.5、(可选)取消自动升级
新版本出来yum会自动升级,添加以下代码到/etc/yum.repos.d/mongodb-org-4.2.repo文件中

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

1.6、(说明)下面是mongdb默认数据库文件以及日志的指令位置
/var/lib/mongo (the data directory)
/var/log/mongodb (the log directory)
开启mongodb
sudo service mongod start
关闭MongoDB
sudo service mongod stop
重启MongoDB.
sudo service mongod restart

四、配置mongoDB(这里请严格按照步骤)

1.开启mongoDB服务
sudo service mongod start
2.开启数据库
mongo

成功的话,如图:

在这里插入图片描述

3.设置权限和创建权限用户

3.1、创建并切换到admin数据库

use admin

进入admin数据库,有switched to db admin的提示

3.2、 建立一个管理用户的角色amdin

db.createUser({user:"admin",pwd:"admin",roles:[{role:"userAdminAnyDatabase",db:"admin"}]});

前面创建的是管理数据库用户的账号,对于具体的数据库,我们需要对应的用户,所以:

3.3、 创建ta数据库并切换到ta数据库,(ta是指你要创建的数据库名)

use ta

进入ta数据库有switched to db ta的提示,如图:
在这里插入图片描述
3.4、 在ta的数据库下创建用户,分配ta数据库读写的权限

db.createUser({user:'test1',pwd:'test1',roles:[{role:'readWrite',db:'ta'}]})

3.5、 一定要完成上面的步骤后,再开启数据库权限
编辑文件:

vi /etc/mongod.conf

添加如下:(注意缩进,security没有缩进,authorization缩进2个字符)

security:
  authorization: enabled

3.6、 保存并重新启动。(必须)

systemctl restart mongod.service

3.7、 测试数据库
3.7.1、切换到指定数据库

use admin

3.7.2、查看所有数据库

show dbs

CentOS7.x下,安装node+pm2+mongoDB+nginx部署vue项目_第3张图片
3.7.3、(可选)你可能会发现你看不到ta的数据库,因为你这个数据库没有一条数据,所以没显示
3.7.4 、(可选)往ta数据库插入一条数据,再运行show dbs就可以看到了

db.ta.insert({"name":"测试"})

更多关于mongoDB权限配置的,可参考FinelyYang的博客

五、安装nginx

1.下载nginx
yum install nginx
2.开启nginx服务
systemctl start nginx
3.关闭防火墙

查看防火墙状态 firewall-cmd --state

停止firewall systemctl stop firewalld.service

禁止firewall开机启动 systemctl disable firewalld.service

六、安装和配置pm2

1.全局安装pm2
npm install -g pm2
2.从安装的提示中可以看到pm2位置

CentOS7.x下,安装node+pm2+mongoDB+nginx部署vue项目_第4张图片

3.使用以下命令将pm2放入系统路径下就可以了(这样就可以在任何目录使用pm2命令),注意两个路径之间的空格
ln -s /usr/local/src/node-v12.16.0-linux-x64/bin/pm2 /usr/local/bin/

七、部署自己的代码

1.前端vue项目打包
npm run build
2.把打包好的dist文件放入你的后端项目根文件中,结构如图:

CentOS7.x下,安装node+pm2+mongoDB+nginx部署vue项目_第5张图片

3.然后在index.js文件加入如下代码:
const path = require('path');
app.use(express.static(path.join(__dirname, 'dist')));
(可选)4.删除node_modules文件
5.通过Xftp上传到远程服务器的/home文件中
6.在你项目文件下安装依赖包
npm i
7.通过pm2开启项目
pm2 start /home/'你的项目名'

成功运行的图
在这里插入图片描述
(可选)附上一些pm2的常用命令:
启动项目: pm2 start ‘你的文件路径’
查看所有项目: pm2 list
重启项目: pm2 restart ‘项目id’
停止项目: pm2 stop “项目id”
删除项目: pm2 delete “项目id”

八、配置nginx

到了这一步,配置完,你就能在其他电脑访问你的网站了,因为我没弄域名(要备案,太麻烦),所以我就写最简单的配置的nginx,通过公网ip访问,如果你想弄更高级的操作(多页面啥的),你可以看看其他文章
1.修改配置文件

vi /etc/nginx/nginx.conf

2.在http{}里加入如下代码,最好手动输入

server {
     listen 80;
     server_name ‘你的公网ip或者你的域名’;
     location / {
          root /home/‘你的项目名’/dist;
          proxy_pass http://127.0.0.1:3000;
       }
     }

3.保存重启nginx(必须)

systemctl restart nginx.service

九、完成

CentOS7.x下,安装node+pm2+mongoDB+nginx部署vue项目_第6张图片

最后

这是我按照步骤成功的案例,若有更好或者可以优化的地方,可在评论区献上想法,谢谢

你可能感兴趣的:(网络运维,linux,nginx,centos,服务器)