[英]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
我也做了sudo chown -R tomcat /opt/tomcat/latest/work/Catalina/localhost
,但這沒有幫助。
任何幫助表示贊賞。
現在它起作用了,我將在這里列出我的更改,但我不確定哪個是關鍵的,哪個是不必要的。
Environment="JAVA_HOME=/usr/lib/jvm/java-11-oracle"
Environment="CATALINA_PID=/opt/tomcat/latest/temp/tomcat.pid"
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.