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

1.购买服务器和域名

可以选择阿里云或者是其他的厂商的服务器。然后会获得服务器ip地址,用户名和密码。

购买域名,将域名绑定到ip地址上。

2.下载xshell,winscp

xshell和winscp都是可以用来操控服务器的,比如上传上传文件,修改文件权限等。

一个是有图形化的操作,一个是用代码操控。

我两个都下了,因为我怕xsehll没能操控好的地方,用可视化图形来操控。

连接服务器

打开xshell

二、安装node

参考这篇文章:https://blog.csdn.net/q3585914/article/details/75306447

1.首先切换到/usr/local/src 使用wget下载node文件

cd /usr/local/srcwget https://nodejs.org/dist/v6.11.1/node-v6.11.1-linux-x64.tar.xz

 

如果不知道wget是什么,那就去node官网直接下载tar.xz后缀的文件到自己电脑。

node官网所有版本的下载地址:https://nodejs.org/en/download/releases/

打开winscp连接服务器,连接方式和xshell差不多。

找到root文件夹。把下载的tar.xz文件上传上去。注意要下linux版本的。

2.解压到当前文件夹

打开xsehll我们可以看到是一个撇的路径这就是已经在root目录下了。

注意:如果不是一个撇,通过直接cd回车就可以回到这个root目录下。

不要输入成cd /  变成这样 。这个就不是在root目录下了

解压刚才上传到服务端的文件:

tar xvf node-v6.11.1-linux-x64.tar.xz

3.创建软链接,设置全局环境便令使node和npm命令全局有效

通过创建软链接的方法,使得在任意目录下都可以直接使用node和npm命令:

ln -s /usr/local/src/node-v6.11.1-linux-x64/bin/node /usr/local/bin/node

ln -s /usr/local/src/node-v6.11.1-linux-x64/bin/npm /usr/local/bin/npm

node -v 查看node版本检测是否安装成功。

如果报如下错误:

bash node :command not found

那就需要设置全局环境变量:修改/etc/profile文件使其永久性生效,并对所有系统用户生效。

 vi /etc/profile

  

按键盘j字母移动到最下面一行加上:

export NODE_HOME=/usr/local/src/node-v10.15.0-linux-x64/bin

export PATH=$NODE_HOME:$PATH

然后保存退出,重启,之后node、npm就配置好了

如果不会使用vi命令编辑文件,通过winscp将文件下载到本地,然后使用sublime,vs code等编辑器打开,不要直接记事本打开,编辑保存,上传到服务端。

不要使用记事本直接打开,也不要只用winscp提供的编辑器打开编辑,会造成一些错误,下面会说到。

三、安装mongodb

1.安装

到官网下载,见官网有安装说明。https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/

选择社区版,以及选择合适的linux版本。我的是centOS所以选择了RedHat

安装MongoDB

sudo yum install -y mongodb-org

取消自动升级

新版本出来yum会自动升级,添加以下代码到/etc/yum.repos.d/mongodb-org-3.4.repo文件中

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

下面是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

创建用户

否则不可以可以使用如mongoimport上传数据等一些操作。

原因见:https://www.jianshu.com/p/1404b32432d0

创建一个顶级用户,用于存放所有的用户。

开启mongodb服务:

sudo service mongod start

开启数据库:

mongo

创建admin数据库:

use admin 

建立一个超级用户admin,命令如下:  

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

建立针对某个数据库的用户

admin虽然是超级管理员,但是对具体的数据库,还是需要有对应的用户,用户是和数据库走的,因此还需要建立ta数据库的用户。

use ta

//使用数据库,需要注意的是在建立ta数据库用户的时候一定要先启用ta数据库,否则会出现问题。

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

开启数据库权限:

编辑配置文件: vi /etc/mongod.conf

添加以下:

security:

authorization: enabled

保存并重新启动。

如下错误:是因为我们添加security:authorization: enabled的时候格式没有写对,多试试格式。

ExecStart=/usr/sbin/vsftpd /etc/vsftpd/vsftpd.conf (code=exited, status=2)

重启mongod:

systemctl restart mongod.service

启用 db.auth(用户名,密码),认证登录,认证登录使用数据库:

db.auth('admin', 'admin123')  返回1表示成功

再次执行show dbs

启用ta数据库,查看该数据库集合:

执行 db.auth('test1','test1')  然后再对ta数据库进行相应的操作。 

