1.ubuntu部署操作指南
基础指令:
- touch:用来修改文件时间戳,或者新建一个不存在的文件。
- cat:查看命令,连接文件或标准输入并打印
- netstat:用于显示各种网络相关信息,如网络连接,路由表,接口状态
- tar: 为.tar.gz文件的压缩与解压命令。(.tar.gz为linux里常见的压缩文件的格式)
- “sudo 表示 “superuser do”。 它允许已验证的用户以其他用户的身份来运行命令。
- sudo rm -r 文件夹名 删除指定名字的文件夹
- mkdir 创建文件夹
服务器的操作系统 Ubuntu / 18.04 LTS amd64 (64bit)
如果是新的系统,则需要先安装docker,具体配置参考《Docker基础入门》第三节
apt install nodejs
node -v 检查版本
apt-get update
apt install npm
npm -v 检查版本
此时会发现自动安装的nodejs版本竟然是8.xx的,很明显需要安装更新的版本才行
更新npm的包镜像源,方便快速下载
sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list
全局安装n管理器(用于管理nodejs版本)
sudo npm install n -g
安装最新的nodejs(stable版本)
sudo n stable
sudo node -v
安装mongo
新建一个mongo文件夹,然后cd到文件夹里面
使用docker-compose,首先 apt install docker-compose安装,然后编辑docker-compose.yml文件
version: "3"
services:
mongo:
# 镜像名称,不写版本号的话默认拉取最近的版本
image: mongo
# 端口映射
ports:
# 宿主机端口:容器端口
- 27017:27017
# 容器数据挂载,持久化
volumes:
# 宿主机目录:容器目录:读写权限
- ./mongo:/data/db:rw
- ./configdb:/data/configdb:rw
# 设置环境变量
environment:
- TZ=Asia/Shanghai
# 容器名称
container_name: mongo
注意:编辑的时候请把注释都去掉
docker-compose up -d 启动容器
在当前目录,使用docker-compose ps 查看容器是否运行成功
看到State处为Up则为启动成功,然后就可以使用图形化工具进行连接了。
推荐一款mongodb的UI操作工具 robo 3T
robomongo.org
docker-compose stop 停止容器
注意:上述命令的执行位置都要和docker-compose.yml文件在同一位置。
chmod -R 777 /showdoc_data
上面这个指令 是linux里修改文件的用户权限的,777代表所有用户都可以去修改这个文件夹
注意如果是云服务器,端口号一定要去防火墙里面进行开启,自己家的网络,80端口,443端口,8080端口都是默认封禁掉了,需要去电信进行备案才能放行。
安装redis
在新建文件夹中新建一个配置文件docker-compose.yml
version: "3"
services:
redis-test:
image: "redis"
restart: always
container_name: "redis-test"
ports:
- 15001:6379
volumes:
- /home/redistest:/data
command: ["redis-server", "--requirepass", "123456"]
然后执行docker-compose up -d下载并运行redis
至此,服务器上运行的端口分别是
20080:DOCLever
15001:Redis
27017:Mongo
pm2运行node项目
1.将node项目通过git clone克隆到服务器上
2.npm i安装项目依赖
3.执行:npm install -g pm2安装pm2
4.pm2 list 查看进程,此时肯定没有任何进程,但是只要这个命令可用,代表pm2已经成功安装了。
5.项目本来的启动指令是npm run dev,此时只需要替换成pm2 start npm --watch -- run dev就可以在后台启动项目了。
pm2 logs # 查看所有进程日志
pm2 stop all # 停止所有进程
pm2 restart all # 重启所有进程
pm2 stop 0 # 停止进程
pm2 restart 0 # 重启进程
pm2 delete 0 # 删除进程