阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

Linux下配置Tomcat并允许指定身份用户管理服务

441次阅读
没有评论

共计 6342 个字符,预计需要花费 16 分钟才能阅读完成。

本文记录如何在 Linux 平台上配置 Tomcat 以指定的身份运行、配置为 Linux 服务,并设置为开机启动运行。

前言:

通常情况下我们要配置 Tomcat 是很容易的一件事情,但是如果您要架设多用户多服务的 Java 虚拟主机就不那么容易了。其中最大的一个问题就是 Tomcat 执行权限。普通方式配置的 Tomcat 是以 root 超级管理员的身份运行的,显然,这是非常危险的,可想而知,一但网站被挂马,您的整个服务器都可以被黑客控制了。而通过编译或在线 (例如 RedHat 系列的 yum, debian 系列的 apt-get) 的方式安装,一个服务器上又只能装一个 tomcat 的服务,如果将多个网站放到同一个 tomcat 服务中,一但某一个网站出问题导致 tomcat 服务被卡死,则服务器上所有的网站都打不开了,无法满足各网站程序独享 tomcat 的需求。为了解决这些问题,我们需要配置 Tomcat 以指定的身份运行,且一台服务器上可以安装任意多个 tomcat 服务。因此,JDiy 在配置的过程中撰写此文,以供有此类似需求的 java 开发人员参考。

运行环境描述:

操作系统:Debian7.0(Wheezy  32 bit system)

Tomcat 版本号:Tomcat 7.0.33

JDK 版本: 1.6 以上.

以下内容亲自配置并记录整个过程,确保此配置信息无误后发表。

以下涉及到命令操作的地方,如无特别说明,均表示以 root 管理员身份运行(或者以普通用户的 sudo 方式跨权运行)。

一、先在 Debian Linux 系统上配置好 JDK 环境

有关如何在 Linux 平台上配置 JDK 环境的过程略去,本文假设您已经在 Debian 系统上正确安装了 JDK 开发环境,且 JDK 安装的位置在:/opt/jdk/

如果您的 JDK 不是安装在这个路径下面,也可以创建一个软链,指向到这个路径。

二、下载并解压最新版本的 Tomcat.

打开浏览器,在地址栏中输入如下网址进入 tomcat 官网:http://tomcat.apache.org

如下图:

Linux 下配置 Tomcat 并允许指定身份用户管理服务

点击 tomcat 页面左边的 download 进入下载页面,拖动滚动条并定位到如下位置:

Linux 下配置 Tomcat 并允许指定身份用户管理服务

根据您的硬件架构(32 位还是 64 位),选择一种 ZIP 格式的下载。如果您不清楚您的服务器配置,那就下载 32 位的吧(它适用于大多数情况)。

注意:您必须选择 ZIP 格式的才行,这样才能在后面的操作中进行配置。

另外,虽然我们使用的是 Linux 平台,JDiy 站长也建议您下载 32-bit Windows zip 的这个版本,解释如下:

虽然它标记为 windows-zip,可能大多数同学以为它只能运行在 windows 平台下,其实是错误的,这个 windows zip 的版本同样适用于 Linux(而且它是一个比较全面的版本)。

例如本人将其下载下来(得到一个 apache-tomcat-7.0.33-windows-x86.zip)放到我的 Debian 系统的 /opt/ 目录下,

运行命令解压(并将解压出来的目录更名为 tomcat):

unzip apache-tomcat-7.0.33-windows-x86.zip

mv apache-tomcat-7.0.33/ tomcat

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-11/109328p2.htm

————————————– 分割线 ————————————–

Linux 下 Apache 与多个 Tomcat 集群负载均衡 http://www.linuxidc.com/Linux/2012-01/51731.htm

Nginx Tomcat 集群负载均衡解决笔记 http://www.linuxidc.com/Linux/2013-07/86827.htm

实例详解 Tomcat 组件安装 +Nginx 反向代理 Tomcat+Apache 使用 mod_jk 和 mod_proxy 反向代理和负载均衡 http://www.linuxidc.com/Linux/2013-06/85290.htm

CentOS 6.5 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2014-06/103836.htm

Apache+Tomcat 环境搭建(JK 部署过程)http://www.linuxidc.com/Linux/2012-11/74474.htm

————————————– 分割线 ————————————–

三、编译安装 tomcat daemon 服务守候程序:

