文章讲述在centos7上用tomcat部署springboot项目,并且按日志按每天输出。
先打开springboot项目的pom.Xml,
要打包成war,添加:<packaging>war</packaging>
添加一个依赖:
<!--声明spring boot内嵌tomcat的作用范围在运行时不起作用-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-tomcat</artifactId>
<scope>provided</scope>
</dependency>
再添加插件:
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.6.0</version>
<configuration>
<source>1.8</source>
<target>1.8</target>
</configuration>
</plugin>
</plugins>
<!-- 打包后的名称 -->
<finalName>testProject</finalName>
</build>
我这里使用eclipse,然后run as -》 maven bulid -》 clean install 就打包成testProject.war,
在centos机器上新建一个文件夹,把tomcat压缩包和testProject.war放进去(比如我tomcat放在/www/testWork/ ,testProject.war放在/www/testWork/testProject)
解压:
在tomcat的bin下修改startup.sh,在后面添加自己的环境:
export JAVA_HOME=/usr/local/java/jdk1.8.0_201
export CATALINA_HOME=/www/testWork/apache-tomcat-8.5.40
export TOMCAT_HOME=/www/testWork/apache-tomcat-8.5.40
export JAVA_OPTS="-Xms512m -Xmx512m"
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$CATALINA_HOME/lib/servlet-api.jar
export PATH=$PATH:$JAVA_HOME/bin:$CATALINA_HOME/bin:$TOMCAT_HOME/bin
修改tomcat的conf/server.xml
<Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Context path="/" docBase="/www/testWork/testProject" debug="0"/>
<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
prefix="localhost_access_log" suffix=".txt"
pattern="%h %l %u %t "%r" %s %b" />
</Host>
运行tomcat的bin目录下的startup.sh文件启动tomcat,tail -f logs/catalina.out 查看日志,启动成功就访问(wget http://localhost:8080),这个页面就可以下载下来,查看没有错,就用另外机器访问,如果访问失败,那就是防火墙问题,
防火墙开放8080端口
firewall-cmd --zone=public --add-port=8080/tcp --permanent
防火墙重新启动
firewall-cmd --reload
这样项目就部署成功。
项目上的Tomcat服务器logs目录下面的catalina.out日志运行一段时间之后,变的越来越大,而这样如果需要查找某一天内特定的日志内容时就会变得很不方便,所以需要对这个日志进行按日期分割生成,方便查找日志。
这个过程总共分为两步:
1.在服务器上安装cronolog(如果已经安装,跳过此步)
在服务器执行which cronolog命令,如果输出一个具体的路径,说明你的服务器已经安装好cronolog,不需要再安装,可以跳过第一步。
如果不是,则需要给你的服务器安装cronolog,
下载cronolog:
链接: https://pan.baidu.com/s/1cdRvO-ROfqbm6tAT9aICuA 密码: ica7
下载完成之后,上传到你的服务器,进入你上传的目录解压:tar zxvf cronolog-1.6.2.tar.gz
进入到解压缩后的目录执行:
./configure
注:执行./configure时报错,error: no acceptable cc found in $PATH
原因是没有安装gcc的编辑器。因此安装
yum install gcc gcc-c++ gcc-g77
然后执行:
make
make install
执行完之后,如果一切正常,则代表安装成功,验证安装是否成功,执行:
which cronolog
输出路劲/usr/local/sbin/cronolog表示安装成功。
2.配置Tomcat配置文件
打开tomcat目录下bin/catalina.sh文件,
在420行左右 有一行这样的代码
touch "$CATALINA_OUT"
前面加上"#"注释掉
#touch "$CATALINA_OUT"
在432行左右,有下面类似的代码
org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_OUT” 2>&1 “&”
修改为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
|/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 2>&1 &
(注意如果你的cronolog安装路径不是/usr/local/sbin/cronolog 那么则需要该改为你自己的路径)
在441行左右也有一段同样的代码
org.apache.catalina.startup.Bootstrap “$@” start \
>> “$CATALINA_OUT” 2>&1 “&”
也修改为
org.apache.catalina.startup.Bootstrap "$@" start 2>&1 \
|/usr/local/sbin/cronolog "$CATALINA_BASE"/logs/catalina.%Y-%m-%d.out >> /dev/null 2>&1 &
修改完之后重启tomcat,你会发现logs目录下面多出一个按照当天日期生成的一个catalina.xxxx-xx-xx.out文件