Archive for PHP5

Instalando e configurando o Apache, PHP5, mod_jk, Tomcat 6 no Debian Lenny

Publicado em: 11/05/2009

O Tomcat é um servidor web Java, mais especificamente, um container de servlets. O Tomcat possui algumas características próprias de um servidor de aplicação, porém não pode ser considerado um servidor de aplicação por não preencher todos os requisitos necessários. Por exemplo, o Tomcat não tem suporte a EJB. Desenvolvido pela Apache Software Foundation, é distribuído como software livre dentro do conceituado projeto Apache Jakarta, sendo oficialmente endossado pela Sun como a implementação de referência para as tecnologias Java Servlet e JavaServer Pages (JSP). Ele cobre parte da especificação J2EE com tecnologias como servlet e JSP, e tecnologias de apoio relacionadas como Realms e segurança, JNDI Resources e JDBC DataSources.

Ele tem a capacidade de atuar também como servidor web, ou pode funcionar integrado a um servidor web dedicado como o Apache ou o IIS. Como servidor web, ele provê um servidor web HTTP puramente em Java.

O servidor inclui ferramentas para configuração e gerenciamento, o que também pode ser feito editando-se manualmente arquivos de configuração formatados em XML.

Fonte: http://pt.wikipedia.org/wiki/Tomcat

O ambiente proposto é simples, descrevo apenas os passos rápidos para instalação e configuração.

Será necessário o JRE (Java Runtime 5) e o Apache Tomcat 6:

- Download do JRE 1.5.0.17

- Download do Apache Tomcat 6.0.18

Instalando o java:

chmod +x jre-1_5_0_17-linux-i586.bin
 ./jre-1_5_0_17-linux-i586.bin

Após a descompressão, basta mover o diretório jre1.5.0_17 para /usr/local

mv jre1.5.0_17 /usr/local

Fazendo o download do apache:

wget http://ftp.unicamp.br/pub/apache/tomcat/tomcat-6/v6.0.18/bin/apache-tomcat-6.0.18.tar.gz
 tar -xvzf apache-tomcat-6.0.18.tar.gz
 mv apache-tomcat-6.0.18 /usr/local

Agora, basta exportar as variáveis de ambiente utilizadas, isso pode ser feito diretamente no bash (copiando e colando) e/ou adicionando no /etc/profiles . Caso queira saber um pouco mais sobre a CLASSPATH, leia este documento.

JAVA_HOME=/usr/local/jre1.5.0_17; export JAVA_HOME
 PATH=$PATH:$JAVA_HOME/bin
 export PATH
 CATALINA_HOME=/usr/local/apache-tomcat-6.0.18
 TOMCAT_HOME=/usr/local/apache-tomcat-6.0.18
 CLASSPATH=.
 export CATALINA_HOME TOMCAT_HOME CLASSPATH

Após adicionar no /etc/profiles e exportá-las no bash, já poderá iniciar o tomcat:

cd /usr/local/apache-tomcat-6.0.18/bin/
./catalina.sh start
 Using CATALINA_BASE: /usr/local/apache-tomcat-6.0.18
 Using CATALINA_HOME: /usr/local/apache-tomcat-6.0.18
 Using CATALINA_TMPDIR: /usr/local/apache-tomcat-6.0.18/temp
 Using JRE_HOME: /usr/local/jre1.5.0_17

Se tudo ocorreu conforme acima, basta acessá-lo através do IP da máquina na porta 8080, no menu Miscellaneous você encontrará exemplos para testar o seu servidor.

CONFIGURAR O APT

Editar o arquivo /etc/apt/sources.list conforme as linhas abaixo:

1 #
 2 # deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 DVD Binary-1 20090413-00:33]/ lenny contrib main
 3
 4 #deb cdrom:[Debian GNU/Linux 5.0.1 _Lenny_ - Official i386 DVD Binary-1 20090413-00:33]/ lenny contrib main
 5
 6 deb http://security.debian.org/ lenny/updates main contrib
 7 deb-src http://security.debian.org/ lenny/updates main contrib
 8
 9 deb http://volatile.debian.org/debian-volatile lenny/volatile main contrib
 10 deb-src http://volatile.debian.org/debian-volatile lenny/volatile main contrib
 11
 12
 13 deb http://ftp.us.debian.org/debian lenny main contrib non-free
 14