cd 到 tomcat 的 bin 目录下, 并解压 commons-daemon-native.tar.gz:

cd/opt/tomcat/bin/
tarxvzf commons-daemon-native.tar.gz

解压后会生成一个 commons-daemon-1.0.10-native-src 目录,cd 到这个目录的 unix 子目录:

cd commons-daemon-1.0.10-native-src/unix

(1). 执行编译配置:

1 ./configure #(注意:需要先安装好 make,gcc 等编译工具)

在执行时可能会出现如下错误提示:


*** Java compilation tools ***
checking for JDK location… configure: error: Java Home not defined. Rerun with –with-java=… parameter

这是由于没有指定 jdk 目录所致的,那么按提示指定 with-java 参数(指向 jdk 目录)。如下:

./configure–with-java=/opt/jdk

运行完成后会提示如下信息说明操作成功:


*** All done ***
Now you can issue “make”

执行 make:

make

(2). 执行 make 后会生成一个 jsvc 的文件,将其复制到 tomcat 的 bin 目录。

在 tomcat/bin 目录里面有一个 daemon.sh 这个文件就是启动和关闭 tomcat 的服务守候程序。

注意:之前的一些 tomcat 版本, 例如 tomcat 6.0.x, 可能没有这个文件, 其实这个文件就是放在 commons-daemon-x.x.x-native-src/unix/samples/Tomcat7.sh 这儿的(此目录还有一个 Tomcat5.sh),只不过新版本的 tomcat 把它移动到了 bin 目录下,并取名为 daemon.sh 了。所以,如果您使用的是 tomcat 6,那就把这个 Tomcat7.sh 文件复制到 bin 目录下,并取名为 daemon.sh 即可。

(3). 修改 daemon 环境变量:

用文本编辑器 (vi 或 emacs 等) 编辑它,找到类似下面这样配置段:

test “.$TOMCAT_USER” = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
# JAVA_HOME=/opt/jdk-1.6.0.22

修改 TOMCAT_USER=tomcat 为您要指定身份运行的 linux 账号用户名, 此处指定用户名为 tomcat。

