Primeiro vamos baixar o pacote jdk direto do site da sim para a nossa distribuição:
Entre no site http://java.sun.com/javase/downloads/index_jdk5.jsp e clique no link abaixo
Get the JDK download
Ok, então de pois de baixada a nova versão do jdk vamos verificar se nosso centOS possui uma versão antiga instalada:
[root@centos ~]# rpm -qa grep java
java-1.4.2-gcj-compat-1.4.2.0-27jpp
Parece estar instalada uma versão antiga, vamos proceder com a remoção desse pacote para a instalação da nova versão.
[root@centos ~]# yum -y remove java-1.4.2-gcj-compat
Setting up Remove Process
Resolving Dependencies
–> Populating transaction set with selected packages. Please wait.
—> Package java-1.4.2-gcj-compat.noarch 0:1.4.2.0-27jpp set to be erased
–> Running transaction check
Dependencies Resolved
=============================================================================
Package Arch Version Repository Size
=============================================================================
Removing:
java-1.4.2-gcj-compat noarch 1.4.2.0-27jpp installed 2.2 k
Transaction Summary
=============================================================================
Install 0 Package(s)
Update 0 Package(s)
Remove 1 Package(s)
Total download size: 0
Downloading Packages:
Running Transaction Test
Finished Transaction Test
Transaction Test Succeeded
Running Transaction
Removing : java-1.4.2-gcj-compat ######################### [1/1]
Removed: java-1.4.2-gcj-compat.noarch 0:1.4.2.0-27jpp
Complete!
Ok, após termos removido a versão antiga do pacote jdk vamos instalar a nova que baixamos direto do site da Sun.
[root@centos ~]# chmod +x jdk-6u3-linux-i586-rpm.bin
[root@centos ~]# ./jdk-6u3-linux-i586-rpm.bin
Aceite a licença para proceguir com a instalação
Depois de descompactado e instado o jdk, iremos editar o arquivo /etc/profile para informar ao sistema onde o java está instalado.
[root@centos ~]# vim /etc/profile
Vamos adicionar as seguintes linhas:
export JAVA_HOME=/usr/java/jdk1.6.0_03
export PATH=$PATH:$JAVA_HOME/bin
export CLASSPATH=.:$JAVA_HOME/jre/lib:$JAVA_HOME/lib:$JAVA_HOME/lib/tools.jar
Agora, depois de editado o arquivo profile, vamos executar o comando source abaixo. Ele vai ler e executar todos os comandos do arquivo referenciado como argumento em um ambiente shell.
[root@centos ~]# source /etc/profile
Agora vamos testar o java criando um simples script para mostrar uma mensagem na tela:
[root@centos ~]# vim HelloWorld.java
Vamos adicionar as seguintes linhas ao arquivo:
public class HelloWorld{
public static void main(String[] args) {
System.out.println(”Hello World”);
}
}
OBS: O nome do arquivo deve ser o mesmo nome da public class senão não compila.
[root@centos ~]# javac HelloWorld.java
Após executado o comando acima vai ser criado um outro arquivo com a extensão .class
agora vamos rodar o arquivo pra ver:
[root@centos ~]# java HelloWorld
A saída do comando acima será Hello World
Feito o teste e tudo funcionando vamos ao que interessa, vamos baixar o TomCat direto do site da Unicamp:
[root@centos ~]# wget http://ftp.unicamp.br/pub/apache/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz
Depois de baixado o arquivo vamos a descompactação do mesmo:
[root@centos ~]# tar -xvzf apache-tomcat-6.0.18.tar.gz
[root@centos ~]# mv apache-tomcat-6.0.18 /usr/local/tomcat
Depois de movida a pasta para o locar que especificamos acima iramos editar novamente o arquivo profile informando e declarando algumas vaiáveis de localização do timcat:
[root@centos ~]# vim /etc/profile
Vamos adicionar as seguintes linhas:
export TOMCAT_HOME=/usr/local/tomcat
export CATALINA_HOME=/usr/local/tomcat
export CLASSPATH=$CLASSPATH:$CATALINA_HOME/common/lib
Vamos executar o comando source:
[root@centos ~]# source /etc/profile
Agora iramos criar um arquivo de inicialização para o tomcat:
[root@centos ~]# vim /etc/rc.d/init.d/tomcat
Com o seguinte conteúdo:
#!/bin/bash
#
# Startup script for the tomcat
#
# chkconfig: 345 80 15
# description: Tomcat is a Servlet+JSP Engine.
# Source function library.
. /etc/rc.d/init.d/functions
start(){
if [ -z $(/sbin/pidof java) ]; then
echo “Starting tomcat”
/usr/local/tomcat/bin/startup.sh
touch /var/lock/subsys/tomcat
else
echo “tomcat allready running”
fi
}
stop(){
if [ ! -z $(/sbin/pidof java) ]; then
echo “Shutting down tomcat”
/usr/local/tomcat/bin/shutdown.sh
until [ -z $(/sbin/pidof java) ]; do :; done
rm -f /var/lock/subsys/tomcat
else
echo “tomcat not running”
fi
}
case “$1″ in
start)
start
;;
stop)
stop
;;
restart)
stop
start
;;
status)
/usr/local/tomcat/bin/catalina.sh version
;;
*)
echo “Usage: $0 {startstoprestartstatus}”
esac
exit 0
[root@centos ~]# chmod +x /etc/rc.d/init.d/tomcat
Vamos iniciar o serviço
[root@centos ~]# /etc/rc.d/init.d/tomcat start
Starting tomcat
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/java/jdk1.6.0_03
Agora vamos configurar o serviço para inicializar automaticamente.
[root@centos ~]# chkconfig –add tomcat
[root@centos ~]# chkconfig tomcat on
[root@centos ~]# chkconfig –list tomcat
tomcat 0:off 1:off 2:on 3:on 4:on 5:on 6:off
Agora vamos instalar o conector JK2 que faz a integração entre o Tomcat e o Apache
Iremos precisar instalar o pacote httpd-devel
[root@centos ~]# yum -y install httpd-devel
ok, instalado agora vamos baixar o fonte do jakarta-tomcat
[root@centos ~]# wget http://archive.apache.org/dist/jakarta/tomcat-connectors/jk2/source/jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz
Depois de baixado, iremos agora descompactá-lo:
[root@centos ~]# tar -xvzf jakarta-tomcat-connectors-jk2-2.0.4-src.tar.gz
Entrar na pasta abaixo informada:
[root@centos ~]# cd jakarta-tomcat-connectors-jk2-2.0.4-src/jk/native2/
Antes de começar a configuração e compilação do jakarta vamos precisar dos pacotes de compilação executando o comando abaixo:
[root@centos native2]# yum install gcc gcc-c++ autoconf automake
[root@centos native2]# ./configure –with-apxs2=/usr/sbin/apxs && make
[root@centos native2]# cd ../build/jk2/apache2
[root@centos apache2]# apxs -n jk2 -i mod_jk2.so
[root@centos apache2]# cp ../../../conf/workers2.properties /etc/httpd/conf/
[root@centos apache2]# cd
Vamos agora editar o arquivo de configuração do jakarta:
[root@centos ~]# vim /etc/httpd/conf.d/jk2.conf
adicione a seguinte linha no arquivo
LoadModule jk2_module modules/mod_jk2.so
Agora vamos editar o arquivo
[root@centos ~]# vim /etc/httpd/conf/workers2.properties
e adicionar as seguintes linhas
[uri:/servlets-examples/*]
[uri:/jsp-examples/*]
Abra o arquivo de configuração do apache a adicione as seguintes linhas no fim do arquivo para conclusão da interoperabilidade do apache com o tomcat:
[root@centos ~]# vim /etc/httpd/conf/httpd.conf
JkSet config.file /etc/httpd/conf/workers2.properties
Agora vamos restartar o serviço do apache
[root@centos ~]# service httpd restart
Vamos agora editar o arquivo abaixo:
[root@centos ~]# vim /usr/local/tomcat/conf/server.xml
Mais especificamente na seção
adicione o seguinte bloco:
maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" />
Vamos restartar o serviço do tomcat agora:
[root@centos ~]# /etc/init.d/tomcat restart
E vamos aos testes.
PRONTO, SERVIDOR RODANDO TOMCAT INTEGRADO COM APACHE.
Servidor CentOS release 5.2 (Final)
3 comentários:
Dica extremamente didática. Já insalei o CentOS 5.0 e Oracle 10R2 no meu Notebook, tudo 100%. Irei seguir o seu cookbook (receituario) e colocar o TomCat para testar o ambiente de treis camadas.
Muito obrigado Antonio, qualquer dúvida estou a disposição para o amigo.
Muito bom cara... segui o tutorial mas quando subo apache da o seguinte erro:
Iniciando httpd: [Fri Mar 05 19:32:53 2010] [notice] config.update(): done logger
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done config:
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uriMap:
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done shm:
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done workerEnv:
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done lb:lb
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done lb:lb_1
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done channel.socket:localhost:8009
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done channel.socket:localhost:8019
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done channel.un:/opt/33/work/jk2.socket
[Fri Mar 05 19:32:53 2010] [error] env.createBean2(): Factory error creating channel.jni:jni ( channel.jni, jni)
[Fri Mar 05 19:32:53 2010] [error] config.update(): Can't create channel.jni:jni
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done status:
[Fri Mar 05 19:32:53 2010] [error] env.createBean2(): Factory error creating vm: ( vm, )
[Fri Mar 05 19:32:53 2010] [error] config.update(): Can't create vm:
[Fri Mar 05 19:32:53 2010] [error] env.createBean2(): Factory error creating worker.jni:onStartup ( worker.jni, onStartup)
[Fri Mar 05 19:32:53 2010] [error] config.update(): Can't create worker.jni:onStartup
[Fri Mar 05 19:32:53 2010] [error] env.createBean2(): Factory error creating worker.jni:onShutdown ( worker.jni, onShutdown)
[Fri Mar 05 19:32:53 2010] [error] config.update(): Can't create worker.jni:onShutdown
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/jkstatus/*
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:127.0.0.1:8003
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:127.0.0.1:8003/ex
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/examples
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/examples1/*
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/examples/servlet/*
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/examples/*.jsp
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/examples/*
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/examples/servlet/HelloW
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/servlets-examples/*
[Fri Mar 05 19:32:53 2010] [notice] config.update(): done uri:/jsp-examples/*
Sabe o que pode ser ? Mas a integração funcionou mesmo com o erro.
Postar um comentário