草庐IT

Linux安装Tomcat及配置(详细)

米子哈ooo 2023-07-25 原文

一、前置条件

安装tomcat需要先安装jdk

二、Linux上安装tomcat

1. 下载Apache tomcat

官网下载链接:https://tomcat.apache.org/download-90.cgi

2. 检查linux是否安装tomcat

检测是否有安装了Tomcat:rpm -qa|grep tomcat
查看Tomcat的进程ID:ps -ef|grep tomcat
查看Tomcat目录:find / -name tomcat
查看下系统信息,确认是32位还是64位:uname -a

[root@YIWEI /]# uname -a   
Linux YIWEI.SERVER 3.10.0-1160.53.1.el7.x86_64 #1 SMP Fri Jan 14 13:59:45 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
[root@YIWEI /]# 

3. 上传服务器、解压缩tomcat

使用Xftp工具将tar.gz压缩包上传到 /usr/local 目录中,以下操作命令都需要在root账户下操作。
进入目录解压安装包
进入目录:cd /usr/local
解压文件:tar -zxvf apache-tomcat-8.5.78.tar.gz
将目录apache-tomcat-8.5.37重命名为tomcat,方便一些
重命名文件:mv apache-tomcat-8.5.78 tomcat8

4. 配置环境变量

输入:vim /etc/profile 打开配置文件,按 i 进入编辑模式,在profile文件尾部 unset -f pathmunge 后面添加如下内容:

unset i
unset -f pathmunge
export JAVA_HOME=/usr/local/java/jdk1.8.0_221
export JRE_HOME=${JAVA_HOME}/jre
export CATALINA_HOME=/usr/local/tomcat8
export CLASSPATH=.:${JAVA_HOME}/lib:${JRE_HOME}/lib:$CLASSPATH
export JAVA_PATH=${JAVA_HOME}/bin:${JRE_HOME}/bin:${CATALINA_HOME}/bin
export PATH=$PATH:${JAVA_PATH}:$PATH

编辑完之后,按Esc键退出,并输入:wq(小写) 保存,或按 :wq!强制保存,然后输入以下命令:source /etc/profile 刷新环境配置使profile文件立即生效。

5. 正常启动

运行  `/usr/local/tomcat8/bin/startup.sh ` 就会启动tomcat,
在浏览器中访问http://localhost:8080了,能看到界面,说明访问成功。

6. 正常关闭

运行/usr/local/tomcat8/bin/shutdown.sh 就会关闭tomcat

7. 修改tomcat配置

进入/usr/local/tomcat8/conf目录修改server.xml中的tomcat端口

运行 vim server.xml用“/8080”定位到8080端口。如下图:

按 i 进入编辑模式,可以修改端口,默认8080,然后按ESC键退出,并输入:wq(注意有一个英文冒号)保存,或按 :wq! 强制保存。

8. 局域网内无法访问解决办法

访问本地:http://localhost:8080/正确。但局域网内无法访问,而且服务器可ping通。

注意:如果执行 firewall-cmd --zone=public --add-port=3690/tcp --permanent
提示 FirewallD is not running 错误,则说明防火墙未开启。

   1. 通过 systemctl status firewalld 查看firewalld状态,发现当前是Active: inactive (dead)状态,即防火墙未开启。

   2. 通过  systemctl start firewalld  开启防火墙,没有任何提示即开启成功。

   3. 再次通过 systemctl status firewalld 查看firewalld状态,显示running即已开启了。

   4. 如果要关闭防火墙设置,可通过 systemctl stop firewalld 这条指令来关闭该功能。 

先查看防火墙开放端口列表对于Centos7系统 firewall-cmd --zone=public --list-ports

如果没有8080端口,添加端口
1 如果是firewalld防火墙 (对于Centos7系统),开启防火墙端口 firewall-cmd --zone=public --add-port=8080/tcp --permanent 并且重新加载防火墙 firewall-cmd --reload

2 如果是iptables防火墙 ,执行 vi /etc/sysconfig/iptables
加入下面内容 -A RH-Firewall-1-INPUT -m state --state NEW -m tcp -p tcp --dport 8080 -j ACCEPT
如上配置并重启iptables就可以在局域网内访问8080端口了

在不同Linux系统中,操作指令会有细微的差别,Centos6防火墙相关命令:

service  iptables  status        查看防火墙状态
service  iptables  start         开启防火墙
service  iptables  stop          关闭防火墙
service  iptables  restart       重启防火墙

对于Centos7系统来说,只有使用下面的指令,才可以对Linux防火墙进行启停。

#查看防火墙开放端口列表命 
firewall-cmd --zone=public --list-ports 或 firewall-cmd --list-port 令:  
#查看某个端口是否开放 :     
firewall -cmd --query-port=8080/tcp    					    
#防火墙开放8080端口 :
firewall-cmd --zone=public --add-port=8080/tcp --permanent 	
#批量开放区间端口: 	        
firewall-cmd --zone=public --add-port=8081-8082/tcp --permanent
#防火墙关闭8080端口	         
firewall-cmd --zone=public --remove-port=8080/tcp --permanent		  

systemctl status firewalld		#查看防火墙状态命令:
systemctl start firewalld 		#开启防火墙命令:
systemctl stop firewalld 		#关闭防火墙命令:
systemctl disable firewalld			 #禁止防火墙开机自启动命令:
systemctl enable firewalld 			#开启防火窗开机自启动命令:
firewall-cmd --reload			 #重新加载防火墙命令:

9. 其他一些问题

启动以后,可以利用命令 ps -ef|grep tomcat 查看tomcat是否正常启动。

如果正常启动以后无法访问,可以先不修改8080端口,尝试用8080端口访问。如果可以通过8080端口正常访问,则说明80端口被其他应用占用。

或者使用 netstat -an|grep 8080 命令查看是否有程序占用8080端口。

三、设置tomcat开机自动启动

1. 在 tomcat/bin 目录下面,增加 setenv.sh 配置,服务启动的时候会调用,同时配置java内存参数。

输入命令编辑:vim /usr/local/tomcat/bin/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" 

2. 增加tomcat.service,在/usr/lib/systemd/system目录下增加tomcat.service

输入命令编辑:vim /usr/lib/systemd/system/tomcat.service

[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target remote-fs.target nss-lookup.target
[Service]
Type=forking
Environment='JAVA_HOME=/usr/local/java/jdk1.8.0_221/'
Environment='CATALINA_PID=/usr/local/tomcat/tomcat.pid'
Environment='CATALINA_HOME=/usr/local/tomcat/'
Environment='CATALINA_BASE=/usr/local/tomcat/'
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
PIDFile=/usr/local/tomcat/tomcat.pid
ExecStart=/usr/local/tomcat/bin/startup.sh
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
PrivateTmp=true
[Install]
WantedBy=multi-user.target
[unit]配置了服务的描述,规定了在network启动之后执行。
[service]配置了环境变量,JAVA_HOME,服务的pid,服务的启动,停止,重启,内存参数。
[install]配置了使用用户。

当需要启动多个tomcat时,复制多个tomcat安装文件在/usr/local/下,如/usr/local/tomcat2,并配置多个tomcat.service 如tomcat2.service,tomcat3.service 在配置中修改对应的路径即可。

因为配置pid,在启动的时候会在tomcat根目录生成tomcat.pid文件,停止之后删除。

ps:同时tomcat在启动时候,执行start不会启动两个tomcat,保证始终只有一个tomcat服务在运行。

ps:多个tomcat可以配置在多个目录下,使用不同的端口,互不影响。

3. 设置开机自启动

systemctl enable tomcat.service

4. 启动tomcat

systemctl start tomcat.service

5. 在浏览器测试(略)

6. 上述步骤操作完成后如果还是访问不了tomcat服务,可以尝试重启一下linux服务器,命令:reboot

systemctl常用命令
其中.service 可以省略

systemctl daemon-reload ##重新加载一下系统服务命令:(修改脚本后操作)

systemctl list-unit-files --type service ## 查看全部服务命令:

systemctl status name.service ##查看服务状态

systemctl enable name.service## 设置开机自启动

systemctl disable name.service## 停止开机自启动

systemctl start name.service## 启动服务

systemctl stop name.service## 停止服务

systemctl restart name.service## 重启服务

有关Linux安装Tomcat及配置(详细)的更多相关文章

  1. ruby - 在 64 位 Snow Leopard 上使用 rvm、postgres 9.0、ruby 1.9.2-p136 安装 pg gem 时出现问题 - 2

    我想为Heroku构建一个Rails3应用程序。他们使用Postgres作为他们的数据库,所以我通过MacPorts安装了postgres9.0。现在我需要一个postgresgem并且共识是出于性能原因你想要pggem。但是我对我得到的错误感到非常困惑当我尝试在rvm下通过geminstall安装pg时。我已经非常明确地指定了所有postgres目录的位置可以找到但仍然无法完成安装:$envARCHFLAGS='-archx86_64'geminstallpg--\--with-pg-config=/opt/local/var/db/postgresql90/defaultdb/po

  2. ruby - 完全离线安装RVM - 2

    我打算为ruby​​脚本创建一个安装程序,但我希望能够确保机器安装了RVM。有没有一种方法可以完全离线安装RVM并且不引人注目(通过不引人注目,就像创建一个可以做所有事情的脚本而不是要求用户向他们的bash_profile或bashrc添加一些东西)我不是要脚本本身,只是一个关于如何走这条路的快速指针(如果可能的话)。我们还研究了这个很有帮助的问题:RVM-isthereawayforsimpleofflineinstall?但有点误导,因为答案只向我们展示了如何离线在RVM中安装ruby。我们需要能够离线安装RVM本身,并查看脚本https://raw.github.com/wayn

  3. ruby-on-rails - rails 目前在重启后没有安装 - 2

    我有一个奇怪的问题:我在rvm上安装了ruby​​onrails。一切正常,我可以创建项目。但是在我输入“railsnew”时重新启动后,我有“程序'rails'当前未安装。”。SystemUbuntu12.04ruby-v"1.9.3p194"gemlistactionmailer(3.2.5)actionpack(3.2.5)activemodel(3.2.5)activerecord(3.2.5)activeresource(3.2.5)activesupport(3.2.5)arel(3.0.2)builder(3.0.0)bundler(1.1.4)coffee-rails(

  4. ruby - 如何为 emacs 安装 ruby​​-mode - 2

    我刚刚为fedora安装了emacs。我想用emacs编写ruby。为ruby​​提供代码提示、代码完成类型功能所需的工具、扩展是什么? 最佳答案 ruby-mode已经包含在Emacs23之后的版本中。不过,它也可以通过ELPA获得。您可能感兴趣的其他一些事情是集成RVM、feature-mode(Cucumber)、rspec-mode、ruby-electric、inf-ruby、rinari(用于Rails)等。这是我当前用于Ruby开发的Emacs配置:https://github.com/citizen428/emacs

  5. ruby-on-rails - 无法在centos上安装therubyracer(V8和GCC出错) - 2

    我正在尝试在我的centos服务器上安装therubyracer,但遇到了麻烦。$geminstalltherubyracerBuildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingtherubyracer:ERROR:Failedtobuildgemnativeextension./usr/local/rvm/rubies/ruby-1.9.3-p125/bin/rubyextconf.rbcheckingformain()in-lpthread...yescheckingforv8.h...no***e

  6. ruby-on-rails - 独立 ruby​​ 脚本的配置文件 - 2

    我有一个在Linux服务器上运行的ruby​​脚本。它不使用rails或任何东西。它基本上是一个命令行ruby​​脚本,可以像这样传递参数:./ruby_script.rbarg1arg2如何将参数抽象到配置文件(例如yaml文件或其他文件)中?您能否举例说明如何做到这一点?提前谢谢你。 最佳答案 首先,您可以运行一个写入YAML配置文件的独立脚本:require"yaml"File.write("path_to_yaml_file",[arg1,arg2].to_yaml)然后,在您的应用中阅读它:require"yaml"arg

  7. ruby - 通过 RVM (OSX Mountain Lion) 安装 Ruby 2.0.0-p247 时遇到问题 - 2

    我的最终目标是安装当前版本的RubyonRails。我在OSXMountainLion上运行。到目前为止,这是我的过程:已安装的RVM$\curl-Lhttps://get.rvm.io|bash-sstable检查已知(我假设已批准)安装$rvmlistknown我看到当前的稳定版本可用[ruby-]2.0.0[-p247]输入命令安装$rvminstall2.0.0-p247注意:我也试过这些安装命令$rvminstallruby-2.0.0-p247$rvminstallruby=2.0.0-p247我很快就无处可去了。结果:$rvminstall2.0.0-p247Search

  8. ruby - 如何在 Lion 上安装 Xcode 4.6,需要用 RVM 升级 ruby - 2

    我实际上是在尝试使用RVM在我的OSX10.7.5上更新ruby,并在输入以下命令后:rvminstallruby我得到了以下回复:Searchingforbinaryrubies,thismighttakesometime.Checkingrequirementsforosx.Installingrequirementsforosx.Updatingsystem.......Errorrunning'requirements_osx_brew_update_systemruby-2.0.0-p247',pleaseread/Users/username/.rvm/log/138121

  9. ruby - Fast-stemmer 安装问题 - 2

    由于fast-stemmer的问题,我很难安装我想要的任何ruby​​gem。我把我得到的错误放在下面。Buildingnativeextensions.Thiscouldtakeawhile...ERROR:Errorinstallingfast-stemmer:ERROR:Failedtobuildgemnativeextension./System/Library/Frameworks/Ruby.framework/Versions/2.0/usr/bin/rubyextconf.rbcreatingMakefilemake"DESTDIR="cleanmake"DESTDIR=

  10. Ruby Sinatra 配置用于生产和开发 - 2

    我已经在Sinatra上创建了应用程序,它代表了一个简单的API。我想在生产和开发上进行部署。我想在部署时选择,是开发还是生产,一些方法的逻辑应该改变,这取决于部署类型。是否有任何想法,如何完成以及解决此问题的一些示例。例子:我有代码get'/api/test'doreturn"Itisdev"end但是在部署到生产环境之后我想在运行/api/test之后看到ItisPROD如何实现? 最佳答案 根据SinatraDocumentation:EnvironmentscanbesetthroughtheRACK_ENVenvironm

随机推荐