Para instalar os pacotes providos pelo repositório Debian, basta executar:

apt-get install apache2
 apt-get install libapache2-mod-php5
 apt-get install libapache2-mod-jk
 apt-get install php5 php5-cli php5-mysql php5-pgsql

CONFIGURANDO O Apache

O servidor apache já está configurado para trabalhar com o módulo PHP, MySQL e PostgreSQL. Faz-se necessário apenas configurar o mod_jk, módulo responsável por fazer a “ponte” entre o apache e o tomcat.

Lista de módulos, para conferência, já configurados automaticamente nesta instalação via comando apt-get:

/etc/apache2/mods-enabled# ls -alhtr
 total 8.0K
 drwxr-xr-x 2 root root 4.0K 2009-11-24 14:41 .
 drwxr-xr-x 7 root root 4.0K 2009-11-24 16:50 ..
 lrwxrwxrwx 1 root root 29 2009-12-09 10:31 status.load -> ../mods-available/status.load
 lrwxrwxrwx 1 root root 29 2009-12-09 10:31 status.conf -> ../mods-available/status.conf
 lrwxrwxrwx 1 root root 31 2009-12-09 10:31 setenvif.load -> ../mods-available/setenvif.load
 lrwxrwxrwx 1 root root 31 2009-12-09 10:31 setenvif.conf -> ../mods-available/setenvif.conf
 lrwxrwxrwx 1 root root 27 2009-12-09 10:31 php5.load -> ../mods-available/php5.load
 lrwxrwxrwx 1 root root 27 2009-12-09 10:31 php5.conf -> ../mods-available/php5.conf
 lrwxrwxrwx 1 root root 34 2009-12-09 10:31 negotiation.load -> ../mods-available/negotiation.load
 lrwxrwxrwx 1 root root 34 2009-12-09 10:31 negotiation.conf -> ../mods-available/negotiation.conf
 lrwxrwxrwx 1 root root 27 2009-12-09 10:31 mime.load -> ../mods-available/mime.load
 lrwxrwxrwx 1 root root 27 2009-12-09 10:31 mime.conf -> ../mods-available/mime.conf
 lrwxrwxrwx 1 root root 25 2009-12-09 10:31 jk.load -> ../mods-available/jk.load
 lrwxrwxrwx 1 root root 26 2009-12-09 10:31 env.load -> ../mods-available/env.load
 lrwxrwxrwx 1 root root 26 2009-12-09 10:31 dir.load -> ../mods-available/dir.load
 lrwxrwxrwx 1 root root 26 2009-12-09 10:31 dir.conf -> ../mods-available/dir.conf
 lrwxrwxrwx 1 root root 30 2009-12-09 10:31 deflate.load -> ../mods-available/deflate.load
 lrwxrwxrwx 1 root root 30 2009-12-09 10:31 deflate.conf -> ../mods-available/deflate.conf
 lrwxrwxrwx 1 root root 26 2009-12-09 10:31 cgi.load -> ../mods-available/cgi.load
 lrwxrwxrwx 1 root root 32 2009-12-09 10:31 autoindex.load -> ../mods-available/autoindex.load
 lrwxrwxrwx 1 root root 32 2009-12-09 10:31 autoindex.conf -> ../mods-available/autoindex.conf
 lrwxrwxrwx 1 root root 33 2009-12-09 10:31 authz_user.load -> ../mods-available/authz_user.load
 lrwxrwxrwx 1 root root 33 2009-12-09 10:31 authz_host.load -> ../mods-available/authz_host.load
 lrwxrwxrwx 1 root root 38 2009-12-09 10:31 authz_groupfile.load -> ../mods-available/authz_groupfile.load
 lrwxrwxrwx 1 root root 36 2009-12-09 10:31 authz_default.load -> ../mods-available/authz_default.load
 lrwxrwxrwx 1 root root 33 2009-12-09 10:31 authn_file.load -> ../mods-available/authn_file.load
 lrwxrwxrwx 1 root root 33 2009-12-09 10:31 auth_basic.load -> ../mods-available/auth_basic.load
 lrwxrwxrwx 1 root root 28 2009-12-09 10:31 alias.load -> ../mods-available/alias.load
 lrwxrwxrwx 1 root root 28 2009-12-09 10:31 alias.conf -> ../mods-available/alias.conf

 

