您的位置:首页 > 运维架构 > Tomcat

linux(rhas4)下安装 jdk + tomcat + apache + mysql + jk 详细过程

2010-06-01 09:52 1071 查看

linux(rhas4)下安装 jdk + tomcat + apache + mysql + jk 详细过程

安装前:
安装操作系统时不要使用默认安装,要用定制安装。
磁盘分区时,设置交换分区大小为内存的两倍或两倍以上。剩余空间都挂在根目录上。
网卡的 ip 地址使用手工设置,不要使用通过 DHCP 自动获取。
启用防火墙,并设置允许“远程登录(ssh)”,“万维网服务器(http、https)”
安装包使用定制安装,取消安装万维网服务器、Windows 文件服务器等。
并选择安装“开发工具”
如果在旧系统上安装的话,请先卸载调 apache、mysql、tomcat 等(维护的例外)。
安装好后,系统默认启动是启动图形模式(模式5)。
打开 /etc/inittab,修改它使系统启动时默认进入多用户网络模式:模式3
找到:
id:5:initdefault:
改为:
id:3:initdefault:
保存退出,重启。

1、安装 jdk
下载 j2sdk(j2sdk-1_4_2_13-linux-i586-rpm.bin) 到 /usr/local 下并开始安装:
cd /usr/local
chmod a+x j2sdk-1_4_2_13-linux-i586-rpm.bin
./j2sdk-1_4_2_13-linux-i586-rpm.bin
rpm -ivh j2sdk-1_4_2_13-linux-i586.rpm
cd /usr
ln -s /usr/java/j2sdk1.4.2_13/ jdk

2、安装 Apache
下载 httpd-2.2.3.tar.gz 到目录:/usr/local/src 下
cd /usr/local/src
tar -zxvf httpd-2.2.3.tar.gz
cd httpd-2.2.3
./configure --prefix=/usr/local/apache --enable-shared=max --enable-module=most --enable-so
make
make install
cp /usr/local/apache/bin/apachectl /etc/rc.d/init.d/httpd
vi /etc/rc.d/init.d/httpd

修改文件,在文件中'#!/bin/sh'后面加入下面两条规则:

#!/bin/sh
#
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web Server
#

使用chkconfig命令把apachectl命令加入到系统启动队列中:
chkconfig --add httpd
查看apachectl的状态:
chkconfig --list httpd

备注:prefix定义apache的安装路径

3、安装 tomcat
下载 jakarta-tomcat-5.0.28.tar.gz 到目录:/usr/local/ 下
cd /usr/local/
tar -zxvf jakarta-tomcat-5.0.28.tar.gz
ln -s /usr/local/jakarta-tomcat-5.0.28 /usr/local/tomcat
vi /usr/local/tomcat/bin/catalina.sh

在第一节后、第二节前,即:# OS specific support 前输入:
export JAVA_HOME=/usr/jdk
export CATALINA_BASE=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$JAVA_HOME/lib:$JAVA_HOME/jre/bin:$PATH:$HOME/bin

JAVA_OPTS="$JAVA_OPTS -Djava.awt.headless=true"
echo "Using JAVA_OPTS: $JAVA_OPTS"

保存退出。

备注:以上两节内容,第一节是指定 jdk 相关内容,第二节是应用系统的图片验证码生成程序要用,如果你没有使用到需要生成图片的程序,可以不加第二节内容。

继续把 tomcat 加入到系统自动启动队列中:
cd /etc/rc.d/init.d/
vi tomcat

在里面输入如下内容:

#!/bin/sh
#
# tomcat: Start/Stop/Restart tomcat
#
# chkconfig: 2345 80 20
# description: Tomcat is a Java Servlet Container
#
#

# Source function library.
. /etc/rc.d/init.d/functions

TOMCAT=/usr/local/tomcat

start() {
echo -n $"Starting Tomcat: "
$TOMCAT/bin/startup.sh
}

stop() {
echo -n $"Stopping Tomcat: "
$TOMCAT/bin/shutdown.sh
}

# See how we were called.
case "$1" in
start)
start
;;
stop)
stop
;;
status)
;;
status)
;;
restart)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart}"
;;
esac
exit $RETVAL

把 tomcat 修改为可运行的文件
chmod a+x tomcat
使用chkconfig命令把 tomcat 命令加入到系统启动队列中:
chkconfig --add tomcat
查看apachectl的状态:
chkconfig --list tomcat

4、安装 mysql
下载 mysql-standard-5.0.27-linux-i686-glibc23.tar.gz 到目录:/usr/local/ 下
cd /usr/local/
tar -zxvf mysql-standard-5.0.27-linux-i686-glibc23.tar.gz
cd mysql-standard-5.0.27-linux-i686-glibc23

groupadd mysql
useradd -g mysql mysql

ln -s /usr/local/mysql-standard-5.0.27-linux-i686-glibc23 /usr/local/mysql
cd /usr/local/mysql
scripts/mysql_install_db --user=mysql
chown -R root .
chown -R mysql data
chgrp -R mysql .
bin/mysqld_safe --user=mysql &

这时再敲入回车,mysql 现在已经启动了

继续配置 mysql,使其在系统启动时自动启动:
cp support-files/mysql.server /etc/init.d/mysqld
chkconfig --add mysqld
查看apachectl的状态:
chkconfig --list mysqld
重新启动 mysql:
service mysqld restart

5、安装 apache 和 tomcat 的连接器 jk
网上Tomcat Connector资料的混乱实际源出开发上的混乱,JK2本来是JK的升级版本,而现在又被打成了deprecated,所以还是要用JK。网上JK2的配置方案现在已经没有参考价值,然而刚接触这个问题很容易产生应该用JK2而不是JK这种先入为主的印象。另外官方文档中有Using Tomcat auto-configure这样一种方法,但没有给出一个完整的操作过程,建议不要使用它。自2004年3月后,jk2 就已经不再更新,apache 官方建议不要使用jk2,而且 jk2 配置方法也不好理解,方法也与 jk 不一样,所以建议使用 jk。

在安装 jk 前必须注意的是,要先安装 libtool,否则安装时会出错,而且看起来原因不明。
到:http://www.gnu.org/software/libtool/libtool.html 下载:
http://ftp.gnu.org/gnu/libtool/libtool-1.5.22.tar.gz

把文件下载到:/usr/local/src
输入命令:
tar zxf libtool-1.5.22.tar.gz
cd libtool-1.5.22
./configure
make
make install

更新 apache 下的 libtool:
cd /usr/local/apache/build/
mv libtool libtool.old (改名备份原来的文件,apache 自带的 libtool 版本不适合安装 jk)
ln -s /usr/local/bin/libtool libtool

下载 tomcat-connectors-1.2.20-src.tar.gz 到目录:/usr/local/src 下
cd /usr/local/src
tar -zxvf tomcat-connectors-1.2.20-src.tar.gz
cd tomcat-connectors-1.2.20-src/native
./buildconf.sh
./configure --with-apxs=/usr/local/apache/bin/apxs
make
make install

至此,jk 安装成功。

如果你安装时安装到 make/make install 出错后才发现没有更新 libtool 的话,那你在安装好 libtool 后必须先到 tomcat 连接器的目录 native 下,先运行 make clean 后(或直接删除掉解压后的 tomcat 连接器目录再重新解压安装),再重新执行上面的最后四步,即从 buildconf.sh 开始,否则还会出现和第一次安装时产生的错误一样错误。

如果一定要安装 jk2 的话,那在安装 jk2 前必须先安装好 libapr 和 libaprutil,安装过程如下:
http://apr.apache.org/download.cgi 下载:
apr-util-1.2.8.tar.gz 和 apr-1.2.8.tar.gz
安装:
tar zxvf apr-1.2.8.tar.gz
cd apr-1.2.8
./configure
make
make install
tar zxvf apr-util-1.2.8.tar.gz
cd apr-util-1.2.8
./configure --with-apr=../apr-1.2.8
make
make install

cd /usr/local/apache/lib
ln -s /usr/local/apr/lib/libapr-1.so.0.2.8 libapr-1.so
ln -s /usr/local/apr/lib/libapr-1.so.0.2.8 libapr-1.so.0
ln -s /usr/local/apr/lib/libaprutil-1.so.0.2.8 libaprutil-1.so
ln -s /usr/local/apr/lib/libaprutil-1.so.0.2.8 libaprutil-1.so.0

除了安装好这两个软件包外,当然也要安装 libtool(安装 libtool 过程参考在上面的介绍)。然后才能开始安装 jk2 :
tar zxf jakarta-tomcat-connectors-jk2-src-current.tar.gz
cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/
./configure --with-apxs2=/usr/local/apache/bin/apxs --with-tomcat=/usr/local/tomcat
make
make install

cd ../build/jk2/apache2/
/usr/local/apache/bin/apxs -n jk2 -i mod_jk2.so

上条命令是将 mod_jk2.so 添加到 apache2 的 modules 中.

同样,如果是安装到中途出错后才回来重新安装 libtool 的话,那安装完 libtool 后必须先清理刚才安装过程中产生的文件,或者干脆直接把解压后的连接器的目录删除,再重新解压安装即可成功。
注意,安装 jk 和 jk2 的 configure 命令是不一样的。如果用安装 jk2 的 configure 方法来安装 jk ,会出现错误!

好了,到这里为止,所有要安装的软件都已经安装完成,下面开始配置这些软件使它们协同工作。

1、配置 MySQL:
我们要修改 mysql 的 root 的密码:
./bin/mysqladmin -u root password new-password

如果root已经设置有密码了,可以通过这样修改:

./bin/mysqladmin -u root -p password new-password

输入上面这个命令后,系统提示你输入旧密码,输入正确的旧密码后,新密码就起作用了。

