iptables 开放远程_JavaWeb项目的部署以及远程调试

不点蓝字,我们哪来故事?

Linux环境下软件的安装

Linux环境下的程序的安装、更新、卸载和查看。

  • rpm 命令:相当于windows程序的添加/卸载程序,进程程序的安装,查看,卸载。
    • 本地程序安装:rpm -ivh 程序名
    • 本地程序查看:rpm -qa
    • 本地程序卸载:rpm -e --nodeps 程序名
  • yum 命令:相当于可以联网的rpm命令,相当于联网下程序的安装和更新,自动执行rpm命令

JDK的安装

1. 查看当前Linux系统是否已经安装java,输入 rpm -qa | grep -i javac1bd9a9cbba65b926d93eb477a1a626e.png2. 卸载两个openJDK,输入rpm -e --nodeps 要卸载的软件e990a5234d80ba0911b2e0a7877c32e9.png3. 上传jdk到linux的/usr/local/src/ 路径下4. 解压jdk,输入:tar -zxvf jdk-8u152-linux-x64.tar.gz5. 配置jdk环境变量
  打开/etc/profile配置文件,输入:vim /etc/profile,添加如下配置

#set java environment
JAVA_HOME=/usr/local/src/jdk1.8.0_152
CLASSPATH=.:$JAVA_HOME/lib.tools.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME CLASSPATH PATH

vim命令是vi的增强版,centos7最小安装,默认没有这个命令,安装vim

  • 输入rpm -qa 查看系统所有的安装软件
  • rpm -qa|grep vim 查看所有安装软件中名字有vim的
  • 在线安装vim yum install -y vim*

6. 重新加载/etc/profile配置文件 source /etc/profile,是环境变量生效

MySQL安装

1. 查看CentOS自带的mysql

  • 输入 rpm -qa | grep -i mysql
  • 输入 rpm -qa | grep mariadb

2. 将自带的mysql卸载

  • rpm -e --nodeps 软件名

3. 上传Mysql到linux

  • 使用xftp软件将mysql的客户端和服务端都上传上去,传好后就可以进行本地安装了

4. 安装perl依赖环境

  • yum install perl

5. 在/usr/local/src/mysql下安装mysql

  • 安装服务器端:rpm -ivh MySQL-server-5.6.22-1.el6.i686.rpm
  • 安装客户端:rpm -ivh MySQL-client-5.6.22-1.el6.i686.rpm

6. 启动mysql

  • service mysql start

7. 登录mysql

  • mysql –uroot –p 默认密码为空

8. 修改mysql密码

  • /usr/bin/mysqladmin -u用户名 -p 旧密码 -password 新密码
  • mysqladmin -uroot -password ab12 因为开始时root没有密码,所以-p旧密码一项就可以省略了。

9. 开启mysql的远程登录

  • 默认情况下mysql为安全起见,不支持远程登录mysql,所以需要设置开启远程登录mysql的权限
  • 登录mysql后输入如下命令:
    • grant all privileges on *.* to 'root' @'%' identified by '123';
    • flush privileges;

10. 开放Linux的对外访问的端口3306,将修改永久保存到防火墙中

  • 查看当前防火墙状态:systemctl status firewalld
  • 运行命令,可以看到zone名称:firewall-cmd --get-active-zones
  • 执行如下命令命令:firewall-cmd --zone=public --add-port=3306/tcp --permanent
  • 重启防火墙,运行命令:firewall-cmd --reload
  • 查看端口号是否开启,运行命令:firewall-cmd --query-port=3306/tcp
  • 除此之外,若需要关闭当前防火墙:systemctl stop firewalld,如需要开机防火墙不启动:systemctl disable firewalld

Tomcat安装

  tomcat的安装比较简单,直接将tomcat.tar.gz压缩包上传到指定的路径下后,使用tar -zxvf 您的tomcat压缩包进行解压可以了,进入tomcat的bin下启动:./startup.sh,进入tomcat的bin下关闭:./shutdown.sh。

JavaWeb项目的部署

部署

  将您需要部署的项目,在IDEA中使用maven打包,在打包之前线clean一下,再进行packageaf5892c93d6f2b58e975d7b5f128c848.png打包完成后,在target目录下会出现一下war包,将该war包上传到您的Linux服务器上的tomcat的webapp目录下,进入tomcat的bin下执行关闭后(/shutdown.sh),再重新启动tomcat(./startup.sh)。tomcat就会自动为我们解压了,我们就可以访问了。

端口转发

  为了避免输入麻烦的端口号,我们如何不使用nginx,将80端口转发至8080端口,并让他永久生效呢。在centOS7之前,我么可以使用iptables来进行转发,但CentOs7之后就取消了。但我们可以通过安装iptables.service来进行设置,执行如下命令:

