JSP versus PHP? Não PHP no Tomcat. =P

Sou 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:
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

phpdubsoup2.PNG

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/

Digg this     Create a del.icio.us Bookmark     Add to Newsvine

One Response to “JSP versus PHP? Não PHP no Tomcat. =P”

  1. Hugo Santos Says:

    Cool! Era uma dúvida que eu tinha e a usarei em um futuro não muito distante. A dúvida é será que se eu passar parâmetros de uma Servlet o php renderiza na boa ? Problemas de escopo, session, mesma virtual machine, etc…
    Vlw o post já está entre os favoritos do meu del.icio.us. :P

Leave a Reply