将winscp上传到服务器中的数据导入到数据库中

mongoimport --host=127.0.0.1 --port 27017 -u 用户名 -p 密码 -d ymall -c users --file /home/web-shop/models/mall-users

四、安装nginx

下载:  yum install nginx

开启nginx服务:systemctl start nginx

要关闭防火墙

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

停止firewall    systemctl stop firewalld.service

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

五、pm2

npm install -g pm2

查询pm2的安装路径 显示是: /usr/local/bin/pm2

whereis pm2

为了可以在任何目录都可以使用pm2命令,我们将此文件夹加入环境变量

ln  -s /usr/local/bin/pm2 /usr/local/bin

六、部署自己代码

参考链接:

https://blog.csdn.net/u014054437/article/details/79981307

https://segmentfault.com/a/1190000012186563

上传项目文件夹:

我选择了服务器中home目录下将自己之前编写的node服务端代码server文件j夹,以及前端的packages.json一起上传。

server文件夹重命名为vue-project。

上传vue文件

npm run build后会生成的dist文件夹,将里面所有文件都拷贝到vue-project下的public目录。

为什么拷贝到public文件夹下呢?

因为自己node使用express框架,并用express-generator生成了项目结构。其中app.js设置了express解析的静态资源路径:

app.use(express.static(path.join(__dirname, 'public')));

也可以是直接将dist文件夹直接上传vue-project。修改app.js

app.use(express.static(path.join(__dirname, 'dist')));

npm install 安装依赖包

开启node服务 node /bin/www,或者是pm2 /bin/www

修改nginx配置

修改配置文件:vi /etc/nginx/nginx.conf

在http{}里添加一个server{}

    server {listen 80;server_name aa.xxxx.com; //自己的一级或者是二级域名location / {
            root   /home/vue-project/public; //app.js中配置的静态资源路径文件夹
            index  index.html index.htm; //主页入口文件proxy_set_header   Host      $http_host;proxy_pass         http://127.0.0.1:5000; //开启的node项目的端口号
            proxy_redirect     off;proxy_set_header   X-Real-IP       $remote_addr;proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;}}

保存重启nginx

systemctl restart nginx.service

关于nginx的报错

检查修改的配置文件是否有错:nginx -t -c /etc/nginx/nginx.conf

报错:nginx: [emerg] unknown directive "#" in  nginx/conf/nginx.conf:5

【原因】:
conf文件被记事本编辑过,保存了含BOM头的文件,(查阅资料所得:类似WINDOWS自带的记事本等软件,在保存一个以UTF-8编码的文件时,会在文件开始的地方插入三个不可见的字符(0xEF 0xBB 0xBF,即BOM)。它是一串隐藏的字符,用于让记事本等编辑器识别这个文件是否以UTF-8编码。对于一般的文件,这样并不会产生什么麻烦。)
【解决】:
用其他编辑器另存为其他编码再保存上传的也解决不了。
最后还是新建了文件,将nginx.conf将内容复制过来,然后将服务端的删掉,本地再上传上去,解决。

原文链接:

https://blog.csdn.net/dafei4/article/details/86562399

https://www.cnblogs.com/djlele/p/6991683.html

https://www.cnblogs.com/jstarseven/p/4683679.html

访问网站

保证mongdb,nginx,node开启,防火墙关闭。

输入域名就可以访问了。

多页面的配置

自己也写了一个多页面,不过使用了xtpl作为模板。

所有的步骤都是一样的,仅在niginx中添加配置的server的时候,有点不同local中不用配置root和 index属性就可以访问到了。不过自己也没有深究,先占坑吧。

    server {listen 80;server_name xxxx.com www.xxxx.com;location / {proxy_set_header   Host      $http_host;proxy_pass http://127.0.0.1:3000;
            proxy_redirect     off;proxy_set_header   X-Real-IP       $remote_addr;proxy_set_header   X-Forwarded-For $proxy_add_x_forwarded_for;}}

最后

自己也是小白,里面有错误之处还请指正。

mongdb添加用户开启权限访问的部分的内容是自己以前看到,然后保存在word里没有记录原链接。还是向原作者表示感谢。

转载于:https://www.cnblogs.com/qiu-freedom/p/10787429.html