systemctl stop firewalld  #关闭防火墙
systemctl disable firewalld #禁止防火墙开机启动
yum install iptables-service #安装
iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 #将80端口转发至8080端口
service iptables save
systemctl restart iptables.service
systemctl enable iptables.service
143b5af6a5c53af2026ba036da912d7f.png

本地调试远程程序

服务器端配置

由于Linux系统中root启动的进程是不支持远程调试的,我们需要创建一个普通账号来启动程序,并且用该账号重新装一个tomcat,步骤如下:

  • adduser work
  • passwd work 设置密码为work,会让你确认密码和再次输入密码,要保持一致
  • 停掉当前root启动的tomcat
  • 切换账号 su work,进入到根目录 cd ~,上传一个tomcat到work账号的根目录并进行解压,修改配置文件的信息 vim bin/catalina.sh
    • 由于远程调试账号的tomcat的端口号不能小于1000,所有我们需要对tomcat的bin目录下的catalina.sh文件添加如下配置:c23faa619531ec66987f7d95f61b52c4.png
CATALINA_OPTS="-Xdebug -Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n"
  • 重启tomcat,我是腾讯云服务器,需要在控制台的安全组策略打开8888端口3c78ce999b90b3f51c871ecd96c27b85.png

IDEA配置

使用IDEA调试远程程序,需要在Run/EditConfidurations中添加Remote,并设置你需要调试的项目,以及该项目所在的远程主机和端口,如下图:e662813a1256ebeaf6a3561d91f9d742.png7425ce49d457dab1525ffb06b94d90a9.png83878324fb4b6b9f562e61b121879b21.png

然后启动远程调试,如果控制台出现:Connected to the target VM, address: 'ip地址:8888', transport: 'socket',就说明链接成功,然后在你需要调试的接口打上断点,在浏览器中请求改接口,就会进入该断点,我们就可以看到调试信息了。8d535e8ea0331bef545ab2f3e7a10c7e.png

58ea83a6333f9c35cdf9cce888c86367.png
733e77797a26bd48613b8a906480ef20.png

觉得不错,请点个在看

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339122.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java 性能调优_Java性能调优调查结果(第一部分)

java 性能调优我们在2014年10月进行了Java性能调优调查。该调查的主要目的是收集对Java性能世界的见解,以改善Plumbr产品。 但是,我们也很高兴与您分享有趣的结果。 我们收集的数据为进行冗长的分析提供了素材,因此我们决定将结果划分为一系列…

通过反汇编来理解restrict关键字

一次难忘的面试经历多年前,一次互联网某厂实习生的面试题,题目的代码片段很简单,如下:1 #include 2 int main()3 {4 int *restrict pInt (int*)malloc(4);5 int *pNewInt pInt;6 return 0;7 } 12345678面试官问…

python车牌识别系统开源代码_汽车牌照识别系统【YOLO+MLP】

车牌识别系统可以自动检测并识别图像中的车辆牌照,其算法主要包括牌照定位、牌照分割、字符识别等步骤。本文将给出一种基于深度学习的车牌识别系统方案。要快速掌握开发人工智能系统的技能,推荐汇智网的 机器学习系列在线课程由于可以自动地从视频图像中…

js text 和 html,JS DOM innerText和textContent的区别

innerText和textContent很多人会困惑,因为都可以用来获取文本内容,实际上,两者还是有很多区别的,本文就将介绍这两个属性的异同,希望可以对大家的学习有所帮助。一、之前错误的认识innerText IE6就开始支持&#xff0c…

如何用耳机翻页_游戏耳机的经典之作—罗技(G)Astro A40体验

前言经常去网吧玩游戏的朋友,在家玩如果没有头戴式耳机,那体验真的会差一大截。优秀的电竞游戏耳机会带来更好的游戏体验,不仅是舒适性。像绝地求生这类FPS游戏,游戏耳机会让听声辩位更容易更精确。最近因为大促降价入手的罗技&am…

我改了500个Bug,但是!!

IT程序猿 微博网友评论:空白一页blank:不写bug怎么改bug 抠Bee:不经意间病毒都出来了我在海的这边你在哪里丫:好了,发给开发小弟了富贵小小神仙:要不然呢,那些从开发到维护的程序员不都是靠这么…

globalmapper如何选取图像上的点_OpenCV 进阶应用,用编程手段搞定图像处理

在我们生活中,常见的图像处理软件有Adobe Photoshop、Adobe Illustrator等。然而,并非只有软件才能实现图像处理,通过编程手段也是能实现的!通过编程手段实现图像处理,也就是计算机视觉。所谓计算机视觉,就…

pytorch relu函数实现_什么是pytorch?

PyTorch是一个:机器学习框架,简单易学可以看做是支持GPU计算和自动微分计算的“Numpy”库支持100多种Tensor常规算子,包括:创建、索引、切片、转置、连接、随机数、形状改变,线性代数、数学计算Tensor是一个有值有属性…

C sort 排序函数用法

最近在刷ACM经常用到排序,以前老是写冒泡,可把冒泡带到OJ里后发现经常超时,所以本想用快排,可是很多学长推荐用sort函数,因为自己写的快排写不好真的没有sort快,所以毅然决然选择sort函数用法1、sort函数可…

python人脸_Python 使用 face_recognition 人脸识别

Python 使用 face_recognition 人脸识别 人脸识别 face_recognition 是世界上最简单的人脸识别库。 使用 dlib 最先进的人脸识别功能构建建立深度学习,该模型准确率在99.38%。 Python模块的使用 Python可以安装导入 face_recognition 模块轻松操作,对于简…

C语言,一把菜刀。

C 与 C 的真正区别在哪里?C是中餐厨师的菜刀,做啥菜就那一把刀,切菜切肉切鱼,都是这一把刀,刀工好的师傅,豆腐都能切成一朵花。无论你提什么概念,都能用指针给你做出来,如果不行&…

css中设置br标签之后的样式_CSS学习

语法:选择器,声明(由一个属性和一个值)注释:/* */选择器:1. id选择器,class选择器2. 组和选择3. 属性选择创建:外部样式表html <head> <link rel"stylesheet" type"text/css" href"mystyle.css"> </head>内部样式表html <h…

eclipse扩展点_Eclipse扩展点评估变得容易

eclipse扩展点编码Eclipse扩展点评估有点冗长&#xff0c;而且很少能自我解释。 当我最近忙于自己忙于这个话题时&#xff0c;我写了一个小助手&#xff0c;目的是减少通用编程步骤的样板代码&#xff0c;同时增加开发指导和可读性。 它原来是不容易找到一个表现的解决方案&am…

google账号解除游戏绑定_附方法!关于物联卡手机号的绑定与解绑

我们在使用物联卡时第一步都知道绑定手机号&#xff0c;只有绑定了手机号我们才能进行正常的充值、续费、查询等日常操作&#xff0c;当我们不再使用这些物联卡时&#xff0c;你知道怎么解绑吗&#xff1f;今天&#xff0c;我们以中国移动物联卡为例&#xff0c;咱们来看一下移…

elasticsearch原理_花几分钟看一下Elasticsearch原理解析与性能调优

基本概念定义一个分布式的实时文档存储&#xff0c;每个字段 可以被索引与搜索一个分布式实时分析搜索引擎能胜任上百个服务节点的扩展&#xff0c;并支持 PB 级别的结构化或者非结构化数据用途全文检索结构化搜索分析VS传统数据库传统数据库提供精确匹配ES提供精确匹配全文检索…

spark wai_WAI-ARIA对自动完成小部件的支持

spark wai在这篇文章中&#xff0c;我想讨论一个AutoComplete小部件的可访问性。 在您键入该字段时&#xff0c;通常会使用“自动完成”窗口小部件提供建议。 在当前的工作中&#xff0c;我基于Twitter的Typeahead &#xff08;一个灵活JavaScript库&#xff09;实现了JSF组件&…

快速学习C语言的途径,让你少走弯路!

1标准C语言能干什么&#xff1f;坦白讲&#xff0c;在今天软件已经发展了半个多世纪&#xff0c;单纯的C语言什么都干不了。标准C语言库只提供了一些通用的逻辑运算方法以及字符串处理&#xff0c;当然字符串在C语言看来也是一种操作内存的方法&#xff0c;所以单纯的C什么都做…

计算机基础教育学,计算机基础教育教学改革与创新

计算机基础教育教学改革与创新伴随《国家中长期教育改革和发展规划纲要(2010-2020)》的颁布,我国计算机基础教育进入一个新的发展阶段,对计算机基础教育"面向应用、能力导向、注重素质"指导思想的深入研究和实践是深化计算机基础教育教学改革的切入点。下面是小编搜集…

C语言学习趣事_你不知道的C语言应用

一、引我一直不明白“文人相轻”是什么意思&#xff0c;也许就是说&#xff1a;文人清客之间互相瞧不起的事情吧。但对于我来说&#xff0c;文人相轻就是表示&#xff1a;无知者无畏。无论你的某一方面的语言学的怎么样&#xff0c;怎么样的牛逼&#xff0c;你可以眼光狭窄&…

html打开显示脚本错误,IE浏览器显示脚本错误怎么解决?IE浏览器脚本错误解决方法图文教程介绍...

只要一打开网页&#xff0c;就会弹出一个“当前页面的脚本发生错误”提示框&#xff0c;如下图&#xff0c;不论按“是”或者“否”&#xff0c;当打开其它网页时&#xff0c;又会弹出一个这样的“脚本错误”提示框&#xff0c;这样的问题该如何解决呢。出现这样的情况&#xf…