安装tomcat前需要安装jdk,jdk1.7对应tomcat7,jdk1.8对应tomcat8,本人已安装好jdk并设置好系统变量,jdk安装路径为usr/local/jdk1.7.0_79
一、tomcat官网中下载tomcat的tar.gz安装包。下载地址:apache-tomcat-7.0.82.tar.gz
二.把tomcat压缩包上传到Linux中,使用命令解压到/usr/local目录下(常用系统软件安装目录) tar -zxvf apache-tomcat-7.0.82.tar.gz /usr/local
三.切换到tomcat的bin目录下,输入 ./startup.sh 命令启动Tomcat 输入http://ip/8080 访问,如果访问不了,可能是防火墙没空开放8080端口
四.设置开机启动
4.1修改bin/setclasspath.sh配置
在setclasspath.sh文件中的
# Make sureprerequisite environment variables are set
这行前面增加下面两行:
> export JAVA_HOME=usr/local/jdk1.7.0_79
> export JRE_HOME=usr/local/jdk1.7.0_79es/jre
4.2在tomca7/bin 目录下面,新建 setenv.sh配置文件
catalina.sh启动的时候会调用,同时配置java内存参数
setenv.sh的内容如下:
#add tomcat pid
CATALINA_PID="$CATALINA_BASE/tomcat.pid"
#add java opts
JAVA_OPTS="-server -XX:PermSize=256M -XX:MaxPermSize=1024m -Xms512M -Xmx1024M -XX:MaxNewSize=256m"
4.3 在/usr/lib/systemd/system目录下增加tomcat.service,目录必须是绝对目录
tomcat.service把tomcat设置为一个系统服务,内容如下:
[Unit]
Description=Tomcat
After=syslog.targetnetwork.target remote-fs.target nss-lookup.target
[Service]
Type=forking
PIDFile=/usr/local/apache-tomcat-7.0.82/tomcat.pid
ExecStart=/usr/local/apache-tomcat-7.0.82/bin/startup.sh
ExecReload=/bin/kill-s HUP $MAINPID
ExecStop=/bin/kill-s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
4.4设置服务开机启动
systemctl enable tomcat.service
4.5注意事项
tomcat设置自启动后,启动或关闭tomcat最后使用 systemctl命令而不再是使用tomcat/bin目录中的startup.sh和shutdown.sh
五、systemctl常用命令
查看tomcat的状态
systemctl status tomcat.service
配置开机启动
systemctl enable tomcat.service
删除开机启动
systemctl disable tomcat.service
启动tomcat
systemctl start tomcat.service
停止tomcat
systemctl stop tomcat.service
重启tomcat
systemctl restart tomcat.service
其中.service可以省略。
六、切割tomcat的catalina.out日志
6.1重设catalina.out的输出路径(很重要,我在这里踩了一个大坑,花了两天才搞定)
修改tomcat/bin目录下的catalina.sh文件,把catalina.out的输出路径给为/var/log,注意:输出路径一定要/var/log目录下,否则切割失败(自动切割是权限不够)
把 CATALINA_OUT=”$CATALINA_BASE”/logs/catalina.out 修改为CATALINA_OUT=/var/log/catalina.out
6.2配置日志轮转文件
在/etc/logrotate.d/新建文件tomcat,tomcat的内容如下
/var/log/catalina.out {
compress
delaycompress
daily
size=2M
copytruncate
create 644 root root
ifempty
rotate 7
olddir /var/log/tomcatlog
missingok
dateext
}
6.3手动调用日志切割命令
调用为/etc/lograte.d/下配置的所有日志调用logrotate:
logrotate /etc/logrotate.conf
调用Tomcat的logrotate:
logrotate /etc/logrotate.d/tomcat
6.4.日志文件配置详解
compress #是否通过gzip压缩转储以后的日志文件,如xxx.log-20131216.gz ;nocompress不需要压缩 一个2~3GB的日志文件可以压缩成60MB左右
delaycompress #和compress一起使用时,转储的日志文件到下一次转储时才压缩
daily #每天切割一次;weekly每周;monthly每月
size 50K # 当catalina.out文件大于16MB时,就轮转
copytruncate# 创建新的catalina.out副本后,截断源;nocopytruncate备份日志文件不过不截断
create 0664 root utmp #指定新建的日志文件权限以及所属用户和组;nocreate不建立新的日志文件
notifempty #日志为空不轮转;ifempty 即使日志文件为空文件也做轮转,这个是logrotate的缺省选项。
rotate 7 #保留7个日志
olddir /var/log/old_log #切割后日志存放位置;noolddir转储后的日志文件和当前日志文件放在同一个目录下,注意日志文件最好也放在/var/log目录下
missingok # 如果要轮转的文件丢失了,继续轮转而不报错
dateext #就是切割后的日志文件以当前日期为格式结尾,如xxx.log-20131216这样,如果注释掉,切割出来是按数字递增,即前面说的 xxx.log-1这种格式
sharedscripts #运行postrotate脚本,作用是在所有日志都轮转后统一执行一次脚本。如果没有配置这个,那么每个日志轮转后都会执行一次脚本
6.5 如果日志文件不轮转或出错,使用 cat /var/spool/mail/root 查看系统发送的出错邮件
参考博客:
http://blog.csdn.net/tiantang_1986/article/details/53704966
https://linux.cn/article-4126-1.html