部署vue项目、安装mongodb

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了部署vue项目、安装mongodb相关的知识,希望对你有一定的参考价值。

参考技术A 一、node运行环境

1、npm install -g n  

通过npm 全局安装node

2、 sudo n 8.16.0 

设置node版本

Password:

install : node-v8.16.0

mkdir : /usr/local/n/versions/node/8.16.0

fetch : https://nodejs.org/dist/v8.16.0/node-v8.16.0-darwin-x64.tar.gz

######################################################################## 100.0%

installed : v8.16.0

3、node -v

v8.16.0

二、安装mongodb

1、brew tap mongodb/brew

2、brew install mongodb-community

=> Installing mongodb-community from mongodb/brew

==> Downloading https://fastdl.mongodb.org/osx/mongodb-macos-x86_64-4.2.5.tgz

######################################################################## 100.0%

==> Caveats

To have launchd start mongodb/brew/mongodb-community now and restart at login:

brew services start mongodb/brew/mongodb-community

Or, if you don't want/need a background service you can just run:

mongod --config /usr/local/etc/mongod.conf

==> Summary

🍺  /usr/local/Cellar/mongodb-community/4.2.5: 21 files, 305.9MB, built in 7 minutes 4 seconds

(base) mengfaniaodeMBP:homebrew-core mengfanxiao$ cat usr/local/etc/mongod.conf

cat: usr/local/etc/mongod.conf: No such file or directory

(base) mengfaniaodeMBP:homebrew-core mengfanxiao$ brew services start mongodb/brew/mongodb-community

==> Successfully started `mongodb-community` (label: homebrew.mxcl.mongodb-community)

3、启动/停止

brew services start mongodb-community

brew services stop mongodb-community

4、配置

配置文件:/usr/local/etc/mongod.conf

日志目录路径:/usr/local/var/log/mongodb

数据目录路径:/usr/local/var/mongodb

5、端口

三、问题梳理

1、环境问题

node -v

dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.64.dylib

Referenced from: /usr/local/bin/node

Reason: image not found

Abort trap: 6

说明node相关库已被损坏 需要重新安装

卸载node 

brew uninstall --ignore-dependencies node icu4c

Uninstalling /usr/local/Cellar/node/13.5.0... (4,663 files, 59.1MB)

node 12.12.0 is still installed.

Run `brew uninstall --force node` to remove all versions.

安装node

brew install node 

通过这种方式安装的是最新版本的node 但很容易出现版本不兼容问题 所以不推荐这么安装 建议安装node8 该版本比较稳定 很少出现与其他软件不兼容情况 

2、文件创建权限问题

==> Installing dependencies for node: icu4c

==> Installing node dependency: icu4c

==> Downloading https://mirrors.aliyun.com/homebrew/homebrew-bottles/bottles/icu4c-64.2.mojave.bottle.tar.gz

######################################################################## 100.0%

==> Pouring icu4c-64.2.mojave.bottle.tar.gz

Error: Failed to create /usr/local/opt/icu4c

Things that depend on icu4c will probably not build.

Could not symlink .

/usr/local/opt is not writable.

==> Caveats

a、创建文件夹

sudo mkdir  /usr/local/opt

 b、root用户赋予当前用户操作该文件夹权限

此时该文件夹权限属于root 给mengfanxiao账户赋予权限

chown -R mengfanxiao /usr/local/opt

3、插曲 springboot启动问题 

dea启动spring-boot,报java.lang.NoClassDefFoundError: javax/servlet/ServletContext错误

<dependency>

<groupId>org.springframework.boot</groupId>

<artifactId>spring-boot-starter-tomcat</artifactId>

<scope>provided</scope>

</dependency>

把scope注释掉即可

maven中三种classpath

编译,测试,运行

1.compile: 默认范围 ,编译测试运行都有效

2.provided:在编译和测试时有效

3.runtime:在测试和运行时有效

4.test:只在测试时有效

5.system:在编译和测试时有效,与本机系统关联,可移植性差

4、环境不匹配问题

Node Sass does not yet support your current environment: OS X 64-bit with Unsupported runtime (79)qi

卸载重装(最新版本的node-sass)即可:

npm uninstall node-sass -D

npm install node-sass -D

5、版本冲突问题 node和mongodb版本不兼容

mongodb-core@1.2.31 requires a peer of kerberos@~0.0

node -v    v13.12.0

npm -v    6.14.4

gyp ERR! command "/usr/local/Cellar/node/13.12.0/bin/node" "/usr/local/lib/node_modules/npm/node_modules/node-gyp/bin/node-gyp.js" "rebuild"  gyp ERR! cwd /Users/mengfanxiao/Documents/project/company/wechain/questionnaire/node_modules/leveldown

gyp ERR! node -v v13.12.0

gyp ERR! node-gyp -v v5.1.0

gyp ERR! not ok

npm WARN mongodb-core@1.2.31 requires a peer of kerberos@~0.0 but none is installed. You must install peer dependencies yourself.

这种情况需要安装node8

brew search node

==> Formulae

libbitcoin-node     node                node-sass           node@12             nodebrew            nodenv

llnode              node-build          node@10             node_exporter ✔     nodeenv

如果有node8 

则 brew install node@8

然后brew link --overwrite --force node@8

没有node8 

npm install -g n

sudo n 8.16.0

安装了node8版本

npm install

> leveldown@1.7.2 install /Users/mengfanxiao/Documents/project/company/wechain/new/questionnaire/node_modules/level/node_modules/leveldown

> prebuild-install || node-gyp rebuild

added 42 packages from 44 contributors in 20.79s

6、安装mongodb问题

    

brew install mongodb

Error: No available formula with the name 'mongodb'

MongoDB不再是开源的了,并且已经从Homebrew中移除 #43770

安装MongoDB社区服务器的最新可用生产版本(包括所有命令行工具)。这将安装MongoDB 4.2.x:

$ brew install mongodb-community

安装MongoDB社区服务器和命令行工具的最新4.2.x生产版本:

$ brew install mongodb-community@4.2

安装MongoDB社区服务器和命令行工具的最新4.0.x生产版本:

$ brew install mongodb-community@4.0

安装MongoDB社区服务器和命令行工具的最新3.6.x生产版本:

$ brew install mongodb-community@3.6

仅安装最新的mongoshell以连接到远程MongoDB实例:

$ brew install mongodb-community-shell

vue-打包上线

部署阿里云( centos  +  nodejs + mongodb + vue)

    vue 打包->dist    copy -> node项目>public   -> 服务器上
    前端工程|后端工程|库文件 -》 云服务上面


    服务器类型:  部署阿里云(centos + nodejs + mongodb + vue)
二、使用finalShell连接服务器
        1. 安装 finalShell
        2. 启动 finalShell
            新建会话:
                主机:公网IP
                端口 : 22
                用户身份验证:
                    用户名:root
                    密码: 登录密码
三、給服务器安装环境(node + vue访问json)
        
        1、安装node 
            curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
            yum install -y nodejs
            检测: node -v  

    四、上传代码(前端|后端)
        1. 创建空的node环境:      express -s .
        2. vue 打包:          npm run build  -> dist
        3. dist里面的文件  copy -> 空node 项目的 public下面
        4. 把node项目 -》 拖拽到 finalSheel>/usr/local/创建目录/
        5. http://公网ip:3000
            问题:服务器代码数据库都已上传,但是访问不了
            分析: 很可能是3000端口不能被使用, 需要添加"安全组规则"
            解决: 找到管理->安全组-》配置规则-》添加规则-》端口范围(3000/3000),授权对象(0.0.0.0/0)

            
            问题: finalSheel关闭后:服务停止 浏览器就不可以访问了

            解决: 
                    npm i pm2 -g
                    cd /usr/local/你的目录
                    pm2 start ./bin/www 

            浏览器访问项目即可
                ip地址:3000

技术图片

技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片
技术图片

