tomcat基础学习
Tomcat是Apache软件基金会维护的一个核心项目,是一个免费的开放源码的轻量级web应用服务器,作为JSP/SERVERLET容器。
一、准备:
环境:CentOS 7 VM
YUM源:对接yum源,比如:阿里的yum源,参照网上配置
二、安装
[root@localhost]# yum install tomcat
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base | 3.6 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 110 kB 00:00:00
(2/4): epel/x86_64/updateinfo | 834 kB 00:00:00
(3/4): updates/7/x86_64/primary_db | 2.7 MB 00:00:00
(4/4): epel/x86_64/primary_db | 4.8 MB 00:00:00
Determining fastest mirrors
Resolving Dependencies
--> Running transaction check
---> Package tomcat.noarch 0:7.0.76-2.el7 will be installed
--> Processing Dependency: tomcat-lib = 7.0.76-2.el7 for package: tomcat-7.0.76-2.el7.noarch
(中间略)
[root@localhost]# yum install tomcat
Loaded plugins: fastestmirror
Repodata is over 2 weeks old. Install yum-cron? Or run: yum makecache fast
base | 3.6 kB 00:00:00
epel | 4.3 kB 00:00:00
extras | 3.4 kB 00:00:00
updates | 3.4 kB 00:00:00
(1/4): extras/7/x86_64/primary_db | 110 kB 00:00:00
(2/4): epel/x86_64/updateinfo | 834 kB 00:00:00
(3/4): updates/7/x86_64/primary_db | 2.7 MB 00:00:00
(4/4): epel/x86_64/primary_db | 4.8 MB 00:00:00
Determining fastest mirrors
Resolving Dependencies
--> Running transaction check
---> Package tomcat.noarch 0:7.0.76-2.el7 will be installed
--> Processing Dependency: tomcat-lib = 7.0.76-2.el7 for package: tomcat-7.0.76-2.el7.noar
(中间略)
Delta RPMs disabled because /usr/bin/applydeltarpm not installed.
(1/54): apache-commons-daemon-1.0.13-6.el7.x86_64.rpm | 54 kB 00:00:00
(2/54): apache-commons-collections-3.2.1-22.el7_2.noarch.rpm | 509 kB 00:00:00
(3/54): apache-commons-logging-1.1.2-7.el7.noarch.rpm | 78 kB 00:00:00
(4/54): apache-commons-dbcp-1.4-17.el7.noarch.rpm | 167 kB 00:00:00
(5/54): avalon-framework-4.3-10.el7.noarch.rpm | 88 kB 00:00:00
(6/54): apache-commons-pool-1.6-9.el7.noarch.rpm | 113 kB 00:00:00
(7/54): copy-jdk-configs-2.2-3.el7.noarch.rpm | 18 kB 00:00:00
(8/54): avalon-logkit-2.1-14.el7.noarch.rpm | 87 kB 00:00:00
(9/54): fontconfig-2.10.95-11.el7.x86_64.rpm | 229 kB 00:00:00
(10/54): fontpackages-filesystem-1.44-8.el7.noarch.rpm | 9.9 kB 00:00:00
(11/54): geronimo-jms-1.1.1-19.el7.noarch.rpm | 31 kB 00:00:00
(12/54): geronimo-jta-1.1.1-17.el7.noarch.rpm | 20 kB 00:00:00
(13/54): giflib-4.1.6-9.el7.x86_64.rpm | 40 kB 00:00:00
(14/54): ecj-4.5.2-3.el7.x86_64.rpm | 1.9 MB 00:00:00
(15/54): javamail-1.4.6-8.el7.noarch.rpm | 758 kB 00:00:00
(16/54): javapackages-tools-3.4.1-11.el7.noarch.rpm | 73 kB 00:00:00
(17/54): libSM-1.2.2-2.el7.x86_64.rpm | 39 kB 00:00:00
(18/54): libICE-1.0.9-9.el7.x86_64.rpm | 66 kB 00:00:00
(19/54): java-1.8.0-openjdk-1.8.0.144-0.b01.el7_4.x86_64.rpm | 238 kB 00:00:00
(20/54): libX11-common-1.6.5-1.el7.noarch.rpm | 164 kB 00:00:00
(21/54): libXau-1.0.8-2.1.el7.x86_64.rpm | 29 kB 00:00:00
(22/54): libX11-1.6.5-1.el7.x86_64.rpm | 606 kB 00:00:00
(23/54): libXcomposite-0.4.4-4.1.el7.x86_64.rpm | 22 kB 00:00:00
(24/54): libXext-1.3.3-3.el7.x86_64.rpm | 39 kB 00:00:00
(25/54): libXi-1.7.9-1.el7.x86_64.rpm | 40 kB 00:00:00
(26/54): libXfont-1.5.2-1.el7.x86_64.rpm | 152 kB 00:00:00
(27/54): libXrender-0.9.10-1.el7.x86_64.rpm | 26 kB 00:00:00
(28/54): libXtst-1.2.3-1.el7.x86_64.rpm | 20 kB 00:00:00
(29/54): libfontenc-1.1.3-3.el7.x86_64.rpm | 31 kB 00:00:00
(30/54): libjpeg-turbo-1.2.90-5.el7.x86_64.rpm | 134 kB 00:00:00
(31/54): libpng-1.5.13-7.el7_2.x86_64.rpm | 213 kB 00:00:00
(32/54): libxcb-1.12-1.el7.x86_64.rpm | 211 kB 00:00:00
(33/54): libxslt-1.1.28-5.el7.x86_64.rpm | 242 kB 00:00:00
(34/54): lksctp-tools-1.0.17-2.el7.x86_64.rpm | 88 kB 00:00:00
(35/54): lyx-fonts-2.2.3-1.el7.noarch.rpm | 159 kB 00:00:00
(36/54): log4j-1.2.17-16.el7_4.noarch.rpm | 444 kB 00:00:00
(37/54): nss-softokn-3.28.3-8.el7_4.x86_64.rpm | 310 kB 00:00:00
(38/54): nss-softokn-freebl-3.28.3-8.el7_4.x86_64.rpm | 214 kB 00:00:00
(39/54): python-javapackages-3.4.1-11.el7.noarch.rpm | 31 kB 00:00:00
(40/54): python-lxml-3.2.1-4.el7.x86_64.rpm | 758 kB 00:00:00
(41/54): tomcat-7.0.76-2.el7.noarch.rpm | 90 kB 00:00:00
(42/54): tomcat-el-2.2-api-7.0.76-2.el7.noarch.rpm | 79 kB 00:00:00
(43/54): tomcat-jsp-2.2-api-7.0.76-2.el7.noarch.rpm | 93 kB 00:00:00
(44/54): tomcat-servlet-3.0-api-7.0.76-2.el7.noarch.rpm | 210 kB 00:00:00
(45/54): ttmkfdir-3.0.9-42.el7.x86_64.rpm | 48 kB 00:00:00
(46/54): tzdata-java-2017b-1.el7.noarch.rpm | 183 kB 00:00:00
(47/54): tomcat-lib-7.0.76-2.el7.noarch.rpm | 3.9 MB 00:00:00
(48/54): xalan-j2-2.7.1-23.el7.noarch.rpm | 1.9 MB 00:00:00
(49/54): xerces-j2-2.11.0-17.el7_0.noarch.rpm | 1.1 MB 00:00:00
(50/54): xml-commons-apis-1.4.01-16.el7.noarch.rpm | 227 kB 00:00:00
(51/54): xorg-x11-font-utils-7.5-20.el7.x86_64.rpm | 87 kB 00:00:00
(52/54): xml-commons-resolver-1.2-15.el7.noarch.rpm | 108 kB 00:00:00
(53/54): xorg-x11-fonts-Type1-7.5-9.el7.noarch.rpm | 521 kB 00:00:00
(54/54): java-1.8.0-openjdk-headless-1.8.0.144-0.b01.el7_4.x86_64.rpm | 32 MB 00:00:01
-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Total 28 MB/s | 48 MB 00:00:01
(结尾略)
三、启动:
# 修改tomcat的端口号/usr/share/tomcat/conf/server.xml,如下:
<Connector port="8090" protocol="HTTP/1.1"
connectionTimeout="20000"
redirectPort="8443" />
[root@localhost]# service tomcat start # 启动tomcat
Redirecting to /bin/systemctl start tomcat.service
# 实际为使用systemctl调用/usr/lib/systemd/system/tomcat.service配置启动tomcat
[root@localhost]# service tomcat status # 查看tomcat状态
Redirecting to /bin/systemctl status tomcat.service
● tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/usr/lib/systemd/system/tomcat.service; disabled; vendor preset: disabled)
Active: active (running) since Wed 2017-10-11 20:00:36 CST; 16min ago
Main PID: 28133 (java)
CGroup: /system.slice/tomcat.service
└─28133 /usr/lib/jvm/jre/bin/java -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatal...
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: Oct 11, 2017 8:00:37 PM org.apache.catalina.core.StandardService startInternal
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: INFO: Starting service Catalina
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: Oct 11, 2017 8:00:37 PM org.apache.catalina.core.StandardEngine startInternal
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: INFO: Starting Servlet Engine: Apache Tomcat/7.0.76
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: Oct 11, 2017 8:00:37 PM org.apache.coyote.AbstractProtocol start
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: INFO: Starting ProtocolHandler ["http-bio-8080"]
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: Oct 11, 2017 8:00:37 PM org.apache.coyote.AbstractProtocol start
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: INFO: Starting ProtocolHandler ["ajp-bio-8009"]
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: Oct 11, 2017 8:00:37 PM org.apache.catalina.startup.Catalina start
Oct 11 20:00:37 iZbp1679bcuj0vinyihgk0Z server[28133]: INFO: Server startup in 112 ms
# 查看进程状态
[root@localhost]# ps -ef | grep tomcat
tomcat 28133 1 0 20:00 ? 00:00:01 /usr/lib/jvm/jre/bin/java -classpath /usr/share/tomcat/bin/bootstrap.jar:/usr/share/tomcat/bin/tomcat-juli.jar:/usr/share/java/commons-daemon.jar -Dcatalina.base=/usr/share/tomcat -Dcatalina.home=/usr/share/tomcat -Djava.endorsed.dirs= -Djava.io.tmpdir=/var/cache/tomcat/temp -Djava.util.logging.config.file=/usr/share/tomcat/conf/logging.properties -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager org.apache.catalina.startup.Bootstrap start
可以看到,tomcat在执行过程中会对/usr/share/tomcat/下的文件进行加载,以便响应相应的请求。
四、tomcat工作空间:
从上面的进程可以看到tomcat的工作空间:
[root@localhost]# tree /usr/share/tomcat/
/usr/share/tomcat/
├── bin # 启动脚本,该RPM中不包含catalina.sh文件
│ ├── bootstrap.jar
│ ├── catalina-tasks.xml
│ └── tomcat-juli.jar
├── conf -> /etc/tomcat # 配置,包括server.xml(主要配置),web应用缺省文件web.xml等
├── lib -> /usr/share/java/tomcat # tomcat使用的lib库(jar),会加载到tomcat的classpath中
├── logs -> /var/log/tomcat # 日志
├── temp -> /var/cache/tomcat/temp # 临时文件目录
├── webapps -> /var/lib/tomcat/webapps # web应用
└── work -> /var/cache/tomcat/work # 工作目录,将翻译的JSP以及其他放到这里
五、webapps下创建测试网页
[root@localhost app1]# pwd # webapps目录
/usr/share/tomcat/webapps/app1
[root@localhost app1]# cat app1.html # 新建的应用网页
<html>
<head>
<title>This is app1</title>
</head>
<body>A test for app1</body>
</html>
六、关闭防火墙
有时网页不能正确的打开,需要手动关闭防火墙:
[root@localhost app1]# service firewalld status
Redirecting to /bin/systemctl status firewalld.service
● firewalld.service - firewalld - dynamic firewall daemon
Loaded: loaded (/usr/lib/systemd/system/firewalld.service; enabled; vendor preset: enabled)
Active: active (running) since Mon 2017-10-16 08:54:25 PDT; 5 days ago
Main PID: 825 (firewalld)
CGroup: /system.slice/firewalld.service
└─825 /usr/bin/python -Es /usr/sbin/firewalld --nofork --nopid
Oct 16 08:54:16 localhost.localdomain systemd[1]: Starting firewalld - dynamic firewall daemon...
Oct 16 08:54:25 localhost.localdomain systemd[1]: Started firewalld - dynamic firewall daemon.
[root@localhost app1]# service firewalld stop
Redirecting to /bin/systemctl stop firewalld.service
七、登陆网页