在WSL上安装tomcat 9



在WSL上安装tomcat 9后,系统无法识别它。

由于systemctl命令在WSL上不起作用,我使用了以下命令:

sudo service tomcat9 start

返回

tomcat9: unrecognized service

我遵循了两种安装方法,但出现了同样的问题。

参考文献有:

https://www.digitalocean.com/community/tutorials/install-tomcat-9-ubuntu-1804

https://linuxconfig.org/ubuntu-20-04-tomcat-installation

这个问题有线索吗?

这是我的环境:

windows 10 2004版

ubuntu 20.04(WSL(

openjdk版本:";1.8.0_265";

更新:

我在安装了ubuntu 20.04的gcp vm实例上做了同样的过程来调查这个问题,发现这个过程在ubuntu 20.004上没有问题,而在WSL上没有问题。

所以我认为这个问题是从WSL派生出来的。

记录我的所有过程,希望有人能找到在WSL ubuntu上安装tomcat 9的解决方案。

java安装

sudo apt update
sudo apt install openjdk-8-jdk

在/etc/environment 中设置JAVA_HOME

JAVA_HOME="/usr/lib/jvm/java-8-openjdk-amd64/jre/bin"
source /etc/environment

tomcat 9安装

sudo apt install tomcat9 tomcat9-admin

检查端口8080是否打开(正(

ss -ltn

检查服务命令是否有效(正(

sudo service tomcat9 stop
sudo service tomcat9 start

tomcat9包似乎坏了。

要在WSL上使用tomcat9,您可以:

  • 下载tomcat9并自行安装
  • 尝试修复损坏的安装

以下是我为修复计算机上的安装所做的操作:

  • 从下载tomcat 9的zip版本https://tomcat.apache.org/download-90.cgi
  • 在windows资源管理器中,打开文件夹\wsl$\Ubuntu\usr\share\tomcat9
  • 为了修复tomcat,我将zip中所有丢失的文件夹复制到wsl安装中:conf、webapps和work
  • 我还必须为日志创建文件夹/usr/share/tomcat9/logs(您可以从linux shell或\wsl$\Ubuntu中的windows资源管理器创建它(
  • 然后我可以用sudo /usr/share/tomcat9/bin/startup.sh启动tomcat,并在/usr/share/tomcat9/logs/catalina.out中获取日志

我通过以下步骤解决了问题:

  1. 启用systemd,请参阅WSL 2-启用systemd
  2. 使用cmdwsl --shutdownwsl -d Ubuntu genie -s重新启动WSL Ubuntu
  3. 使用外壳apt-get remove tomcat9apt-get install tomcat9重新安装tomcat9

然后键入service tomcat9 status,查看机器中的工作方式。

令人震惊的是,在安装tomcat9管理员后,我的机器上没有service tomcat9 status。但是,如果我使用sudo创建/usr/share/tomcat9/log目录,那么我就可以使用/usr/share/ttomcat9/bin/startup.sh启动tomcat9。在此之前,我还必须运行一个unmask命令:

sudo apt install systemctl
sudo systemctl unmask tomcat9
sudo mkdir /usr/share/tomcat9/log
sudo /usr/share/tomcat9/bin/startup.sh

这仍然是非常不规则的。我认为这可能与WSL如何处理端口有关,因为mariadb和apache2没有遇到相同的问题(开箱即用(。

最新更新