共计 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
如下图:
点击 tomcat 页面左边的 download 进入下载页面,拖动滚动条并定位到如下位置:
根据您的硬件架构(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
如下图:
点击 tomcat 页面左边的 download 进入下载页面,拖动滚动条并定位到如下位置:
根据您的硬件架构(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
————————————– 分割线 ————————————–