注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

文刀三皮的博客

专注于运行维护

 
 
 

日志

 
 
 
 

Tomcat的安装(以非root用户运行方法,并使用APR 连接器)  

2014-03-23 18:26:00|  分类: Web服务器 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

在生产线上,Linux操作系统,为了安全起见Tomcat必须已非root用户运行,并考虑到生产环境为了提高tomcat并发性能,一般使用APR 连接器。下面看看安装步骤:

假设tomcat安装到  /data/tomcat目录

  • 创建用户
useradd ffbb
passwd ffbb
并增加这个ffbb用户的sudo权限
root用户修改
#vi /etc/sudoers
在root    ALL=(ALL)       ALL
下增加
ffbb  ALL=(ALL)  ALL
 
切换到 ffbb用户
#su ffbb
 
以下在ffbb 这个用户下操作了。
下载tomcat  zip格式的
$wget http://mirror.bjtu.edu.cn/apache/tomcat/tomcat-7/v7.0.41/bin/apache-tomcat-7.0.41.zip
解压
$unzip apache-tomcat-7.0.41.zip
cd apache-tomcat-7.0.41/bin
tar zxf commons-daemon-native.tar.gz
cd bin/commons-daemon-1.0.15-native-src/unix
./configure --with-java=/usr/java/jdk1.6.0_38
make
执行make后会生成一个jsvc的文件,将其复制到tomcat的bin目录。
cp jsvc ../../
 
生产环境为了提高tomcat并发性能,一般使用APR 连接器
$sudo yum install apr apr-devel openssl openssl-devel
cd /data/tomcat/bin
tar zxf tomcat-native.tar.gz 
cd /data/tomcat/bin/tomcat-native-1.1.27-src/jni/native
 
./configure --with-apr=/usr/bin/apr-1-config \
                --with-java-home=/usr/java/jdk1.6.0_38/ \
                --with-ssl=yes \
                --prefix=/data/tomcat
$make
$make install
 
将会发现在  /data/tomcat/lib 目录里多出 libtcnative 之类的库,在 $CATALINA_HOME/bin 目录里新建setenv.sh 文件
增加如下两行:
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$CATALINA_HOME/lib
export LD_LIBRARY_PATH

现在重新启动 Tomcat 服务就会自动应用上 APR 连接器了,检验的方法也很简单,查看 Tomcat 的日志输出文件(位于 $CATALINA_HOME/logs)catalina.out
信息: Loaded APR based Apache Tomcat Native library 1.1.27 using APR version 1.3.9.
 
为了做优化,需要设置JVM内存什么的
vi setenv.sh  增加如下
 
CATALINA_OPTS="$CATALINA_OPTS -Dfile.encoding=UTF8 -Xmx1024m -XX:PermSize=256m -XX:MaxPermSize=512m"
JSVC_OPTS='-jvm server'
JAVA_OPTS='-server -Djava.net.preferIPv4Stack=true'
 
修改daemon.sh

在tomcat/bin目录里面有一个daemon.sh 这个文件就是启动和关闭tomcat的服务守候程序。
vi daemon.sh
找到这行,大概在 86 行,修改TOMCAT_USER=ffbb为您要指定身份运行的linux账号用户名,此处指定用户名为ffbb
test ".$TOMCAT_USER" = . && TOMCAT_USER=ffbb
在开始位置增加:
 
JAVA_HOME=/usr/java/jdk1.6.0_38
CATALINA_HOME=/data/tomcat
CATALINA_BASE=/data/tomcat
DAEMON_HOME=/data/tomcat/bin
TOMCAT_USER=vbuluo
 
修改 tomcat目录的所有者为 vbuluo
chown -R vbuluo:vbuluo /data/tomcat
为bin目录的sh文件加执行权限;
chmod a+x  bin/*.sh
 
测试启动daemon.sh 是否可以运行
/data/tomcat/bin/daemon.sh start
 
可以访问http://localhost:8080/试一下服务是否启动。
停止tomcat, 对应的命令为:
/data/tomcat/bin/daemon.sh  stop
 
添加tomcat为服务
vi /etc/init.d/tomcat 
$cat /etc/init.d/tomcat
#!/bin/bash
#
# Tomcat daemon.sh   Startup script for the Tomcat Server
#
# chkconfig: 2345 10 90
# description: Tomcat 7 server
# processname: java
# Source function library.
. /etc/rc.d/init.d/functions

#Tomcat Daemon path
daemon_path=/data/tomcat/bin

# See how we were called.
case "$1" in
     run)
         echo "Start Tomcat without detaching from console..."
         $daemon_path/daemon.sh run
         ;;
     start)
         echo "Start Tomcat..."
         $daemon_path/daemon.sh start
         ;;
     stop)
         echo "Stop Tomcat..."
         $daemon_path/daemon.sh stop
         ;;
     version)
         echo "What version of commons daemon and Tomcat are you running?"
         $daemon_path/daemon.sh version
         ;;
     *)
         echo "Usage: $0 {run|start|stop|version}"
         exit 1
         ;;
esac
exit 0
$ sudo chmod +x /etc/init.d/tomcat
 
这样就创建了一个名为tomcat的服务。
现在就可以用它启动/关闭tomcat了:

启动tomcat7服务:
/etc/init.d/tomcat  start
停止tomcat7服务:
/etc/init.d/tomcat  stop

最后,再查看一下进程, 已经可以看到,tomcat是以指定的用户身份运行了。
  评论这张
 
阅读(66)| 评论(0)
推荐 转载

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2018