Nodejs项目部署与踩过的那哪些坑
来源:互联网 发布:如何看懂财务报表 知乎 编辑:程序博客网 时间:2024/06/06 04:19
Nodejs项目部署与踩过的那哪些坑
一、项目背景
团队中基于Nodejs开发的项目,由于项目需要,要部署一套测试开发环境,之前正式线是一位大牛部署,由于某些原因这块现在需要自己处理部署。本人之前完全没接触过Linux,所以在部署测试开发环境过程中也是踩了好多坑,写篇杂记做个记录。
二、部署准备
1.Linux系统
2. SVN客户端
3. Nodejs
4. PM2
5. Nginx
6. MongoDb
7. MySql
这里做个简单的介绍,为什么要以上这些东西。项目的代码是属于SVN管理的,项目是基于Nodejs开发的,Node服务应用进程使用PM2管理,数据库使用MongoDb,由于我们有和其他系统交互所以又用到了一个其他系统的数据库MySql, Nginx是Web 服务器/反向代理服务器的代理服务器。
另外由于我们的数据库之前有部署在其他的服务器上,所以这里先介绍1-4的过程,执行4后,项目就可以启动运行,完全满足可以测试的需求,后期再做数据库迁移和反向代理。
三、实施过程
1.Linux系统
查看了正式线是liunx版本是Center OS 7.1,这里就下载了一个Center OS的系统提供给技术维护部帮忙安装机器系统。
Linux比较流行的发型版本有还有其他的:Ubuntu、Debian、Fedora
2.SVN客户端
2.1 Svn客户端安装,直接使用yum方式安装,命令如下:
yum install -y subversion 安装完成,输入名称 svn –h测试成功
2.2安装完成SVN,检出代码
svn checkout --username=xxxx --password=xxx https://192.168.160.4:8443/svn/casemanage ./casemanage_test
3.3 踩第一个坑
检出的命令是上网百度的svn checkout svn://192.168.1.1/pro/domain 一开始按照这样的格式拼装命令
svn checkout --username=xxxx --password=xxx SVN://192.168.160.4:8443/svn/casemanage ./casemanage_test
按照这样格式,死活无法检出代码,提示错误,后面查看提示研究,多次折腾然后把SVN:去掉,同时带上https,终于解决问题。所以不能一味照抄,要根据实际情况去解决问题。
3.Nodejs下载安装
3.1下载wget https://nodejs.org/dist/v5.4.1/node-v5.4.1-linux-x64.tar.gz
3.2解压安装 sudo tar --strip-components 1 -xzvf node-v*-C /usr/local
3.3踩过的二坑
一开始至今使用yum的方式安装,然后项目工程包无法npm install 安装依赖包,最后排查原因发现,安装的nodej和npm的版本与开发环境不一致,导致install。解决办法从官方https://nodejs.org/ 下载匹配的node版本包,这个版本已经集成了npm,无需在额外安装。
4. 安装webpack
全局安装npm install –g webpack
5.安装pm2
全局安装 npm install –g pm2
查看全局安装的包
npm list -g --depth 0
6.上传部署文件deploy.sh
上传完部署文件,发现无法执行,然后修改权限 :sudo chmod 777 deploy.sh
再次执行发现报错
报错“build.sh /bin/bash^M: 坏的解释器:没有那个文件或目录”
然后替换编译解决:
sed -i 's/\r$//' deploy.sh
6.1踩过的三坑
发布成功,pm2各种状态值都正常,其他电脑就是无法访问
经常入坑的排查,Center OS的防火墙没有打开对应的3000端口,同时Center OS打开端口方法跟其他系统不同,具体如下
centeros 7 防火墙使用 - firewall
开启端口
firewall-cmd --zone=public--add-port=80/tcp --permanent
firewall-cmd --zone=public--add-port=3000/tcp --permanent
命令含义:
--zone #作用域
--add-port=80/tcp #添加端口,格式为:端口/通讯协议
--permanent #永久生效,没有此参数重启后失效
重启防火墙
firewall-cmd --reload
重新设置完端口后,解决问题,访问项目网站正常。
后期待续~~
7.nginx
8.mongodb
9.mysql
- Nodejs项目部署与踩过的那哪些坑
- nodejs项目的部署
- pm2部署nodejs项目
- PM2部署nodejs项目
- 部署Python Web项目到CentOS服务器踩过的坑
- 那些年,在nodejs上踩过的坑
- JQuery坑,说说哪些大家都踩过的坑
- nodejs开发遇到过的坑
- #掉过的坑#之nodejs
- Linux部署nodejs web项目
- 使用高大上的pm2代替forever部署nodejs项目
- jenkins+docker+nodejs项目的自动部署环境(案例)
- 打造jenkins+docker+nodejs项目的自动部署环境(webhook)
- 使用高大上的pm2代替forever部署nodejs项目
- 使用高大上的pm2代替forever部署nodejs项目
- 使用高大上的pm2代替forever部署nodejs项目
- 阿里云的ECS机器部署Nodejs项目
- 【Vue】基于nodejs的vue项目打包编译部署
- Android开发之BroadcastReceiver
- Spring的事务管理难点剖析:事务方法嵌套调用的迷茫
- 程序员注意事项
- Java NIO系列教程(十二) Java NIO与IO
- android中的触摸事件
- Nodejs项目部署与踩过的那哪些坑
- gdb 跟踪调试命令整理
- PHP框架单入口文件原理浅析
- springmvc与struts2比较
- 字符流解析与简单应用
- Java 多线程同步的五种方法
- 【Leetcode】89. Gray Code 【递归】
- T-SQL 游标学习笔记
- c++基础温习之枚举