大家好,又见面了,我是你们的朋友全栈君。
搭建JavaWeb应用开发环境–Tomcat服务器
下载与安装
首先,搜索Tomcat,找到如图网址
点击,进入Tomcat官网
在最左边一栏,有个Download,找到最新版Tomcat 9 ,点击
下拉,找到如上图所示位置,Core 核心:zip版,tar.gz版(Linux系统),32位版,64位版 ,安装版。前几个版本都不需要安装,如果你需要安装就下载最后一个,然后选中自己要下载的版本,下载。
安装之后,找到bin目录下的startup.bat(startup.sh是Linux操作系统的)
点击,进入如图所示页面,可能需要等一会。
当出现最后一行代码时,即org.apache.catalina.startup.Catalina.start Server startup in 2113 ms时,表示Tomcat启动成功。之后,最小化,在浏览器导航栏输入localhost:8080
出现如图所示页面,标明Tomcat已经启动成功并能正常运行。
如果要停止,双击bin目录下的shutdown.bat文件即可。
如果服务器无法正常启动,原因一般来说有两个:
1.JAVA_HOME环境变量设置问题
要想双击bin目录下的startup.bat文件启动Tomcat服务器,首先要做的就是在Windows中设置JAVA_HOME环境变量,因为Tomcat服务器的启动需要用到这个JAVA_HOME环境变量,如果window中不存在JAVA_HOME环境变量,则Tomcat服务器是无法启动的。
2.端口占用问题
因为Tomcat服务器启动时是需要默认是使用8080端口的,如果这个8080端口被别的应用程序占用了,那么Tomcat服务器就无法正常启动,看到的现象就是Tomcat服务器启动界面会打印出异常错误信息,然后就自动关闭。如图所示
由于这个窗口从启动到关闭的时间非常短,我们很难通过这个窗口看到Tomcat启动时的报错异常信息,因此我们一般只能通过Tomcat服务器的记录的log(日志)信息去查看Tomcat服务器的运行情况。
在Tomcat服务器的根目录下有一个logs文件夹,打开文件夹,找到最新的一个文本文档,就能查看服务器的运行情况。
8080端口被占用,只能去修改Tomcat的默认 端口。找到Tomcat下的conf->server.xml,找到如图所示
8080就是Tomcat的默认端口号,直接修改就可以,改成1024以上的端口号,保存,重复前面步骤进行验证。
Tomcat的一些常用配置
在这个页面中,右上角有个Host Manager,表示对主机上所部署的程序的管理、Manager APP对管理的一些配置,需要登录;Developer Quick Start下的Tomcat Setup是帮助文档、Example是示例代码、JDBC Data Sources是数据源
Manager APP配置
Tomcat->conf->tomcat.xml
打开后一直下拉到最后,添加代码,username用户名和password密码可以自己设置
代码语言:javascript复制<role rolename = "manager-gui"/>
<user username = "admin" password = "admin" roles = "manager-gui"/>
添加代码后重启,再打开网页点击Manager APP,输入用户名和密码,即可登录到如下页面
将Tomcat配置到服务列表中,使之随系统的启动而启动
1.添加服务
使用cmd工具,并进入Tomcat根/bin目录–>执行 service install命令–>刷新Windows服务列表
2.删除服务
使用cmd工具,并进入Tomcat根/bin目录–>执行 service remove命令–>刷新Windows服务列表
配置Tomcat的虚拟目录
在Tomcat下的conf文件夹中,找到server.xml文件
代码语言:javascript复制<host>
<context docBase="项目文件的真实物理路径" path="访问路径">
</host>
Tomcat虚拟主机的配置
什么是虚拟主机?
一台物理机上搭建多个web站点,每个web站点独立运行,互不干扰,这些站点就是虚拟主机
基于主机名的虚拟主机配置
基于主机名的虚拟主机:多个域名解析到同一个IP地址,在WEB服务器里添加多个站点,每个站点设定一个主机名。HTTP协议请求里包含了主机名信息,当WEB服务器收到访问请求时,就可以根据不用的主机名来访问不同的网站。
步骤:
a、配置域名与IP的映射管理(对于本地局域网我们使用在host文件中添加;对于大型网络或者外网网络则需要配置DNS服务器中IP地址与域名的映射关系)
在C:WindowsSystem32drivesetchosts文件末尾添加:
127.0.0.1 www.lanqiao.org
127.0.0.1 www.taiyuan.org
b、配置serVer.xml
<Host name=”www.lanqiao.org” appBase=”E:” unpackWARs=”true” autoDeploy=”true”>
<Context docBase=”e:app1″ path=”” reloadable=”true” crossContext=”true”/>
<Value className=”org.apache.catalina.valves.AccessLogValve” directory=”logs” prefix=”localhost_access_log.” suffix=”.txt” pattern=”%h %l %u %t "%rquot;%s %b”/>
</Host>
<Host name=”www.taiyuan.org” appBase=”E:app” unpackWARs=”true” autoDeploy=”true”>
<Context docBase=”e:appapp2″ path=”” reloadable=”true” crossContext=”true”/>
<Value className=”org.apache.catalina.valves.AccessLogValve” directory=”logs” prefix=”localhost_access_log.” suffix=”.txt” pattern=”%h %l %u %t "%r"%s %b”/>
</Host>
c、测试
基于端口的虚拟主机的配置
一个IP地址没通过不同的端口实现不同网站的访问
步骤:
在serVer.xml中,设置两个serVer组件
<Service name=”Catalina”> <Connector port=”8080″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ /> <Connector port=”8009″ protocol=”AJP/1.3″ redirectPort=”8443″ /> <Engine name=”Catalina” defaultHost=”localhost”> <Realm className=”org.apache.catalina.realm.LockOutRealm”> <Realm className=”org.apache.catalina.realm.UserDatabaseRealm” resourceName=”UserDatabase”/> </Realm> <Host name=”www.lanqiao.org” appBase=”E:” unpackWARs=”true” autoDeploy=”true”> <Context docBase=”e:app2″ path=”” reloadable=”true” crossContext=”true”/> <Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs” prefix=”localhost_access_log.” suffix=”.txt” pattern=”%h %l %u %t "%r" %s %b” /> </Host> </Engine> </Service> <Service name=”Catalina2″> <Connector port=”8888″ protocol=”HTTP/1.1″ connectionTimeout=”20000″ redirectPort=”8443″ /> <Connector port=”8010″ protocol=”AJP/1.3″ redirectPort=”8443″ /> <Engine name=”Catalina2″ defaultHost=”localhost”> <Realm className=”org.apache.catalina.realm.LockOutRealm”> <Realm className=”org.apache.catalina.realm.UserDatabaseRealm” resourceName=”UserDatabase”/> </Realm> <Host name=”www.taiyuan.org” appBase=”E:” unpackWARs=”true” autoDeploy=”true”> <Context docBase=”e:app2″ path=”” reloadable=”true” crossContext=”true”/> <Valve className=”org.apache.catalina.valves.AccessLogValve” directory=”logs” prefix=”localhost_access_log.” suffix=”.txt” pattern=”%h %l %u %t "%r" %s %b” /> </Host> </Engine>
</Service>
发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/151091.html原文链接:https://javaforall.cn