并把 JAVA_HOME=… 前面的注释(即“#”号)去掉,并设置为 jdk 的安装目录路径,最后,修改好后的配置段变成如下:

test “.$TOMCAT_USER” = . && TOMCAT_USER=tomcat
# Set JAVA_HOME to working JDK or JRE
JAVA_HOME=/opt/jdk

现在修改 /opt/tomcat 目录的所有者为为 tomcat(即您要指定身份运行的 linux 帐号):

chown-R tomcat:tomcat/opt/tomcat

为 tomcat/bin/ 目录下的 *.sh 添加相应的 x 权限位:

chmoda+x/opt/tomcat/bin/*.sh

现在,可以测试一下 daemon 是否可以启动运行,启动方式如下:

/opt/tomcat/bin/daemon.sh  start

(如果出错,重点查验 tomcat 的 bin 目录下的 *.sh 是否有 x 可执行权限、linux 帐号是否有 tomcat 目录的读写权限,是否有 tomcat/logs 日志目录的写权限等等。)如无错误,则 tomcat 的 daemon 守候程序已经设置成功了,可以访问 http://localhost:8080/ 试一下服务是否启动。

停止 tomcat, 对应的命令为:

/opt/tomcat/bin/daemon.sh  stop

四、添加 tomcat 为 debian 的服务

在上面的配置正确后,要将 daemon.sh 添加成为 debian 的服务就非常简单了,只需要创建一个软链到 /etc/init.d/ 目录中即可:

ln -s /opt/tomcat/bin/daemon.sh /etc/init.d/tomcat7

这样就创建了一个名为 tomcat7 的服务。

现在就可以用它启动 / 关闭 tomcat 了:

启动 tomcat7 服务:

/etc/init.d/tomcat7 start

停止 tomcat7 服务:

/etc/init.d/tomcat7 stop

最后,再查看一下进程,已经可以看到,tomcat 是以指定的用户身份运行了。

五、设置 tomcat 服务开机启动

如果您想让 Tomcat 的 daemon 守候程序在开机后自动运行,只需运行下面命令,将服务设置为自启动即可:

update-rc.d tomcat7 defaults

如果以后想想取消自动启动,则运行:

update-rc.d tomcat7 remove

以上内容为《配置 tomcat 以指定的身份运行》的全文笔记,本人在 Debian 系统下成功配置。

上面的配置过程,本人未对 tomcat 的配置文件 (conf/server.xml) 进行任何修改。

如果大家想再创建一个 tomcat 服务,只需要将 /opt/tomcat 这个目录复制一份,例如:

cp/opt/tomcat/opt/tomcat1

再修改一下 tomcat1 的端口号(/opt/tomcat/opt/tomcat1/conf/server.xml 中的端口号不能与其它的服务重复)

最后从上面所述第四步开始,创建另一个服务即可。

通过这种方式,您就可以为一台 Linux 服务器创建任意多个 tomcat 服务了。最后只需要安装一个前端服务器(例如 Nginx 或 Apache),将不同域名的请求转发到不同的 tomcat 服务程序就可以了。

如果您使用的是其它发行版的 Linux,配置方式大同小异。

Tomcat 的详细介绍:请点这里
Tomcat 的下载地址:请点这里

本文记录如何在 Linux 平台上配置 Tomcat 以指定的身份运行、配置为 Linux 服务,并设置为开机启动运行。

前言:

通常情况下我们要配置 Tomcat 是很容易的一件事情,但是如果您要架设多用户多服务的 Java 虚拟主机就不那么容易了。其中最大的一个问题就是 Tomcat 执行权限。普通方式配置的 Tomcat 是以 root 超级管理员的身份运行的,显然,这是非常危险的,可想而知,一但网站被挂马,您的整个服务器都可以被黑客控制了。而通过编译或在线 (例如 RedHat 系列的 yum, debian 系列的 apt-get) 的方式安装,一个服务器上又只能装一个 tomcat 的服务,如果将多个网站放到同一个 tomcat 服务中,一但某一个网站出问题导致 tomcat 服务被卡死,则服务器上所有的网站都打不开了,无法满足各网站程序独享 tomcat 的需求。为了解决这些问题,我们需要配置 Tomcat 以指定的身份运行,且一台服务器上可以安装任意多个 tomcat 服务。因此,JDiy 在配置的过程中撰写此文,以供有此类似需求的 java 开发人员参考。

运行环境描述:

操作系统:Debian7.0(Wheezy  32 bit system)

Tomcat 版本号:Tomcat 7.0.33

JDK 版本: 1.6 以上.

以下内容亲自配置并记录整个过程,确保此配置信息无误后发表。

以下涉及到命令操作的地方,如无特别说明,均表示以 root 管理员身份运行(或者以普通用户的 sudo 方式跨权运行)。

一、先在 Debian Linux 系统上配置好 JDK 环境

有关如何在 Linux 平台上配置 JDK 环境的过程略去,本文假设您已经在 Debian 系统上正确安装了 JDK 开发环境,且 JDK 安装的位置在:/opt/jdk/

如果您的 JDK 不是安装在这个路径下面,也可以创建一个软链,指向到这个路径。

二、下载并解压最新版本的 Tomcat.

打开浏览器,在地址栏中输入如下网址进入 tomcat 官网:http://tomcat.apache.org

如下图:

Linux 下配置 Tomcat 并允许指定身份用户管理服务

点击 tomcat 页面左边的 download 进入下载页面,拖动滚动条并定位到如下位置:

Linux 下配置 Tomcat 并允许指定身份用户管理服务

根据您的硬件架构(32 位还是 64 位),选择一种 ZIP 格式的下载。如果您不清楚您的服务器配置,那就下载 32 位的吧(它适用于大多数情况)。

注意:您必须选择 ZIP 格式的才行,这样才能在后面的操作中进行配置。

另外,虽然我们使用的是 Linux 平台,JDiy 站长也建议您下载 32-bit Windows zip 的这个版本,解释如下:

虽然它标记为 windows-zip,可能大多数同学以为它只能运行在 windows 平台下,其实是错误的,这个 windows zip 的版本同样适用于 Linux(而且它是一个比较全面的版本)。

例如本人将其下载下来(得到一个 apache-tomcat-7.0.33-windows-x86.zip)放到我的 Debian 系统的 /opt/ 目录下,

运行命令解压(并将解压出来的目录更名为 tomcat):

unzip apache-tomcat-7.0.33-windows-x86.zip

mv apache-tomcat-7.0.33/ tomcat

更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2014-11/109328p2.htm

————————————– 分割线 ————————————–

Linux 下 Apache 与多个 Tomcat 集群负载均衡 http://www.linuxidc.com/Linux/2012-01/51731.htm

Nginx Tomcat 集群负载均衡解决笔记 http://www.linuxidc.com/Linux/2013-07/86827.htm

实例详解 Tomcat 组件安装 +Nginx 反向代理 Tomcat+Apache 使用 mod_jk 和 mod_proxy 反向代理和负载均衡 http://www.linuxidc.com/Linux/2013-06/85290.htm

CentOS 6.5 下利用 Rsyslog+LogAnalyzer+MySQL 部署日志服务器 http://www.linuxidc.com/Linux/2014-06/103836.htm

Apache+Tomcat 环境搭建(JK 部署过程)http://www.linuxidc.com/Linux/2012-11/74474.htm

————————————– 分割线 ————————————–

正文完
星哥玩云-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-20发表,共计6342字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中

星哥玩云

星哥玩云
星哥玩云
分享互联网知识
用户数
4
文章数
19350
评论数
4
阅读量
7959893
文章搜索
热门文章
星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛NAS-6:抖音视频同步工具,视频下载自动下载保存

星哥带你玩飞牛 NAS-6:抖音视频同步工具,视频下载自动下载保存 前言 各位玩 NAS 的朋友好,我是星哥!...
星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛NAS-3:安装飞牛NAS后的很有必要的操作

星哥带你玩飞牛 NAS-3:安装飞牛 NAS 后的很有必要的操作 前言 如果你已经有了飞牛 NAS 系统,之前...
我把用了20年的360安全卫士卸载了

我把用了20年的360安全卫士卸载了

我把用了 20 年的 360 安全卫士卸载了 是的,正如标题你看到的。 原因 偷摸安装自家的软件 莫名其妙安装...
再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见zabbix!轻量级自建服务器监控神器在Linux 的完整部署指南

再见 zabbix!轻量级自建服务器监控神器在 Linux 的完整部署指南 在日常运维中,服务器监控是绕不开的...
飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛NAS中安装Navidrome音乐文件中文标签乱码问题解决、安装FntermX终端

飞牛 NAS 中安装 Navidrome 音乐文件中文标签乱码问题解决、安装 FntermX 终端 问题背景 ...
阿里云CDN
阿里云CDN-提高用户访问的响应速度和成功率
随机文章
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024程序员】我劝你赶紧去免费领一个AWS、华为云等的主机

【1024 程序员】我劝你赶紧去免费领一个 AWS、华为云等的主机 每年 10 月 24 日,程序员们都会迎来...
飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛NAS玩转Frpc并且配置,随时随地直连你的私有云

飞牛 NAS 玩转 Frpc 并且配置,随时随地直连你的私有云 大家好,我是星哥,最近在玩飞牛 NAS。 在数...
把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地

把小米云笔记搬回家:飞牛 NAS 一键部署,小米云笔记自动同步到本地 大家好,我是星哥,今天教大家在飞牛 NA...
零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face免费服务器+Docker 快速部署HertzBeat 监控平台

零成本上线!用 Hugging Face 免费服务器 +Docker 快速部署 HertzBeat 监控平台 ...

免费图片视频管理工具让灵感库告别混乱

一言一句话
-「
手气不错
每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站-手机博物馆-CHAZ 3D Experience

每天一个好玩的网站 - 手机博物馆 -CHAZ 3D Experience 一句话介绍:一个用 3D 方式重温...
你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你

你的云服务器到底有多强?宝塔跑分告诉你 为什么要用宝塔跑分? 宝塔跑分其实就是对 CPU、内存、磁盘、IO 做...
告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

告别Notion焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁”

  告别 Notion 焦虑!这款全平台开源加密笔记神器,让你的隐私真正“上锁” 引言 在数字笔记工...
星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定!

星哥带你玩飞牛 NAS-9:全能网盘搜索工具 13 种云盘一键搞定! 前言 作为 NAS 玩家,你是否总被这些...
星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛NAS硬件02:某鱼6张左右就可拿下5盘位的飞牛圣体NAS

星哥带你玩飞牛 NAS 硬件 02:某鱼 6 张左右就可拿下 5 盘位的飞牛圣体 NAS 前言 大家好,我是星...