vue+express+mongodb项目部署
项目结构:
前后端分离项目,前端使用vue+vuex+axios,
后端使用node+express+mongodb+mongoose.
项目地址:https://github.com/dyanfee/vueBlog
一、环境部署
1. mongodb
-
下载
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.7.tgz
-
解压
tar -xvf mongodb-linux-x86_64-rhel70-4.2.7.tgz
清理安装包
rm mongodb-linux-x86_64-rhel70-4.2.7.tgz
-
重命名mongodb文件夹
mv mongodb-linux-x86_64-rhel70-4.2.7 mongodb
-
加入环境变量(也可以不加或者添加为软连接),方便的使用命令
PATH=$PATH:/usr/local/mongodb/bin
长期加入
echo "export PATH=$PATH:/usr/local/mongodb/bin" >> /etc/profile
查看环境变量
echo $PATH
-
设置数据库数据和日志存放位置
data位置:
mkdir -p /var/mongodb/data
log位置:
mkdir -p /var/mongodb/data
-
设置开机自启(修改/etc/rc.d/rc.local加入mongodb启动路径)
vim /etc/rc.d/rc.local
添加
/usr/local/mongodb/bin/mongod --dbpath=/var/mongodb/data --logpath /var/mongodb/logs/log.log -fork
-
为启动方便,写配置文件在
/var/mongodb
下vim /var/mongodb/mongodb.conf
添加
dbpath=/var/mongodb/data logpath=/var/mongodb/logs/log.log
启动方式为
mongod -f /var/mongodb/mongodb.conf -fork
也可以注册服务启动
参考:https://www.cnblogs.com/mymelody/p/5905640.html
-
启动数据库后添加管理员
// 打开数据库 cd /usr/local/mongodb/bin ./mongo // 创建超级管理员 db.createUser({ "user": "admin", "pwd": "admin",//管理员密码 "roles": [{ "role": "dbAdminAnyDatabase", "db": "admin" }] }) // 添加网站管理用户 db.createUser({ "user": "bloguser", "pwd": "123",//密码 "roles": [{ "role": "dbOwner", "db": "blog" }] })
2. node
-
下载node包
建议去https://npm.taobao.org/mirrors/node 查找需要安装的node包
wget https://npm.taobao.org/mirrors/node/v12.18.0/node-v12.18.0-linux-x64.tar.gz
-
解压
tar -xvf node-v12.18.0-linux-x64.tar.gz
清理安装包
rm node-v12.18.0-linux-x64.tar.gz
-
重命名(node是已经编译好的,所有不需要编译安装)
mv node-v12.18.0-linux-x64/ node
-
将node下的bin加入环境变量,因为npm全局安装的包默认会将命令加入node/bin/目录下,故为了方便直接将该目录加入环境变量。
PATH=$PATH:/usr/local/node/bin
长期加入
echo "export PATH=$PATH:/usr/local/node/bin" >> /etc/profile
也可以只将npm和node命令添加软连接,命令为
ln -s /usr/local/node/bin/node /usr/local/bin/node ln -s /usr/local/node/bin/npm /usr/local/bin/npm //注意查看/usr/local/bin 是否在环境变量中
3. nginx
-
安装前准备
安装相关依赖
yum -y install make zlib zlib-devel gcc-c++ libtool openssl openssl-devel
安装pcre
yum install -y pcre pcre-devel
-
下载nginx安装包
cd /usr/local
wget http://nginx.org/download/nginx-1.18.0.tar.gz
(官网找安装包http://nginx.org/en/download.html)
-
解压
tar -xvf /usr/local/nginx-1.18.0.tar.gz
进入解压文件夹
cd nginx-1.18.0
-
安装
./configure --prefix=/usr/local/nginx
如果有未安装依赖自行安装make&&make install
安装 -
创建软连接
ln -s /usr/local/nginx/bin/nginx /usr/local/bin/nginx
-
启动服务
nginx
二、代码部署
-
创建代码存放文件夹
mkdir /home/www/server -p mkdir /home/www/blog -p
-
上传代码
用winSCP工具 ,vue 代码需要build。
-
配置nginx
server { listen 80; server_name www.xxx.com xxx.com; #域名 #charset koi8-r; #access_log logs/host.access.log main; # 前端 location / { root /home/www/blog; index index.html index.htm; } # 代理后端 location /api { proxy_pass http://127.0.0.1:3000; } }
-
启动nginx或者重启
nginx -s reload
-
启动后端server
cd /home/www/server pm2 start bin/www
-
配置端口安全策略(我用的阿里云需要处理)
防火墙打开端口
#添加端口
sudo firewall-cmd --add-port=3000/tcp --permanent
#重启服务
sudo firewall-cmd --reload
#列出已经打开的端口
sh
cd /home/www/server
pm2 start bin/www -
配置端口安全策略(我用的阿里云需要处理)
防火墙打开端口
#添加端口
sudo firewall-cmd --add-port=3000/tcp --permanent
#重启服务
sudo firewall-cmd --reload
#列出已经打开的端口
firewall-cmd --list-all