部署阿里云( centos  +  nodejs + mongodb + vue)

    vue 打包->dist    copy -> node项目>public   -> 服务器上
    前端工程|后端工程|库文件 -》 云服务上面


    服务器类型:  部署阿里云(centos + nodejs + mongodb + vue)


    简洁:
    ----------------------------------
    一、买服务器(机器)
        1. 学生特惠24:
            https://promotion.aliyun.com/ntms/act/campus2018.html?spm=5176.230344.1224685.2.3b84443e9LLgUu
            云服务器ECS
            root/@Root123

            普价:
                https://promotion.aliyun.com/ntms/act/qwbk.html?spm=5176.8112568.420890.1.7e469ed538CFBL
        2.  支付宝-》注册-》实名认证填写身份证的信息-》ecs
        3.  重设密码(登录密码):  
                ecs服务器->实例->更多->重置实例密码
                用户名默认: root
                重启实例 @Root123
    二、使用finalShell连接服务器
        1. 安装 finalShell
        2. 启动 finalShell
            新建会话:
                主机:公网IP
                端口 : 22
                用户身份验证:
                    用户名:root
                    密码: 登录密码

    三、給服务器安装环境(node + vue访问json)
        
        1、安装node 
            curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
            yum install -y nodejs
            检测: node -v  

    四、上传代码(前端|后端)
        1. 创建空的node环境:      express -s .
        2. vue 打包:          npm run build  -> dist
        3. dist里面的文件  copy -> 空node 项目的 public下面
        4. 把node项目 -》 拖拽到 finalSheel>/usr/local/创建目录/
        5. http://公网ip:3000
            问题:服务器代码数据库都已上传,但是访问不了
            分析: 很可能是3000端口不能被使用, 需要添加"安全组规则"
            解决: 找到管理->安全组-》配置规则-》添加规则-》端口范围(3000/3000),授权对象(0.0.0.0/0)

            
            问题: finalSheel关闭后:服务停止 浏览器就不可以访问了

            解决: 
                    npm i pm2 -g
                    cd /usr/local/你的目录
                    pm2 start ./bin/www 

            浏览器访问项目即可
                ip地址:3000
         
    ----------------------------------




    高级:

    ----------------------------------
    一、买服务器(机器)
        1. 成人特惠: https://promotion.aliyun.com/ntms/act/qwbk.html?spm=5176.8112568.420890.1.67ae9ed5edEDHe
           云服务器ECS
        2.  支付宝-》注册-》实名认证填写身份证的信息-》ecs
        3. 手动停止服务器 ----> 初始化磁盘 ---> 重设密码(登录密码)
    二、使用finalShell连接服务器
        1. 安装 finalShell
        2. 启动 finalShell
            新建会话:
                主机:公网IP
                端口 : 22
                用户身份验证:
                    用户名:root
                    密码: 登录密码
    三、給服务器安装环境(node + mongodb)
        1、安装node 
            curl --silent --location https://rpm.nodesource.com/setup_10.x | sudo bash -
            yum install -y nodejs
            检测: node -v  

                使用NVM安装多版本(可选)
                2.1    yum install git
                2.2    git clone https://github.com/cnpm/nvm.git ~/.nvm && cd ~/.nvm && git checkout `git describe --abbrev=0 --tags`
                2.3    echo ". ~/.nvm/nvm.sh" >> /etc/profile
                2.4  source /etc/profile
                2.5  cd /
                2.6  nvm list-remote
                nvm install vx.x.x
                nvm use vx.x.x

                安装解压文件模块
                    yum install unzip
                安装文件传输工具(可选)
                    yum -y install lrzsz 
        2. npm i pm2 -g

    四、上传代码(前端|后端)
        1. vue 打包: npm run build
        2. 本地测试生成环境
            npm i serve -g
            serve -s dist -l 8080

            问题 : 生成环境下 不能访问 3000
            原因  : 生成环境下代理是无效的
            解决: 服务器端 安装ngnix  来完成代理

        3. 拷贝 dist ->  node的public下面   + 本地测试(启动node服务)
        4. 整合好的node 拖到 finalShell 下面
        5. npm i -》  npm start | pm2 start ./bin/www

        6. 问题:  没有库

    六、給服务器安装mongodb服务

            安装mongodb
            yum install mongodb-server mongodb -y
             
            创建数据库目录和日志目录
            mkdir -p /data/db
            mkdir -p /data/logs/db
             
            启动数据库
            mongod --fork --dbpath /data/db --logpath /data/logs/db/nodeapp.log
             
            创建远程数据库(与本地操作一样)可选
                use 库、db.集合.save、
    七、本地数据库copy到远程库
        
        本地出库:   
            需要先导出本地的数据 -> json

            mongoexport -h 127.0.0.1 -d 库名 -c 集合名 -o 输出路径/xx.json

        上传: json -> finalShell上传到远端磁盘 -》 远端

        远端入库:  
            json -> 导入数据库
            mongoimport -d 远端库 -c 集合 -file 服务器json路径/xx.json
    ----------------------------------

    问题0:  关闭finalShell ,服务断了

        安装pm2, nodejs服务器管理器 (npm i pm2 -g)
        启动服务器:pm2 start 启动文件.js 
        浏览器访问项目即可
        如果想停掉服务器: pm2 stop all
     
        Pm2扩展:https://blog.csdn.net/chengxuyuanyonghu/article/details/74910875

    问题1:如果关闭xshell之后,再次打开发现之前安装的模块都无效了,
        分析: 安装了多版本node环境导致
        解决:
            a) 输入nvm ls 查看可用的node的版本,-->手动指向nvm use当前使用的node版本
            b) 使用nvm install vx.x.x,之后使用nvm alias default vx.x.x可以不用每次进入服务器都要nvm use了***

    问题2:可以有多个app?使用一个实例?
        分析:app指向不同端口就好了
        解决:app指向不同端口,安全组里添加多个端口,pm2 进入到对应服务器位置,逐个启动,如果端口重复,先启用的应用会占用端口

    问题3:本地代码对应有哪些变动
        mongodb://localhost:27017 可不用动,远端访问的也是localhost
        io(‘http://localhost:3000’)->io(‘http://服务器ip:3000’)

                  
    问题4: 不想要端口可以?,
        分析:使用http协议默认的80端口
        解决: 修改本地的端口号指向80,安全组添加80


    问题5: 不使用ip,使用网址
        分析: 是一个IP和域名关联的过程

        解决: 
            域名购买:
                https://promotion.aliyun.com/ntms/act/domainbrand.html?spm=5176.8112568.483655.2.67ae9ed5edEDHe
            域名解析:
                域名-》解析-》添加记录->记录值(ip)
                    www:解析后的域名为www.aliyun.com。
                    @:直接解析主域名 aliyun.com。
                    二级域名:如:abc.aliyun.com,填写abc。

            备案: 特惠专区-》域名与网站->域名新手多重礼(实名,备案15工作日)
                未备案不可使用一级域名和端口省略

        问题6: 不备案有什么影响
            小程序上线时不能部署
            没有域名不便于宣传
            无法使用https安全协议访问

        问题7: 启用https访问
            SSL证书->获取https免费证书->配置(node服务器使用https模块响应)
            
            获取https免费证书:
                https://yq.aliyun.com/articles/221596?spm=5176.10695662.1996646101.searchclickresult.1dec5d98Oy3WNE

            下载: 证书通过后->下载 other类型的 xx.key/xx.pem 下载到-> bin/www

            配置:  

                node配置: bin/www

                var https = require('https');
                const fs = require('fs');
                const port=443;     
                app.set('port', port);

                const options = 
                  key: fs.readFileSync('./bin/1826016_uncle9.top.key'),//指向key
                  cert: fs.readFileSync('./bin/1826016_uncle9.top.pem'),
                ; 
                var server = https.createServer(options,app);//查看nodejs.cn>https模块

                安全组规则:添加443 
                    

        问题8: 如何添加二级域名 xx.uncle9.top
            域名->管理->域名解析
        问题9: 如何在浏览器访问uncle9.top是自动跳转到https
            https://blog.csdn.net/chwshuang/article/details/52443274



    阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
        https://www.cnblogs.com/mike-mei/p/7554591.html


以上是关于部署vue项目、安装mongodb的主要内容,如果未能解决你的问题,请参考以下文章

mogoDB 4.2.0安装部署及JAVA 客戶端应用

MongoDB的安装,mongod和mongo的区别

MongoDB的安装,mongod和mongo的区别

linux安装mongodb数据库./mongod -f mongodb.conf失败或者error

在Windows系统下安装MongoDB数据库

[MongoDB]------windos远程服务器部署连接