因为root用户启动的进程不支持远程调试,并且我们的程序使用root启动也有很多隐患,毕竟root具有最高的执行权限。所以我们首先创建一个新的普通用户work:
1. 新建普通用户work,新建指令【adduser work】添加密码【passwd work】
2. 停掉root用户的tomcat程序,
3. 切换至普通用户【su work】
4. 回到账号的根目录下【cd ~】
5. 查看路径【pwd】
6. 将下载好的tomcat传到该路径下
7. 解压【tar -zxvf apache-tomcat-8.0.46.tar.gz】
8. 修改Tomcat配置。修改server.xml配置:1.修改8080端口为80,2.修改图片服务器路径。但是因为非root用户的启动端口不能小于1000,所以8080端口不能修改为80,我们可以利用转发。2.在host标签中添加<Context docBase=”/…/….” path=”/…”/>
9. 启动Tomcat
10. 上传war包到work的tomcat中,同时别忘记设置阿里云服务器的配置规则。开放8080【在安全组列表 /配置规则】
11. 微信的域名是不能带端口的,也就是说微信只支持80端口。因此8080不能满足需求。可以将发送到8080的请求转发到80端口。
主流使用ngix转发。咱们改变centos机制来实现。在centos7之前我们可以使用iptables来转发,iptables在centos7之后被firewalld.service取代。其转发不太好设置因为一旦服务器重启转发将被重置。我们首先停止firewarm停止然后复原iptables。在root权限中执行【systemctl stop firewalld.service】然后【systemctl disablefirewalld.service】【yum install iptables-services】然后将对80端口的请求转发到8080中【iptables -tnat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080】然后让iptables生效【serviceiptables save】
这样设置好以后服务器就能转发了。但是一旦服务器重新启动就会失效。【systemctl restart iptables.service】和【systemctl enableiptables.service】
修改root用户bin目录下的catelina.sh在108行添加CATALINA_OPTS="-Xdebug-Xrunjdwp:transport=dt_socket,address=8888,server=y,suspend=n"表示告诉tomcat要开启一个端口来支持远程调试,xdebug表示启动调试,transport表示进程间通信,然后在阿里云安全组里开启8888端口。然后换回work。使用work账号启动tomcat。
然后在idea中run-->edit config配置即可