部署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的主要内容,如果未能解决你的问题,请参考以下文章