centOS7下 安装nodejs+nginx+mongodb+pm2部署vue项目相关推荐

  1. 【安装MongoDB】CentOS7 下安装NodeJs+Express+MongoDB+Redis

    MongoDB,V3.2版本,官网说的很详细,见链接:https://docs.mongodb.com/manual/tutorial/install-mongodb-on-red-hat/ 1.创建 ...

  2. 手把手教你配置:Jenkins+Github+Webhook +Nginx自动化打包部署Vue项目

    前面的话 为了前端项目的工程化,减少项目发布环境的部署,实现自动化打包部署. 传统的做法,在服务器初始一个 git 仓库,然后每次代码更新后,手动去拉取,次数多了也就烦了,而自动化打包部署每次只需在项 ...

  3. docker+nginx重来部署vue项目

    背景介绍 本想按照之前的docker重新过一遍的时候发现有几个坑在上篇没提到.今天重新走一遍. 一.先安装虚拟机(已经有服务器的这一步可以直接跳过) 这里linux镜像用的是阿里的镜像,工具vmwar ...

  4. Docker 方式 部署 vue 项目 (docker + vue + nginx)

    前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1.安装好 nginx . 2. 把 vue 项目的源码克隆到确定目录下.用 git 管理,所以直接 ...

  5. 学习笔记(1)centos7 下安装nginx

    学习笔记(1)centos7 下安装nginx 这里我是通过来自nginx.org的nginx软件包进行安装的. 1.首先为centos设置添加nginx的yum存储库 1.通过vi命令创建一个rep ...

  6. nginx下部署vue项目概览 - (资源篇)

    相关博客: nginx下部署vue项目概览 这里使用的是百度云的服务器,CentOS7系统的 linux服务器用centos还是ubuntu系统_Linux nginx服务器搭建以及配置 nginx部 ...

  7. 宝塔下安装nodejs

    宝塔下安装node.js 部署vue项目,要在宝塔下安装node.js 1.下载 要安装PM2管理器,第一个不好用 2.调配 选择合适的node版本 3.验证 在终端中输入node -v,进行验证 4 ...

  8. 小试牛刀:百度LS轻量服务器+Centos7.9+PuTTY+Nginx,部署Vue项目

    简单将vue项目部署到云服务器上 百度LS轻量服务器 PuTTy 远程登录 防火墙配置与开放端口 Ngnix安装配置 检查是否已经安装了nginx 安装nginx必要的依赖库 gcc pcre zli ...

  9. Ubuntu 下搭建 Nginx 部署 vue 项目

    Ubuntu 下搭建 Nginx 部署 vue 项目 上一篇:Ubuntu 下部署 SpringBoot 第一步: Ubuntu 上安装 nodejs 执行 apt install nodejs 命令 ...

最新文章

  1. 可延迟函数、内核微线程以及工作队列
  2. C++调用web服务(java事例供参考)
  3. 前端学习(1878)vue之电商管理系统电商系统之左侧菜单布局
  4. Android Studio 1.1的安装和遇到的坑
  5. 程序员合同日期不到想辞职_辞职报告怎么写最简单?写清楚理由和时间,签上姓名就OK了...
  6. vim打造成C++的IDE
  7. cv::createTrackbar cv::threshold
  8. 如何在 Mac 上打开和提取 RAR 文件?
  9. asp.net mvc源码分析-Action篇 ParameterDescriptor
  10. 二级python和office哪个难_对于操作office来说,python能与vbs相比吗?谁强谁弱呢?...
  11. 2020 年博客总结
  12. windows多线程同步机制---原子锁
  13. 多御浏览器安卓版有哪些地方值得下载使用?
  14. rxjava背压_Android RxJava :图文详解 背压策略
  15. Vue--Vuex--使用/教程/实例
  16. 欧文分校的计算机科学博士,加州大学欧文分校
  17. web缓存—Squid代理服务
  18. 新GRE考试词汇备考词根:fer
  19. 2023程序员今年的一些现状
  20. 指针与const 深析

热门文章

  1. 111111112222222333333
  2. Tensorflow2.0学习笔记(一)
  3. 无意中参加了infoQ的一期活动,获得了所有奖项,哈哈哈。。。
  4. linux create 函数,creat - Linux C 函数 使用手册
  5. 用Spring Boot Admin来监控我们的微服务
  6. 2021年如何加快百度对新站点的收录呢?
  7. 【百炼】二分法求函数的零点(c语言)
  8. 收藏下一些CSS样式JS特效网站
  9. 基于API调用管理的SDN应用层DDoS攻击防御机制
  10. 前后端分离架构下CSRF防御机制