/etc/apache2/mods-enabled# ls
 alias.conf authn_file.load authz_host.load autoindex.load deflate.load env.load mime.load php5.conf setenvif.load
 alias.load authz_default.load authz_user.load cgi.load dir.conf jk.load negotiation.conf php5.load status.conf
 auth_basic.load authz_groupfile.load autoindex.conf deflate.conf dir.load mime.conf negotiation.load setenvif.conf status.load

Arquivos modificados para configurar mod_jk no Apache:

  • /etc/apache2/
    - tomcat.conf
    - workers.properties
  • sites-enabled/
    - 000-default

tomcat.conf


Arquivo responsável por definir configurações do módulo JK, como propriedades, log e formatos:

1 JkWorkersFile /etc/apache2/workers.properties
 2 JkLogFile /var/log/apache2/mod_jk.log
 3 JkLogLevel error
 4 JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "
 5 #JkOptions +ForwardKeySize +ForwardURICompat -ForwardDirectories
 6 JkOptions +ForwardKeySize -ForwardDirectories
 7 JkRequestLogFormat "%w %V %T"

workers.properties


Arquivo responsável por fazer o relacionamento entre Apache e Tomcat via protocolo ajp13

1 workers.tomcat_home=/usr/local/apache-tomcat-6.0.18/
 2 workers.java_home=/usr/local/jre1.5.0_17
 3 ps=/
 4 worker.list=jvm1
 5 worker.jvm1.type=ajp13
 6 worker.jvm1.host=127.0.0.1
 7 worker.jvm1.port=8009
 8 worker.jvm1.socket_keepalive=1
 9 worker.jvm1.socket_timeout=300
 10 worker.jvm1.lbfactor=1

000-default


Arquivo responsável por armazenar configurações de VirtualHost do apache para o site denominado default

1 <VirtualHost *:80>
 2 ServerAdmin [email protected]
 3 ##ServerName intranet.com.br
 4 DocumentRoot /var/www/
 5 <Directory />
 6 Options FollowSymLinks
 7 AllowOverride None
 8 </Directory>
 9 <Directory /var/www/>
 10 Options Indexes FollowSymLinks MultiViews
 11 AllowOverride None
 12 Order allow,deny
 13 allow from all
 14 </Directory>
 15
 16 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
 17 <Directory "/usr/lib/cgi-bin">
 18 AllowOverride None
 19 Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
 20 Order allow,deny
 21 Allow from all
 22 </Directory>
 23
 24 ErrorLog /var/log/apache2/error.log
 25
 26 # Possible values include: debug, info, notice, warn, error, crit,
 27 # alert, emerg.
 28 LogLevel warn
 29
 30 CustomLog /var/log/apache2/access.log combined
 31
 32 Alias /doc/ "/usr/share/doc/"
 33 <Directory "/usr/share/doc/">
 34 Options Indexes MultiViews FollowSymLinks
 35 AllowOverride None
 36 Order deny,allow
 37 Deny from all
 38 Allow from 127.0.0.0/255.0.0.0 ::1/128
 39 </Directory>
 40
 41
 42 # Modulo JK, Tomcat
 43
 44 JkMount /pentaho jvm1
 45 JkMount /pentaho/* jvm1
 46 JkMount /pentaho-style jvm1
 47 JkMount /pentaho-style/* jvm1
 48 JkMount /sw-style jvm1
 49 JkMount /sw-style/* jvm1
 50
 51
 52
 53 # Caso for adicionar um outro PATH, modificar as duas chamadas
 54 #JkMount /SISTEMA jvm1
 55 #JkMount /SISTEMA/* jvm1
 56
 57
 58 </VirtualHost>

o JkMount faz o redirecionamento do seu “/sistema” para a jvm1 que será atendida pelo tomcat. Note que o seu /sistema deve estar dentro do diretório webapps do tomcat.

CONFIGURANDO O Tomcat

Será necessário modificar apenas o server.xml em: tomcat/conf/server.xml

server.xml


Esse arquivo é responsável por definir o engine da JVM que irá atender as requisições do Apache com o módulo JK

140 <!-- Define the top level container in our container hierarchy -->
 141 <Engine name="Catalina" <span style="color: #ff0000;"><strong>jvmRoute="jvm1"</strong></span> defaultHost="localhost">