主要项目功能已经开发完成,记录一下部署服务器过程。
通过power shell连接服务器
ssh root@ip -p 22
root@ip's password:
password后面输入密码
如果重置过服务器,需要输入下面命令来清理缓存
ssh-keygen -R ip
2.更新CentOS的yum源
curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum makecache
yum -y update
3.安装nodejs
Node.js v12.x(之所以不安装最新版本,是因为兼容问题,会使代码无法运行)
# As root
curl -fsSL https://rpm.nodesource.com/setup_12.x | bash -
bash -
# No root privileges
curl -fsSL https://rpm.nodesource.com/setup_12.x | sudo bash -
yum install -y nodejs
检查一下版本
node -v
4.安装MongoDB
1、创建仓库文件:
vi /etc/yum.repos.d/mongodb-org-3.4.repo
然后复制下面配置,保存退出
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https:``//repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https:``//www.mongodb.org/static/pgp/server-3.4.asc
2、yum安装
yum install -y mongodb-org
没有权限就在前面加: sudo
安装完毕后修改配置文件:
vi /etc/mongod.conf
修改配置文件的 bind_ip,
默认是 127.0.0.1 只限于本机连接
。所以安装完成后必须把这个修改为 0.0.0.0 ,否则通过别的机器是没法连接的!
3、启动、停止、重启
MongoDB默认将数据文件存储在/var/lib/mongo
目录,默认日志文件在/var/log/mongodb
中。如果要修改,可以在 /etc/mongod.conf
配置中指定备用日志和数据文件目录。
启动命令:
service mongod start
停止命令:
service mongod stop
重启命令:
service mongod restart
可以通过查看日志文件查看mongoDB是否启动成功:
cat /``var``/log/mongodb/mongod.log
日志文件应该会出现如下一句说明
[initandlisten] waiting for connections on port <port>
是mongodb运行端口
5.mongodb备份与安装
mongodump命令脚本语法例如以下:
>mongodump -h dbhost -d dbname -o dbdirectory
-
-h:
MongDB所在server地址,比如:127.0.0.1。当然也能够指定port号:127.0.0.1:27017
-
-d:
须要备份的数据库实例,比如:test
-
-o:
备份的数据存放位置。比如:c:\data\dump。当然该文件夹须要提前建立,在备份完毕后,系统自己主动在dump文件夹下建立一个test文件夹。这个文件夹里面存放该数据库实例的备份数据。
mongorestore命令脚本语法例如以下:
mongorestore -host 0.0.0.0:27017 -d echarts /home/meng/echarts 唯一有效代码
6.安装nginx
yum -y install nginx
nginx -v
启动
service nginx start
检查是否启动成功
ps -ef | grep nginx
日志更新检查以及重启
nginx -t
nginx -s reload
7.nodejs依赖安装
通过filezilla导入nodejs代码文件
更换镜像命令
npm install -g cnpm --registry=https://registry.npm.taobao.org
安装全局依赖
cnpm i -g yarn pm2 nodemon
yarn config set registry https://registry.npm.taobao.org/
yarn install
进入node代码目录,安装该部分依赖,兵启动PM2
cnpm install
pm2 start app.js
检查
pm2 list
查看服务端代码能否正常运行
curl http://www.localhost:8888/ocean
8.全段代码问题处理与相关配置
代码部署这块个人有个人的问题,我罗列一下自己遇到并解决的几个主要问题:
- 跨域问题
本来在本机测试的时候跨域调配数据问题是已经被解决了的,但不知道为什么上传到服务器时候总是获取不到数据,几经周折,我更改了代码逻辑,选择将服务器上的数据通过公网ip暴露出来,在从暴露的ip中获取数据,这样算是叫完美的解决问题了。nginx配置如下:
- 静态资源引入
我把静态资源(china.json)放在前端文件夹里,一开始是用绝对路径的引入方法
http://localhost:8999/static/map/china.json
在本机测试的时候就容易报错,获取不到数据;放到服务器上便一次成功也没有了,后来查找资料将获取文件的方式改为相对路径就解决了。
import Map from '../../public/static/map/china.json'
- 后端文件上传
上传除了 node_modules以外的所有文件,然后进入文件夹安装依赖
cnpm install
没遇到什么报错
- 前端文件上传
更改基准路径为服务器ip
axios.defaults.baseURL = 'http://42.193.131.94/api/'
router下的index.js找到如下模块进行如下更改
const router = new VueRouter({ // 为部署服务 mode: 'hash', routes})
vue.config.js基本配置如图
module.exports = {
devServer: {
port: 8999, // 配置端口号
open: true
},
publicPath: './',
productionSourceMap: false
}
然后进到前端文件夹下输入以下命令来打包:
npm run build
会生成dist文件夹,将里面的东西上传到服务器
- 配置nginx
别的东西没动,我只改了server里面的内容,如下: