非root用户以80端口启动tomcat

本文详细介绍如何在非root用户环境下部署Apache Tomcat 5.5.26,并通过jsvc进行服务启动与停止,包括配置修改、端口设置等关键步骤。

从apache.org下载apache-tomcat-5.5.26.zip,地址:http://archive.apache.org/dist/tomcat/tomcat-5/v5.5.26/bin/apache-tomcat-5.5.26.zip

以非root用户解压apache-tomcat-5.5.26.zip,并在apache-tomcat-5.5.26/bin目录打开终端

编译jsvc:
$ tar zxpvf jsvc.tar.gz
$ cd jsvc-src/
$ chmod +x configure
$ ./configure --with-java=/opt/jdk1.6.0_23
$ make

复制jsvc及root用户启动、停止Tomcat的脚本到apache-tomcat-5.5.26/bin目录并增加执行权限
$ cp jsvc ../
$ cp native/Tomcat5.sh ../
$ cd ..
$ chmod +x Tomcat5.sh

根据本机配置修改Tomcat5.sh中的下列变量取值
JAVA_HOME
CATALINA_HOME
DAEMON_HOME
TOMCAT_USER
CATALINA_BASE
(由于前面将jsvc复制到apache-tomcat-5.5.26/bin目录,所以DAEMON_HOME的值与CATALINA_HOME相同)
没有使用到JNI的动态库,所以注释掉下列变量
CATALINA_OPTS
修改$DAEMON_HOME/src/native/unix/jsvc为$DAEMON_HOME/bin/jsvc(一共有两处)

配置tomcat使用80端口提供HTTP服务
编辑apache-tomcat-5.5.26/conf/server.xml文件,将<Connector port="8080"修改为<Connector port="80"

切换到root用户并进入apache-tomcat-5.5.26/bin目录
启动tomcat
# ./Tomcat5.sh start
停止tomcat
# ./Tomcat5.sh stop

 

 

相关资料:

Installing Tomcat with commons-daemon (jsvc)

tomcat 以非root身份启动

Bug 49674 - libservice.a: Malformed archive in commons-daemon

root用户无法启动Tomcat可能有多种原因,以下是不同原因对应的解决办法: #### 权限不足 - **问题现象**:root用户可能没有对Tomcat目录及其子目录的读写执行权限,导致无法启动。 - **解决办法**:使用root用户修改Tomcat目录的权限,确保root用户有足够的权限。例如,如果root用户名为`kms`,可以执行以下命令: ```bash chown -R kms:kms /home/kms/apache-tomcat-8.5.60 chmod -R 755 /home/kms/apache-tomcat-8.5.60 ``` #### 端口绑定问题 - **问题现象**:如果修改了Tomcat的绑定端口为1024以下(如80),但使用root用户启动,会出现`java.net.BindException: Permission denied (Bind failed)`错误。因为在Unix系统下,root用户不能监听1024以下的端口号[^2][^4]。 - **解决办法**: - **修改Tomcat端口**:将Tomcat端口修改为1024以上的端口,如8080。打开`/home/kms/apache-tomcat-8.5.60/conf/server.xml`文件,找到以下内容: ```xml <Connector port="80" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` 将`port`属性修改为1024以上的端口,如: ```xml <Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" redirectPort="8443" /> ``` - **使用端口转发**:使用Linux的端口转发机制,把到80端口的服务请求都转到8080端口上。可以使用`iptables`命令实现,执行以下命令: ```bash sudo iptables -t nat -A PREROUTING -p tcp --dport 80 -j REDIRECT --to-port 8080 ``` #### JRE_HOME路径配置问题 - **问题现象**:如果`JRE_HOME`路径配置错误,Tomcat可能无法找到Java运行时环境,导致启动失败。 - **解决办法**:检查`JRE_HOME`路径是否正确,可以通过`java -version`命令验证Java环境是否可用。如果路径错误,修改`catalina.sh`或`setenv.sh`文件,设置正确的`JRE_HOME`路径。例如,打开`/home/kms/apache-tomcat-8.5.60/bin/setenv.sh`文件,添加以下内容: ```bash export JRE_HOME=/home/kms/java/jdk1.8.0_144/jre ``` #### 类库或配置文件问题 - **问题现象**:`CLASSPATH`配置错误,或者所需的类库缺失,可能导致Tomcat启动时找不到必要的类,从而启动失败。 - **解决办法**:检查`CLASSPATH`中的JAR文件是否存在,确保所需的类库都已经正确添加到`CLASSPATH`中。同时,检查Tomcat的配置文件(如`server.xml`、`web.xml`等)是否有语法错误。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值