簡體   English   中英

使用專用的 tomcat 用戶運行 Tomcat9:在 localhost:8080 中使用 JAVA_HOME 或 500 啟動失敗

[英]Running Tomcat9 with dedicated tomcat user: Startup fails with JAVA_HOME or 500 in localhost:8080

我剛剛在我的機器上安裝了 Apache Tomcat9,主要遵循這些說明,但我真的堅持用戶管理。

我的環境:Ubuntu 20.04,Java 11( There is only one alternative in link group java (providing /usr/bin/java): /usr/lib/jvm/java-11-oracle/bin/java )。

很少有例外:我的PATH環境變量中既沒有JAVA_HOME ,也沒有 java 主目錄。

我還在/opt/tomcat/latest/創建了一個符號鏈接,用於指向所有 tomcat 文件的正確文件夾。

現在我想讓 tomcat 作為用戶“tomcat”作為服務運行。

這是我的tomcat.service文件的樣子:

[Unit]
Description=Tomcat 9 servlet container
After=network.target

[Service]
Type=forking

User=tomcat
Group=tomcat

Environment="JAVA_HOME=/usr/lib/jvm/java-11-oracle/bin/java"
# Environment="JAVA_OPTS=-Djava.security.egd=file:///dev/urandom -Djava.awt.headless=true"

Environment="CATALINA_BASE=/opt/tomcat/latest"
Environment="CATALINA_HOME=/opt/tomcat/latest"
Environment="CATALINA_PID=/opt/tomcat/latest/tomcat.pid"
# Environment="CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC"

ExecStart=/opt/tomcat/latest/bin/startup.sh
ExecStop=/opt/tomcat/latest/bin/shutdown.sh

[Install]
WantedBy=multi-user.target

現在,當我注釋掉 JAVA_HOME 環境變量的行時,tomcat 服務的啟動失敗(journalctl -xe):

Okt 27 17:43:52 my-user startup.sh[7714]: Tomcat started.
Okt 27 17:43:52 my-user shutdown.sh[7737]: PID file found but either no matching process was found or the current user does not have permission to stop the process. Stop aborted.
Okt 27 17:43:52 my-user sudo[7690]: pam_unix(sudo:session): session closed for user root

所以有一些東西以 root 身份運行,我沒有得到。

但是當我注釋掉這一行時,tomcat 運行得很愉快,但是在localhost:8080我得到了這個500

Message org.apache.jasper.JasperException: java.lang.ClassNotFoundException: org.apache.jsp.index_jsp

或者這個404

Message JSP file [/index.jsp] not found

它類似於herehere

我也做了sudo chown -R tomcat /opt/tomcat/latest/work/Catalina/localhost ,但這沒有幫助。

任何幫助表示贊賞。

現在它起作用了,我將在這里列出我的更改,但我不確定哪個是關鍵的,哪個是不必要的。

  1. tomcat.service 中的JAVA_HOME改為: Environment="JAVA_HOME=/usr/lib/jvm/java-11-oracle"
  2. tomcat.service 中的CATALINA_PID更改為: Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
  3. 授予其他用戶對文件夾work、temp、logs、webapps 的寫訪問權限。 來源在這里這里
  4. 使用本指南: https : //www.interserver.net/tips/kb/install-apache-tomcat-on-ubuntu-18-04/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM