linux 下配制apache+tomcat环境


因为现在来看我们的技术用到的是Struts2+Hibernate3+Spring3所以普通的java Web容器可以了,如果以后我们要用到EJB这样的东西可以换成JBOSS 或是weblogic等.
 
前面这一部分主要是安装JDK和TOMCAT:8080容器可以运行,后面我们再加上apache:80 的http服务
 
第一步
 
下载SSH远程连接工具,我用的是Secure Shell 并安装.
 
第二步
 
1.下载jdk. 我用的版本是 jdk-6u26-linux-x64-rpm.bin   网址去http://www.oracle.com 下载
然后在用ssh工具自带FTP文件传输工具,将bin文件上传到linux服务器上去。放到这个文件中去(/usr/local/);
2. 然后在ssh上运行下命令:(注:"#"表示命令最左端,相当ssh中的"#"不用输入,其后面才是我们需要输入的命令。)
 
# cd /usr/local
 
修改权限使其具有执行权限 a+x 表示的是所有用户都有执行权 = , - [u,g,o]分别表示用户,组,其它。
 
#chmod a+x jdk-6u26-linux-x64-rpm.bin
  
# ./jdk-6u26-linux-x64-rpm.bin
 
 
 
****安装程序运行****
 
 
 
稍等一下,安装完成。个人感觉jdk在linux下安装比windows下快,呵呵。
 
然后用 ln -s 命令  ln (link)-s (symbolic)如果加上-s 就是把文件映射成镜象,如果不加-s就是生成同样的文件然后存到相应的目录只不过文件名后面加上一个@ ,注意:不管加不加-s 文件都是同步的。主文件修改其它文件也一样修改.格式 ln -s [source] [target]
 
ln -s /usr/local/jdk1.6.0_03      1个空格     /usr/local/jdk
 
ln -s /usr/local/jdk1.6.0_03/jre     1个空格       /usr/local/jre
 
 
# cd /usr
# ls
输入上面的命令,你会发现我们安装成功的java文件(/usr/java),至此我们jdk安装完毕。比想象中简单吧,呵呵。
  
二. 配置环境变量
    呵呵,java在windows下安装是需要配环境变量,linux也不另外。linux下环境变量是放在根目录下一个文件中(bashrc),如果需要修改环境变量什么的,只需要修改这个文件就行了。
# cd ~
# vim .bashrc
输入上面的命令进入环境变量编辑文件中,注意".bashrc"中的点不可以少,也不要写成"./bashrc".然在该文件中添加下面几行代码,然后保存退出(vim命令是":wq"),这样我们的java环境变量就设置好了,可以用上面的java文件夹当做jdk,jre路径也可以不用,我这里用的是/usr/local做为文件路径.下面是设置java的环境变量,其中的"export"命令可以理解为windows下的"set"命令
 
export JAVA_HOME=/usr/local/jdk
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$PATH:$JAVA_HOME/bin
export CATALINA_HOME=/usr/local/tomcat
   
三.部署Tomcat
1.下载Tomcat安装文件,我用的是apache-tomcat.zip免安装版本。然后用ssh的文件传输工具,将其上传linux上服务器上。我将放在这个文件下(/usr/local).
2.运行下面命令来进行解压
# cd /usr/local
# unzip apache-tomcat-5.5.26.zip
*******解压中******
解压成功了,然后参考步骤二,设置下tomcat的环境变量。如果已经设置过了,看一下路径对不对(/usr/local/apache-tomcat-5.5.26).
输入下面命令来启动tomcat
# cd /usr/local/apache-tomcat-5.5.26/bin
# ./sartup.sh
**** Tomcat 启动 ****
3.然后在windows下浏览器中输入你服务器的IP地址url,如http://IP地址:8080
出现tomcat的首页 说明tomcat安装成功了。
  
四.安装过程中遇到的问题和解决方法
如果输入上面url访问失败,即tomcat启动失败,请用下面的方法来尝试处理
(1).权限问题,用户权限和文件是否有可执行权限。
a.普通用户权限一般不足,请Google命令给用户加权限,我是用root用户来进行安装的,因此没有遇到这个问题。
b.文件的权限不够,大部分时候是没有可执行权限。我在安装过程中失败后,给下面文件(/usr/local/apache-tomcat-5.5.26/bin)文件夹中所有文件赋予了可执行权限。可用下面的命令。
# cd /usr/local/apache-tomcat=5.5.26/bin
# chmod 777 "文件名" (如:#chmod 777 startup.sh)
  
(2)防火墙和端口问题 查看tomcat的8080端是否开启
首先确定是不是防火墙问题,可以运行下面命令将防火墙服务关闭,然后再访问看是否正常。如果正常,说明是防火墙问题,我安装过程就是遇到这个问题,后来发现时防火墙问题,用下面方法解决掉了。
关闭服务器的防火墙服务命令
# service iptables stop
开启服务器的防火墙服务命令
# service iptables start
编辑和开启防火墙相应端口命令
# vim  /ect/sysconfig/iptables
查看端口是否被占用,查看端口命令
# netstat -pan|gerp 8080
查看所有进程命令
# ps -ef
杀死一个进程命令
# kill 进程id  (注:呵呵,感觉比windows下简单多了,kill you, hehe)
查看系统初始所有服务命令
# cd /etc/rc.d/init.d
# ls
挂载服务,删除服务,服务列表可以通过下面命令查看到
# chkconfig -h
  
 
 
 
如果不能则先关闭防火墙" service iptables stop"
"./shutdown.sh"结束Tomcat服务
也可以使用"kill PID"杀死Tomcat进程
  
下面把把Tomcat添加到自启动,修改/etc/rc.local文件
再最后添加如下内容
JAVA_HOME=/usr/java/jdk1.6.0_16
export JAVA_HOME
/tomcat5/bin/startup.sh   
  
使用命令:
ps -aux | grep tomcat
发现并没有8080端口的Tomcat进程。
使用命令:netstat –apn
查看所有的进程和端口使用情况。发现下面的进程列表,其中最后一栏是PID/Program name
 
发现8080端口被PID为9658的Java进程占用。
进一步使用命令:ps -aux | grep java,或者直接:ps -aux | grep pid 查看
 
就可以明确知道8080端口是被哪个程序占用了!然后判断是否使用KILL命令干掉!
  
  
方法二:直接使用 netstat   -anp   |   grep  portno
即:netstat –apn | grep 8080
 
 
使用"gzip -d apache-tomcat-5.5.28.tar.gz"解压文件,解压出一个文件夹名为为"apache-tomcat-5.5.28.tar"
使用"tar -xvf apache-tomcat-5.5.28.tar"解压文件,屏幕将显示解压信息。
使用"ls -l"显示出TomCat文件夹"apache-tomcat-5.5.28"
使用"mv apache-tomcat-5.5.28 /usr/"把文件夹移动到其usr目录下
使用" mv apache-tomcat-5.5.28 tomcat5"修改目录名为"tomcat5"
进入到"tomcat5/bin"目录下,"startup.sh"和"catalina.sh"两个文件能启动Tomcat
使用"./startup.sh"启动服务,包如下错误
"[root@localhost bin]# ./startup.sh
Neither the JAVA_HOME nor the JRE_HOME environment variable is defined
At least one of these environment variable is needed to run this program"
这是由于没有设置JAVA_HOME变量,
使用"JAVA_HOME=/usr/java/jdk1.6.0_16"和"export JAVA_HOME"设置变量
再执行"./startup.sh",显示如下信息
"Using CATALINA_BASE:   /usr/tomcat5
Using CATALINA_HOME:   /usr/tomcat5
Using CATALINA_TMPDIR: /usr/tomcat5/temp
Using JRE_HOME:        /usr/java/jdk1.6.0_16
Using CLASSPATH:       /usr/tomcat5/bin/bootstrap.jar"
使用"ps -ef |grep tomcat"可以显示tomcat已启动
使用"wget
http://localhost:8080"测试本地是否能上网
 
下面是把tomcat做为服务让系统自动启动
 
1、在/etc/init.d 下创建一tomcat启动脚本
2、chkconfig --add tomcat
3、service tomcat start
  这时会出现env: /etc/init.d/tomcat:No such file or directory
tomcat服务无法启动,难道还需要其它配置吗?高手帮忙看一下吧
脚本:
#!/bin/sh
# chkconfig: 345 99 10
# description: Auto-starts tomcat
# /etc/init.d/tomcatd
# Tomcat auto-start
# Source function library.
. /etc/init.d/functions
# source networking configuration.
. /etc/sysconfig/network
RETVAL=0

export JAVA_HOME=/usr/local/jdk
export CATALINA_HOME=/usr/local/tomcat7
export CATALINA_BASE=/usr/local/tomcat7
export CATALINA_TMPDIR=/usr/tomcat7/temp
TOMCATUSER=tomcat
start()
{
  if [ -f $CATALINA_HOME/bin/startup.sh ];
  then
  echo $"Starting Tomcat"
  /bin/su $TOMCATUSER -c $CATALINA_HOME/bin/startup.sh
  RETVAL=$?
  echo " OK"
  return $RETVAL
  fi
}
stop()
{
  if [ -f $CATALINA_HOME/bin/shutdown.sh ];
  then
  echo $"Stopping Tomcat"
  /bin/su $TOMCATUSER -c $CATALINA_HOME/bin/shutdown.sh
  RETVAL=$?
  sleep 1
  ps -fwwu tomcat | grep apache-tomcat|grep -v grep | grep -v PID | awk '{print $2}'|xargs kill -9
  echo " OK"
  # [ $RETVAL -eq 0 ] && rm -f /var/lock/...
  return $RETVAL
  fi
}

case "$1" in
start)
  start
  ;;
stop)
  stop
  ;;

restart)
  echo $"Restaring Tomcat"
  $0 stop
  sleep 1
  $0 start
  ;;
*)
  echo $"Usage: $0 {start|stop|restart}"
  exit 1
  ;;
esac
exit $RETVAL

相关内容

    暂无相关文章