Tôi đang cố gắng cài đặt tomcat trên máy ảo CentOS 7 mới. Tôi đã cài đặt thành công apache httpd và có thể lấy trang kiểm tra apache khi tôi nhập ip của máy ảo vào trình duyệt web trên một máy tính khác trong mạng. Nhưng tôi nhận được thông báo lỗi sau khi tôi gõ systemctl start tomcat
:
Job for tomcat.service failed. See 'systemctl status tomcat.service' and 'journalctl -xn' for details.
Dưới đây là lịch sử đầy đủ của các lệnh trong quá trình cài đặt java và tomcat:
Trước tiên tôi bắt đầu bằng cách cài đặt java bằng cách sử dụng các hướng dẫn từ hướng dẫn này vì các hướng dẫn tomcat (khối thứ hai bên dưới) muốn tôi sử dụng openjdk và tôi cần sử dụng java thực:
//Install Java
# cd /opt/
# yum install wget
# wget --no-cookies --no-check-certificate --header "Cookie: gpw_e24=http%3A%2F%2Fwww.oracle.com%2F; oraclelicense=accept-securebackup-cookie" "http://download.oracle.com/otn-pub/java/jdk/8u60-b27/jdk-8u60-linux-x64.tar.gz"
# tar xzf jdk-8u60-linux-x64.tar.gz
# cd /opt/jdk1.8.0_60/
# alternatives --install /usr/bin/java java /opt/jdk1.8.0_60/bin/java 2
# alternatives --config java
(Select the version you want)
# alternatives --install /usr/bin/jar jar /opt/jdk1.8.0_60/bin/jar 2
# alternatives --install /usr/bin/javac javac /opt/jdk1.8.0_60/bin/javac 2
# alternatives --set jar /opt/jdk1.8.0_60/bin/jar
# alternatives --set javac /opt/jdk1.8.0_60/bin/javac
# java -version (checks to see you install correct version)
# export JAVA_HOME=/opt/jdk1.8.0_60
# export JRE_HOME=/opt/jdk1.8.0_60/jre
# export PATH=$PATH:/opt/jdk1.8.0_60/bin:/opt/jdk1.8.0_60/jre/bin
Lưu ý rằng hướng dẫn trước không giải thích cách đặt các biến môi trường /etc/environment
, vì vậy tôi đã dừng trước lệnh đó.
Các lệnh sau đây là từ hướng dẫn khác này . Tôi đã bắt đầu tại điểm sau khi cài đặt java:
//Install Tomcat
Login as sudo user, not root.
# sudo groupadd tomcat
# sudo useradd -M -s /bin/nologin -g tomcat -d /opt/tomcat tomcat
# cd ~
# wget http://mirrors.gigenet.com/apache/tomcat/tomcat-8/v8.0.27/bin/apache-tomcat-8.0.27.tar.gz
# sudo mkdir /opt/tomcat
# sudo tar xvf apache-tomcat-8*tar.gz -C /opt/tomcat --strip-components=1
# cd /opt/tomcat
# sudo chgrp -R tomcat conf
# sudo chmod g+rwx conf
# sudo chmod g+r conf/*
# sudo chown -R tomcat work/ temp/ logs/
# sudo vi /etc/systemd/system/tomcat.service
Cut and paste the following file contents:
##################################################
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/usr/lib/jvm/jre
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
##################################################
# sudo systemctl daemon-reload
# sudo systemctl start tomcat
Job for tomcat.service failed. See 'systemctl status tomcat.service' and 'journalctl -xn' for details.
# sudo systemctl start tomcat.service
Công việc cho tomcat.service thất bại. Xem 'trạng thái systemctl tomcat.service' và 'Journalctl -xn' để biết chi tiết. # sudo systemctl kích hoạt tomcat.service ln -s '/etc/systemd/system/tomcat.service' '/etc/systemd/system/multi-user.target.wants/tomcat.service' # sudo systemctl kích hoạt tomcat
# sudo systemctl status tomcat.service
tomcat.service - Apache Tomcat Web Application Container
Loaded: loaded (/etc/systemd/system/tomcat.service; enabled)
Active: failed (Result: exit-code) since Tue 2015-10-13 11:05:31 PDT; 47s ago
Oct 13 11:05:31 localhost.localdomain kill[20887]: -q, --queue <sig> use sigqueue(2) rather than kill(2)
Oct 13 11:05:31 localhost.localdomain kill[20887]: -p, --pid print pids without signaling them
Oct 13 11:05:31 localhost.localdomain kill[20887]: -l, --list [=<signal>] list signal names, or convert one to a name
Oct 13 11:05:31 localhost.localdomain kill[20887]: -L, --table list signal names and numbers
Oct 13 11:05:31 localhost.localdomain kill[20887]: -h, --help display this help and exit
Oct 13 11:05:31 localhost.localdomain kill[20887]: -V, --version output version information and exit
Oct 13 11:05:31 localhost.localdomain kill[20887]: For more details see kill(1).
Oct 13 11:05:31 localhost.localdomain systemd[1]: tomcat.service: control process exited, code=exited status=1
Oct 13 11:05:31 localhost.localdomain systemd[1]: Failed to start Apache Tomcat Web Application Container.
Oct 13 11:05:31 localhost.localdomain systemd[1]: Unit tomcat.service entered failed state.
Thực hiện một yum localinstall
vòng / phút jdk cập nhật, như được đề xuất trong bài đăng khác này , không hoạt động.
CHỈNH SỬA:
Theo đề xuất của @ Bram, tôi đã thay đổi tệp cấu hình thành như sau, nhưng vẫn nhận được cùng một lỗi:
# Systemd unit file for tomcat
[Unit]
Description=Apache Tomcat Web Application Container
After=syslog.target network.target
[Service]
Type=forking
Environment=JAVA_HOME=/opt/jdk1.8.0_60
Environment=CATALINA_PID=/opt/tomcat/temp/tomcat.pid
Environment=CATALINA_HOME=/opt/tomcat
Environment=CATALINA_BASE=/opt/tomcat
Environment='CATALINA_OPTS=-Xms512M -Xmx1024M -server -XX:+UseParallelGC'
Environment='JAVA_OPTS=-Djava.awt.headless=true -Djava.security.egd=file:/dev/./urandom'
ExecStart=/opt/tomcat/bin/startup.sh
ExecStop=/bin/kill -15 $MAINPID
User=tomcat
Group=tomcat
[Install]
WantedBy=multi-user.target
Ngoài ra, theo nhận xét của @ JeffSchaller trong trò chuyện, tôi đã có thể nhận được tomcat để bắt đầu tự nhiên như sau:
[user@localhost tomcat]$ sudo /opt/tomcat/bin/startup.sh
Using CATALINA_BASE: /opt/tomcat
Using CATALINA_HOME: /opt/tomcat
Using CATALINA_TMPDIR: /opt/tomcat/temp
Using JRE_HOME: /
Using CLASSPATH: /opt/tomcat/bin/bootstrap.jar:/opt/tomcat/bin/tomcat-juli.jar
Tomcat started.
[user@localhost tomcat]$
Do đó, vấn đề trong OP này dường như là với cấu hình systemd. Làm thế nào tôi có thể sửa chữa nó?
sudo systemctl start tomcat.service
là một loạt các quyền bị từ chối lỗi mất hàng trăm dòng.