Não temos uma solução definitiva para a criação de relatórios em ambiente php. (ponto). Testei o JasperReports e desisti. Testei o Birt e resolvi ficar com ele. Pastei como burro grande durante 4 dias para instalar o ambiente de exibição de relatórios na web. Coisas do Java, TomCat e ubuntu. Coisas mal boladas, mal sacadas e mal documentadas… principalmente para um pobre desenvolvedor php. Divido com vocês minha dor na esperança que vocês possam poupar a própria.

photo credit: chantrybee
Primeiro uma pequena ressalva. Instalei no Ubuntu 8.04, 9.04 e 10.04 essa receita que descrevo a seguir foi a única que funcionou nas três versões.
Comece tendo certeza que os pacotes java necessários estão instalados. Antes de qualquer coisa digite:
sudo apt-get install vim
Este comando vai instalar o vim por que vi é para loucos. Uma vez que o vim esteja instalado digite
sudo vim /etc/apt/sources. list
O arquivo que vai abrir é o arquivo de repositórios do ubuntu. Delete o # do começo das linhas:
# deb http://archive.canonical.com/ubuntu lucid partner
# deb-src http://archive.canonical.com/ubuntu lucid partner
Salve e faça o update e upgrade do seu servidor digitando:
sudo apt-get update && sudo apt-get upgrade
Pronto! Agora podemos, finalmente, verificar, ou instalar, os pacotes java necessários. Para isso, digite o seguinte comando.
sudo apt-get install sun-java6-bin sun-java6-jdk sun-java6-jre
Se os pacotes não estiverem instalados, instale. Não se assuste o java exige uma licença especial. Leia cuidadosamente duas vezes, consulte seu advogado, chame uma testemunha e, mova o cursor até ok e pressione enter.
Instalou? Não? Então você precisa de ajuda profissional.
Agora vamos instalar o tomcat. Escolhi o 6 porque os aplicativos que vou usar já foram testados com ele. Então baixe o treco diretamente do site da fundação Apache digitando:
wget http://ftp.unicamp.br/pub/apache/tomcat/tomcat-6/v6.0.28/bin/apache-tomcat-6.0.28.tar.gz
Se você não estiver no Brasil, seja educado e procure o seu próprio mirror.
Baixou? Não? Fique tranquilo eu espero…
Pronto? Agora vamos descomprimir o arquivo que baixamos para tal:
tar xvzf apache-tomcat-6.0.28.tar.gz
Falta pouco, calma…. vamos mover o conteúdo deste diretório para o lugar certo (há controvérsias. Eu sei. Mas vou deixar aqui mesmo) para isso digite
sudo mv apache-tomcat-6.0.28 /usr/local/tomcat
Sem mais delongas, vamos rodar o TomCat…
Calma… brincadeirinha, ainda tem uma coisinha, bem pequenininha para fazer, digite:
vim /usr/local/tomcat/bin/startup.sh
Na última linha inclua: export JAVA_HOME=/usr/lib/jvm/java-6-sun Salve e agora sim… vamos rodar esse treco.
sudo /usr/local/tomcat/bin/startup.sh
Se tudo correu bem você verá uma série de mensagens parecidas com:
Using CATALINA_BASE: /usr/local/tomcat
Using CATALINA_HOME: /usr/local/tomcat
Using CATALINA_TMPDIR: /usr/local/tomcat/temp
Using JRE_HOME: /usr/lib/jvm/java-6-sun
Using CLASSPATH: /usr/local/tomcat/bin/bootstrap.jar
Agora você pode testar com o navegador apontando para http://localhost:8080 se for uma pessoa de sorte e tiver tido uma vida anterior ilibada deverá ver a página default do Tomcat. Esta é a dica para sair com os amigos e comemorar. Eu sugiro umas 5 garrafas de cerveja na beira da praia de preferência no sol vendo mulher bonita. Depois volte aqui que ainda tem uma coisinha ou duas…
Você, que é um administrador sério não vai ficar digitando sudo /usr/local/tomcat/bin/startup.sh todas as vezes que quiser iniciar o TomCat, certo? Principalmente por que existe um tal de init.d só para estas coisas. Então vamos fazer um scriptinho para isso. Digite:
vim /etc/init.d/tomcat
No arquivo que abrir digite:
# Iniciando, parando e re inicando o tomcat
# processname: tomcat
# pidfile: /var/run/tomcat.pid
export JAVA_HOME=/usr/lib/jvm/java-6-sun
case $1 in
start)
sh /usr/local/tomcat/bin/startup.sh
;;
stop)
sh /usr/local/tomcat/bin/shutdown.sh
;;
restart)
sh /usr/local/tomcat/bin/shutdown.sh
sh /usr/local/tomcat/bin/startup.sh
;;
esac
exit 0
Salve mude as permissões deste arquivo para que ele seja executável, digitando:
sudo chmod 755 /etc/init.d/tomcat
e voilá!!!! Pode correr para o abraço. Não? Já sei, lembrou do auto-start. Aquela coisa que acontece quando a máquina é deligada e ligada novamente. Foi isso?… Bom para isso você pode criar dois links dinâmicos nos diretórios rc
sudo ln -s /etc/init.d/tomcat /etc/rc1.d/K99tomcat
sudo ln -s /etc/init.d/tomcat /etc/rc2.d/S99tomcat
Agora sim. Satisfeito? Eu não! Ainda falta o PhpJavaBridge.
Para instalar o phpJavaBridge baixe o componente
wget http://sourceforge.net/projects/php-java-bridge/files/Binary%20package/php-java-bridge_5.5.4.1_documentation.zip
e descomprima-o (esse verbo existe???);
unzip php-java-bridge_5.5.4.1_documentation.zip
Você precisa mover o javabridge.war para o lugar certo. Este é o arquivo que contém os milagres digo, arquivos para executar o PhpJavaBridge.
sudo mv php-java-bridge_5.5.4.1_documentation/JavaBridge.war /usr/local/tomcat/webapps
Re inicie o seu TomCat… como é mesmo? Lembrei…
sudo /etc/init.d/tomcat restart
Viaje até a página inicial do seu TomCat e clique no link Tomcat Manager ou digite http://localhost:8080/manager/html
Pediu senha? Desculpe, tinha esquecido disto antes de entrar nesta página você tem que criar um usuário do TomCat com direito de administrador. Viu como é fácil? Digite:
sudo /usr/local/tomcat/conf/tomcat-users.xml
e adicione as linhas a seguir antes de </tomcat-users>
<role rolename=”manager”/>
<user username=”admin” password=”*coisa*” roles=”manager”/>
Salve e re inicie o TomCat
sudo /etc/init.d/tomcat restart
Agora sim viaje até http://localhost:8080/manager/html use o usuário adim e a password coisa.
Você verá uma lista de aplicativos instalados no seu TomCat, entre eles o JavaBridge, clique neste link e teste todos os exemplos.
Pronto agora você já pode chamar seus relatórios feitos no Birt de dentro do php. Coisa de gente grande… ou chata… ou muito deseperada.
Pausa para mais cinco cervejas geladas, mais duas horas de sol e mulher bonita…. e vamos a luta. Semana que vem mostro como instalar o Birt Viewer. É fácil, muito fácil. Pelo sim, pelo não já compre uma meia dúzia de cervejas e bote para gelar.
Uma última observação. Antes de partir para a ignorância e instalar na mão, depois de ler uma dúzia de tutoriais eu tentei usar os pacotes do ubuntu e, em nenhuma das versões do ubuntu eu consegui botar o tal do phpJavaBridge para funcionar se você conseguir isso partindo dos pacotes oficiais eu ficaria muito feliz em saber como…:)