上一篇:在远程Linux服务器上安装部署Tamcat及web项目(一)
这部分是将本地编写好的代码部署到Tomcat远程服务器中(linux)
如果要在远程服务其中安装JDK,Mysql,Tomcat可以访问下面地址
在远程Linux服务器上安装部署Tamcat及web项目(一)
参考链接:
https://www.cnblogs.com/jpfss/p/9023591.html
https://blog.csdn.net/kevin_virus/article/details/81388525
1. 服务端的配置
1.1 tomcat安装路径
/usr/local/tomcat8.5/apache-tomcat-8.5.43
1.2 我们在bin目录下找到catalina.sh
使用命令
vi catalina.sh
在文件中加入
#我是加的这个,这个可以成功!
JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.rmi.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=47.93.254.64"
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
export JAVA_OPTS
#这是其他的方法
CATALINA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=47.93.254.64"
JAVA_OPTS="-Dcom.sun.management.jmxremote
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Dcom.sun.management.jmxremote.rmi.port=1099"
1.3 配置好后,保存,启动服务器
#之前启动的是
./startup.sh
#现在要启动
./catalina.sh run
#上面这样启动的话会导致当前终端被阻塞,并且关闭终端后无法继续后台运行
#可以将上面的命令改为下面的
./catalina.sh run > /dev/null 2>&1 &
1.4 mysql5.7以上版本需要设置一下
报错:Expression #1 of SELECT list is not in GROUP BY clause and contains nonaggregated column ''
进入mysql
mysql -uroot -p
然后执行下面两个步骤就可以了,注意这里重启mysql后,还需要重新进行设置
select @@global.sql_mode
可以看到模式中包含了ONLY_FULL_GROUP_BY,只要没有这个配置即可。
set @@sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
1.5 出错排除
https://www.cnblogs.com/rogear/p/7435074.html
https://blog.csdn.net/synchro2014/article/details/87944665
1.6 ./catalina.sh 出错
1.7 1099端口出错
intellij idea部署ssm/web项目到远程tomcat遇到的1099端口问题
也有可能程序出错!
可以查看tomcat安装路径下的logs文件下catalina.xxx.log文件,cat 查看
2. 配置IDEA
2.1 加包
如果没有这一步,后面可能会报错:java.lang.IllegalStateException: Illegal access: this web application instance has been stopped alr
出现这个错误的原因是找不到相应的jar包。
配置:可是用idea明明已经帮我们导入了呀?原来是,idea创建的jar包放在src目录下的lib文件夹里。而运行服务器时,需要在WEB-INF下找到lib目录。这里要点击在左上角的file,program structure,artifact中,点击相应的包右键,选择put into web-INF lib。这样,再重新部署一下,就不会报错了。图中是已经添加完了的
2.2 服务器配置
2.3 增加远程服务器
2.4 配置页面
2.5 点击 上图中Host 后面的 ...,配置如下
2.6 添加war包
完成以上步骤,基本就可以完成相关的准备工作了,然后部署就可以了,不过这中间可能会出现很多错误。
3. 出错情况
3.1 描述当使用IDEA连接之后,IDEA显示错误,然后在服务器上操作,进入
/usr/local/tomcat8.5/apache-tomcat-8.5.43/bin/
中,使用命令 ./shutdown.sh
报错:
Aug 12, 2019 7:42:00 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Could not contact [localhost:[8005]]. Tomcat may not be running.
Aug 12, 2019 7:42:00 AM org.apache.catalina.startup.Catalina stopServer
SEVERE: Catalina.stop:
java.net.ConnectException: Connection refused (Connection refused)
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:350)
at java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:206)
at java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:188)
at java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392)
at java.net.Socket.connect(Socket.java:589)
at java.net.Socket.connect(Socket.java:538)
at java.net.Socket.<init>(Socket.java:434)
at java.net.Socket.<init>(Socket.java:211)
at org.apache.catalina.startup.Catalina.stopServer(Catalina.java:504)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.apache.catalina.startup.Bootstrap.stopServer(Bootstrap.java:406)
at org.apache.catalina.startup.Bootstrap.main(Bootstrap.java:498)
3.2 解决方法:
(1)使用
修改$JAVA_HOME/jre/lib/security/Java.security 文件中 securerandom.source 配置项:
将
securerandom.source=file:/dev/random
修改为:
securerandom.source=file:/dev/urandom
或者
securerandom.source=file:/dev/./urandom
都没有解决!
(2)在文件catalina.sh中添加
JAVA_OPTS="-Dcom.sun.management.jmxremote=
-Dcom.sun.management.jmxremote.port=1099
-Dcom.sun.management.jmxremote.rmi.port=1099
-Dcom.sun.management.jmxremote.ssl=false
-Dcom.sun.management.jmxremote.authenticate=false
-Djava.rmi.server.hostname=47.93.254.64"
JAVA_OPTS="$JAVA_OPTS -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005"
export JAVA_OPTS
添加位置
然后查找tomcat进程并杀死进程
ps -ef | grep tomcat
kill -9 进程号
开启tomcat
./startup.sh
(3) 也有可能是没有开启tomcat也会报这个错误