进入 mysql 中继续修改另一个 root 的密码,同时删除匿名用户访问 mysql:
./bin/mysql -u root -p
输入密码即可进入 mysql 中。
在 mysql 里,输入命令:
mysql> use mysql
mysql> update user set password = password('new-password') where user='root' and host='linux-name';
(注:这句中的 new-password 是你要设置的新密码,而 linux-name 是你的 linux 服务器的名字。如果你不知道你的 linux 服务器的名字,通过 select * from user 这个 sql 语句,就可以看见对应于 host 字段里显示的名字。host 显示有两个不同的值,一个是 localhost,另一个是你的 linux 服务器名。)
mysql> delete from user where user='';
(删除掉匿名用户)
mysql> flush privileges;
(注:使刚才的修改马上生效。)
mysql> quit
(注:退出 mysql)

2、配置 Tomcat:
主要是把 tomcat 的系统配置管理模块(jmx)增加、修改好:
cd /usr/local/tomcat/conf
vi tomcat-users.xml

在倒数第二行前加上:
<user password="password" roles="admin,manager" />

保存退出。
注意:这个登录名和密码必须保密,尽量使用较安全的用户名不密码,防止被别人猜到。
通过这样配置后,以后就可以通过这些配置来安装你的应用程序,很方便。

再配置 tomcat 禁止目录浏览:
vi web.xml
找到:
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
把里面的 true 改成 false ,保存退出。

3、配置 apache:
cd /usr/local/apache/conf/
vi httpd.conf

找到 #ServerName www.example.com:80 这行,在这行的后面加上:
#这行是服务器的名字,是必须有的,否则无法访问(改成您的域名)。
ServerName www.mydomain.com:80

再找到: DocumentRoot "/usr/local/apache/htdocs" 这行,把引号内的内容改为指向自己服务器的根目录

找到 ServerAdmin ,在这后面加上如果系统出错,显示可以联系的 email 地址。

找到 DirectoryIndex ,在其后面加上其它的默认目录文件,如 index.htm index.jsp 等

在文件的最后加上:

#以下两节是禁止访问目录:/WEB-INF/ 和 /META-INF/
#这两个目录都用于存放放 java 配置文件
<Directory ~ "/WEB-INF/">
Order deny,allow
Deny from all
</Directory>

<Directory ~ "/META-INF/">
Order deny,allow
Deny from all
</Directory>

#以下这行是让 apache 加入能解释 jsp 文件的模块
# Load mod_jk

LoadModule jk_module modules/mod_jk.so

# Configure mod_jk

JkWorkersFile conf/workers.properties

JkLogFile logs/mod_jk.log

JkLogLevel info

JkMount /*.jsp worker2
JkMount /*.do worker2
#下面两行定义了管理员管理 tomcat 的应用(tomcat 自带的 jmx)
JkMount /admin/* worker2
JkMount /manager/* worker2

#如果你的应用程序不在上面定义的网站根目录下,则需要添加目录别名
Alias /myapp "/home/app1"
<Directory "/home/app1">
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

#下面两节定义了管理员管理 tomcat 的应用(tomcat 自带的 jmx)
Alias /admin "/usr/local/tomcat/server/webapps/admin"
<Directory "/usr/local/tomcat/server/webapps/admin">
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

Alias /manager "/usr/local/tomcat/server/webapps/manager"
<Directory "/usr/local/tomcat/server/webapps/manager">
Options FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
Allow from all
</Directory>

保存退出。
添加一个 workers.properties :
vi workers.properties
在这个文件里添加如下内容:
# Define 1 real worker using ajp13
worker.list=worker2
# Set properties for worker1 (ajp13)
worker.worker2.type=ajp13
worker.worker2.host=localhost
worker.worker2.port=8009
worker.worker2.socket_keepalive=True

这部分内容用于只有一台 tomcat 机器来提供 java 服务的情况。如果要配置多台来提供 java 的服务,可以参考其它的文章。

这里的配置文件适用于 jk,而不能用于 jk2。如果把上面的配置,包括 httpd.conf 和 workers.properties 用在 jk2 时,会出错,系统无法正常工作。要看 jk2 的配置方法,请参考其它文档。

这时,所有的配置工作都完成了,现在可以启动服务器来测试一下刚才的应用了。
输入命令启动各个服务器:
service mysqld start
service tomcat start
service httpd start

然后通过浏览器访问:
http://www.mydomain.com/
这时会出来一个页面,上面写着:It works!
访问:
http://www.mydomain.com/admin/
会出来 tomcat 提供的 jmx 登录界面。
访问:
http://www.mydomain.com/myapp/
会出来您部署的应用程序。如果出不来,有可能要修改一下应用程序的目录权限。如把 /home/myapp 的目录权限设为 711。

如果不能出来以上的页面,请回去仔细检查看是什么地方没有配置好。

我的操作系统是: redhat linux enterprise advance server 4,文中紫色文字请根据你的具体设置来修改。

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: