JSP versus PHP? Não PHP no Tomcat. =P
January 19th, 2008 by flaviocrispimSou especialista em desenvolvimento de aplicações web, usando tecnologia J2EE.
PHP? Bem tenho um contrato de vários meses com um provedor e na prática, java é bem caro de se manter neste quesito para aplicações web, já PHP consome poucos recursos e todo provedor ofereçe suporte sem custos adicionais.
Ótima oportunidade de conhecer outra tecnologia, tenho algumas idéias de pequenos projetos, mas e para desenvolver e manter com o menor custo possível precisarei aprender RoR ou PHP, que são as tecnologias disponiveis por padrão no meu provedor.
Porque PHP? Encontrei mais referências, tem uma comunidade maior e bastante ativa e porque pretendo entender um pouco mais do wordpress (escrito em PHP), Ruby on Rails, fica para a próxima.
Por mais ridículo que pareça, decidi sem nenhum motivo em especial pesquisar se seria possível escrever uma aplicação PHP e usar o Tomcat como servidor. (aeuaue)
Funciona sim, mas como não passo de newbie em PHP, não sei se funciona plenamente a ponto de poder rodar um Bugzilla ou um Wordpress.
Receita
Ingredientes:
- 1 – PHP 5.2.5 (http://www.php.net);
- 1 – PECL 5.2.5 (http://www.php.net);
- 1 – Tomcat 5.5.25 (http://tomcat.apache.org);
- 1 – J2SE 6.0u4 (http://java.sun.com);
Modo de Preparo do Ambiente:
- Primeiro Instale a JVM e em seguida descompacte o zip do PHP5 no diretório que desejar, sugiro c:\PHP;
- Instalar o Tomcat, basicamente descompacte-o, ou no caso de arquivo ‘.msi’ use o wizard;
- Criar a variável de ambiente JAVA_HOME apontando para o diretório do… … java;
- PHP_HOME para… … c:\PHP;
- CATALINA_HOME – para o diretório onde estão os arquivos do Tomcat;
- Incluir na variável de ambiente PATH os caminhos: %CATALINA_HOME%\bin;%PHP_HOME%;%JAVA_HOME%\bin
- Fechar todas as janelas de comando que estão abertas.
![]()
Modo de preparo do PHP no Tomcat
- No diretório c:\PHP existe um arquivo: ‘php.ini-dist’, faça uma cópia dele com o nome… ‘php.ini’;
- Edite o arquivo php.ini e procure por ‘extension=php_java.dll’, verifique se a linha existe e se não está comentada, caso não exista… crie.
O arquivo zip PECL serve para alguma coisa sim. Existem alguns arquivos que precisam ser extraídos para a pasta raiz do PHP e um último arquivo que deverá ser usado como biblioteca no Tomcat.
- No zip PECL extraia os arquivos: php5servlet.dll, php_java.jar e php_java.dll para o diretório c:\PHP;
- No diretório webapps do tomcat, crie um diretório que servirá como raiz da aplicação PHP, exemplo phpdubsoup;
- No diretório Raiz da aplicação crie também o diretório WEB-INF, dentro do WEB-INF crie o diretório classes, ainda no diretório WEB-INF crie um arquivo web.xml, contendo:
<?xml version=”1.0″ encoding=”ISO-8859-1″?>
<!DOCTYPE web-app PUBLIC
“-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN”
“http://java.sun.com/dtd/web-app_2_3.dtd”>
<web-app>
<servlet>
<servlet-name>php</servlet-name>
<servlet-class>net.php.servlet</servlet-class>
</servlet>
<servlet>
<servlet-name>php-formatter</servlet-name>
<servlet-class>net.php.formatter</servlet-class>
</servlet>
<servlet-mapping>
<servlet-name>php</servlet-name>
<url-pattern>*.php</url-pattern>
</servlet-mapping>
<servlet-mapping>
<servlet-name>php-formatter</servlet-name>
<url-pattern>*.phps</url-pattern>
</servlet-mapping>
</web-app>
- No arquivo PECL extraia o arquivo phpsrvlt.jar e extraia o conteúdo deste arquivo jar para o diretório WEB-INF/classes da aplicação phpdubsoup;
O conteúdo do arquivo jar contém os servlets declarados no web.xml, mas na versão usada necessita de uma pequena correção nos arquivos properties, para referenciar corretamente a biblioteca ‘php5servlet.dll’
- Editar os arquivos: ‘reflect.properties’ e ’servlet.properties’ que se encontram em: phpdubsoup/WEB-INF/classes/net/php. A variável library deve ser igual ao nome da biblioteca, assim:
library=php5servlet
- Na raiz da aplicação phpdubsoup, criar um arquivo chamado test.php, contendo:
<?php phpinfo(); ?>
- Abrir uma linha de comando, e digitar startup, para iniciar o tomcat.
Modo do Consumo
- Abrir o seu browser predileto e acessar a seguinte url: http://localhost:8080/phpdubsoup/test.php;
- Você deverá ver uma página similar a esta:
Pronto! PHP rodando dentro do Tomcat. Não é a configuração que irei usar no meu site, mas é assim que darei meus primeiros passos nessa linguagem.
Referência: http://blog.taragana.com/index.php/archive/running-php-5x-on-windows-using-tomcat-4x-or-5x/