小知识,大挑战!本文正在参与“程序员必备小知识”创作活动。
部署过程
1、虚拟机安装centos-linux系统,安装jdk1.7+tomcat7+mysql5.5软件环境;
2、编辑tomcat/conf/tomcat-users.xml,增加用户方便管理tomcat服务;
<role rolename="manager-status"/>
<role rolename="manager-gui"/>
<user username="tomcat" password="tomcat" roles="manager-status,manager-gui"/>
复制代码
3、再编辑tomcat/conf/server.xml,新增Context标签:path=工程名,docBase=项目绝对目录
<Context path="/ProjectName" docBase="/usr/local/tomcat/webapps" privileged="true" reloadable="false" debug="0"/>
如果上面配置信息导致war包不会自动加载工程,就换个方式,docBase写上包括工程名的绝对路径:
<Context path="/" docBase="/usr/local/tomcat/webapps/ProjectName" privileged="true" reloadable="false" debug="0"/>
复制代码
4、设置防火墙:vim /etc/sysconfig/iptables 重启:/etc/init.d/iptables restart,注意端口号要匹配;
永久修改(修改防火墙):-A INPUT -p tcp -m state --state NEW -m tcp --dport 8181 -j ACCEPT
临时修改(开放端口号):iptables -I INPUT -p tcp --dport 8181-j ACCEPT
或者简单粗暴:service iotables stop,也只是临时的;
复制代码
5、加载项目在windows下部署成功,linux+mysql会提示错误,原因是:对于表名大小写敏感;
解决方法:vim /etc/my.cnf ,在[mysqld]节下添加 lower_case_table_names=1 参数 (注:默认0大小写敏感,1大小写不敏感)。
6、利用winScp工具,把war包放在tomcat的webapps绝对路径下,重启tomcat服务:
7、注意启动tomcat次数不能太频繁,会导致项目访问连接数据库占用太多内存,导致内存溢出:
Exception in thread "Druid-ConnectionPool-Destroy-1336730877"
Exception: java.lang.OutOfMemoryError thrown from the UncaughtExceptionHandler in thread "Druid-ConnectionPool-Destroy-1336730877"
复制代码
8、尝试部署了1年的javaWeb项目在linux环境下,终于跑起来了。
贴心提示:
linux环境下,建议不要将war直接放在webapps目录下,因为每启一次tomcat就会再次解压一次war包; 而是在外面创建一个目录存放war,然后再使用命令unzip解压war包到指定目录:unzip war/xxx.war -d webapps/xxx
在linux环境下部署多个tomcat应用服务器,则需要在/etc/profile 设置多个tomcat的启动路径变量:
vi /etc/profile 增加:
CATALINA_1_BASE=/usr/local/tomcat1
CATALINA_1_HOME=/usr/local/tomcat1
TOMCAT_1_HOME=/usr/local/tomcat1
export CATALINA_1_BASE CATALINA_1_HOME TOMCAT_1_HOME
source /etc/profile 使之生效
复制代码
再第二tomcat修改conf/server.xml文件,使之不同于第一个tomcat的端口号,三个端口号都需要不同。