# Aplicativos em PHP/Recursos Extras/Integração com Java
## Integração Java

[1] Introdução
A linguagem Java tem se firmado como uma das mais poderosas no ambiente empresarial, em aplicações que exigem alta confiabilidade e flexibilidade, além de integração em ambientes multi-plataforma. A linguagem de script PHP, por sua vez, oferece facilidades na programação de aplicações para a Web, como por exemplo a integração direta com o Servidor Web Apache, além de ser utilizada largamente na Internet atual com o advento do Ajax.
O uso em conjunto das linguagens PHP e Java já começa a ser explorada, e pode trazer a desenvolvedores de aplicações para a Web uma solução que agrega as qualidades de ambas as linguagens.
Este artigo objetiva apontar as etapas necessárias para a integração das linguagens PHP e Java. Apresenta exemplos de configuração do PHP em conjunto com Java em plataformas Windows e Linux.
[2] Instalação do Apache, Java e PHP
Inicialmente, deve-se instalar as versões mais recentes do Apache, Java e PHP. Sugere-se, contudo, que se utilize as versões estáveis mais recentes, e não versões em testes.
Pode-se obter as versões do Apache, Java e PHP, nos seguintes sites, respectivamente:
2.1. Ambiente Linux
a) Instalar o java.
Baixando-se, por exemplo, a versão tar.bz2 de Java, deve-se extrai-la para o diretório /local_de_instalacao/j2re-1_4_1_01-linux-i586.bin e linkar para /local_de_instalacao/java, conforme mostrado nas seguintes linhas:
b) Instalar o apache.
Exemplo prático. Utilizou-se a instrução de compilação do Apache (./configure) com as seguintes opções:
c) Compilar o arquivo fonte do PHP, com a opção -with-java, seguindo primeiramente os passos de instalação:
Observação: existem várias opções para a configuração do PHP. Sugere-se que se carregue apenas os módulos que efetivamente se for utilizar, para que o PHP fique mais "leve".
Exemplo prático. Em nosso caso, utilizou-se a instrução de compilação do PHP (./configure), com as seguintes opções:
Teste de funcionamento do Apache/PHP
Deve-se startar o apache, com "/www/bin/apachectl start" (ou, em nosso caso, com "/usr/sbin/apachectl start").
Para testar se o php está funcionando, um simples arquivo .php pode ser criado, contendo a instrução "phpinfo;".
Ex. Criar arquivo "phpinfo.php" em "/www/htdocs/". < ?php phpinfo; ?>
Depois chamá-lo via web browser através do endereço: "http://server-ip/phpinfo.php"
2.2. Ambiente Windows
A configuração, para o ambiente Windows, testada para o presente artigo foi: Apache 1.3, Java 2 (jsdk1.4.0_03), e PHP 4.3.6.
2.3. Ambiente Unix
[3] Variáveis de Ambiente
As variáveis de ambiente são as variáveis utilizadas pelo sistema operacional para a configuração do ambiente de trabalho do usuário. No caso particular de Java, precisa-se acertá-las, para que se possa executar o compilador java a partir da linha de comando, e para que o compilador possa encontrar todas as classes da Java API, referenciadas no(s) programa(s).
3.1. Ambiente Linux
Deve-se editar o arquivo /etc/profile e acrescentar as seguintes linhas:
Caso esteja-se utilizando o usuário root para compilar os programas em java, pode-se precisar editar o arquivo ./profile e acrescentar as seguintes linhas:
Deve-se configurar a variável de ambiente LD_LIBRARY_PATH, inserindo dentro do arquivo de controle do Apache (/usr/sbin/apachectl):
3.2. Ambiente Windows
A instalação dos Win 9x, Win ME e Win XP diferenciam-se um pouco. Para o Windows Millenium (Win ME), deve-se seguir os seguintes passos:
Isto irá abrir uma janela de configuração, na qual deve-se selecionar a pasta [Ambiente]. As variáveis de ambiente e respectivos valores a serem configurados são:
[4] Alterando a Configuração Padrão do PHP
O PHP possui um arquivo de configuração, chamado php.ini, que determina diversas características de seu funcionamento. Deve-se alterar a sua configuração padrão, em função do uso da extensão java.
4.1. Ambiente Linux
Primeiramente deve-se verificar se o arquivo php.ini foi criado, após a compilação do php. Se for criado um arquivo php.ini-dist, deve-se copiá-lo com o nome php.ini. Depois disso, deve-se colocar o php.ini no mesmo diretório em que está o diretório de arquivos e bibliotecas do php (no caso nosso, em $PHP_LIB_PATH = /usr/local/lib). Assim, obtém-se uma estrutura de diretórios semelhante à representada abaixo:
A seguir, configura-se o arquivo php.ini, com os valores:
Exemplo prático (implementado no Linux). Observar que a linha de java.library.path foi suprimida, uma vez que o caminho de biblioteca já havia sido especificado, através da variável extension_dir.
4.2. Ambiente Windows
Na distribuição original, pode ser que ainda não haja o arquivo php.ini, e sim o arquivo php.ini-dist. Deve-se então renomear este arquivo para php.ini, e copiá-lo para o diretório C:\Windows (Win 9x e ME), ou para C:\Winnt (Windows NT, Windows 2000 ou Windows XP).
Deve-se alterar as seguintes variáveis:
Exemplo prático:
[5] Alterando a Configuração Padrão do Apache
Adicionar as seguintes linhas ao arquivo httpd.conf:
Adicionar as seguintes linhas ao arquivo /etc/ld.so.conf:
Depois rodar: /sbin/ldconfig
Deve-se criar, dentro do diretório onde ficam as extensões do PHP (em nosso caso, em /opt/php/lib/php/extensions/no-debug-non-zts-20020429), um link simbólico para o arquivo java.so:
[6] Verificação de Funcionamento PHP + Java
Exemplo 1: Código em php, chamando a classe Java java.lang.System:
< ?php $systemInfo = new Java("java.lang.System"); print "Total de segundos desde Primeiro de Janeiro de 1970:".$systemInfo->currentTimeMillis; ?>
[7] Referências
[1] Apache Foundation - Homepage. http://www.apache.org/ [2] FARSTAD, Bård. Interfacing with Java from PHP. Publishing date: 09.11.2000 15:19. http://zez.org/article/articleview/26/. Consultado em 06-05-2004. [3] GRAY, Simon. Fórum de discussões: Apache, PHP (With java). http://www.evilwalrus.com/articles.php?aid=7. Consultado em 06-05-2004. [4] Java - Sun Microsystems http://www.apache.org/ [5] PHP - Homepage. http://www.php.net/ [6] PHP - Architect. Fórum: At wit's end with configuring php --with-java . http://www.phparch.com/discuss/index.php/m/2352/0#msg_2352. Consultado em 06-05-2004. [7] YUNG, Leandro. Criando um Ambiente Java para Desenvolvimento. Revista Mundo Java, número 1, ano 1, setembro-outubro de 2003. pp32-35. Editora Mundo OO.