Skip to content

可能是目前最详细简明的CentOS7安装与管理教程(8):JDK & Tomcat #10

@gaoac

Description

@gaoac
JDK

查看可安装 JDK
yum search java|grep jdk

image

Linux 发行版中用的多是 OpenJDK(关于 OpenJDK 与 Oracle JDK 的区别这里不再赘述)。

我们选择安装 OpenJDK1.8 即可:
yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel

image

java -version

image

Linux 上使用 yum 命令后,会将 OpenSDK 安装到 /usr/lib/jvm/ 目录下。
设置 JAVA-HOME,让系统上的所有用户使用 java(OpenSDK )
vi /etc/profile
在末尾添加:

#set java environment
JAVA_HOME=/usr/lib/jvm/java-1.8.0-openjdk-1.8.0.161-0.b14.el7_4.x86_64
JRE_HOME=$JAVA_HOME/jre  CLASS_PATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar:$JRE_HOME/lib
PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin

export JAVA_HOME JRE_HOME CLASS_PATH PATH

使配置文件生效:
source /etc/profile

验证环境变量是否生效:
echo $PATH

image

Tomcat

下载当前 Tomcat8 最新版的安装文件 apache-tomcat-8.0.27.tar.gz(https://tomcat.apache.org/download-80.cgi);

将 apache-tomcat-8.0.28.tar.gz 文件放到/usr/local 目录下,执行如下脚本:

cd /usr/local

tar -zxvf apache-tomcat-8.5.28.tar.gz 解压压缩包

rm -rf apache-tomcat-8.5.28.tar.gz 删除压缩包

mv apache-tomcat-8.5.28 tomcat 重命名

通过 systemctl 管理 tomcat:

1)首先,为 tomcat 增加一个 pid 文件

在 tomca/bin 目录下面,增加 setenv.sh 配置,catalina.sh 启动的时候会调用,同时配置 java 内存参数;

vi 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"

保存文件;
修改文件为可执行:
chmod a+x /usr/local/tomcat/bin/setenv.sh
2)增加 tomcat.service

在/usr/lib/systemd/system 目录下增加 tomcat.service,目录必须是绝对目录。
vi tomcat.service

[Unit]
Description=Tomcat
After=syslog.target network.target remote-fs.target nss-lookup.target

[Service]
Type=forking
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] 配置服务的 pid,服务的启动,停止,重启。
>[install] 配置了使用用户。

执行systemctl daemon-reload,使 tomcat.service 生效

启动 tomcat:
systemctl start tomcat
开机启动:
systemctl enable tomcat

tomcat 启动时会在 tomcat 的根目录/usr/local/tomcat 下生成 pid 文件 tomcat.pid,停止后会删除,用 systemctl 管理 tomcat 不会出现同时启动多个 tomcat,这样可以保证始终只有一个 tomcat 在运行

访问http://ip:8080/,出现以下界面说明启动成功

image

但当我们点击红色框中按钮,进入管理时,提示无访问权限;

image

这时我们按提示,进入/usr/local/tomcat/conf,编辑 tomcat-users.xml,设置用户:
<tomcat-users></tomcat-users>内部添加:

<role rolename="manager-gui"/>
<role rolename="admin-gui"/>
<user username="用户名" password="密码" roles="manager-gui,admin-gui"/>

另外远程登录 tomcat 管理界面权限,注释掉/usr/local/tomcat/webapps/manager/META-INF/context.xml 和/usr/local/tomcat/webapps/host-manager/META-INF/context.xml 中:

  <!--
  <Valve className="org.apache.catalina.valves.RemoteAddrValve"
         allow="127\.\d+\.\d+\.\d+|::1|0:0:0:0:0:0:0:1" />
  -->

再次使用刚设置的账号密码登陆即可成功登录 tomcat 管理系统。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions