Instalando o WSO2 Web Services Framework for PHP (2.0.0)
Como eu disse anteriormente, em Consumindo um serviço seguro utilizando PHP, vou mostrar uma das maneiras para instalar o framework que o pessoal do WSO2 disponibiliza para criação e consumo de serviços em PHP, conhecido como: WSO2 Web Services Framework for PHP.
Na página de downloads do WSO2 Web Services Framework for PHP, é possível escolher entre 3 opções de instalação, então exemplificar a fundo apenas uma e colocar uma breve descrição das outras.
Binary Distribution
É o framework já compilado e com a DLL dentro que serve para as pessoas que a utilizarão em ambientes Windows, não terá muito trabalho, apenas colocar a DLL na pasta correta e configurar o seu php.ini. Essa é a opção mais prática - na minha opinião - para Windows (deixarei essa para uma próxima, não tenho ambiente para isso - ainda).
PECL Distribution
Em teoria é a mais fácil de todas. Mas por que "em teoria"? Passei dois dias realizando diversas configurações na minha máquina para que isso funcionasse corretamente, perguntei no fórum se alguém poderia me ajudar a solucionar, mas desisti. Parti para a maneira "clássica", o famoso CMM, que descrevo abaixo.
Source Distribution
Essa versão é o código-fonte do WSO2 Web Services Framework for PHP (aberto, hein!) e aqui temos duas opções de download, com apenas uma diferença mínima: o compactador. Uma foi compactada utilizando ZIP e outra TAR/GZ. E ambas será necessário compilação, com os bons e velhos comandos: ./configure, make && make install.
Mas, chega de papo, vamos por a mão na "massa".
Instalando as dependências
As dependências para funcionamento do framework, não são muitas:
- WSO2 Web Services Framework for C
- PHP 5.1.1 ou superior
- Bibliotecas libxml2 e OpenSSL
WSO2 Web Services Framework for C
Para quem tá acostumado, são os velhos conhecidos, bastando baixar a última versão (no meu caso a 2.0.0):
wget http://dist.wso2.org/products/wsf/c/2.0.0/wso2-wsf-c-src-2.0.0.tar.gz tar xfvz wso2-wsf-c-src-2.0.0.tar.gz cd wso2-wsf-c-src-2.0.0 ./configure make sudo make install
PHP 5.1.1 ou superior
Não vou entrar nos méritos de instalação do PHP, pois imagino que isso esteja mais do que documentado na internet por aí a fora (para os preguiçosos - google: instalação do php no ubuntu).
Bibliotecas libxml2 e OpenSSL
O comando para instalar as dependências é:
sudo apt-get install libxml2 openssl
E com todas as dependências já instaladas e funcionando, podemos utilizar um phpinfo(); para conferir:
Compilação do WSF/PHP
CMM
E agora, a instalação propriamente dita, utilizando novamente os pacotes da versão 2.0.0:
wget http://dist.wso2.org/products/wsf/php/2.0.0/wso2-wsf-php-src-2.0.0.tar.gz ./configure make sudo make install
1, 2, 3, testando...
Estamos quase chegando lá...
Vamos copiar dois arquivos do diretório samples (um cliente e um servidor) para o diretório do servidor web (no meu caso: /var/www/samples) e ver se tudo funcionou:
sudo mkdir -p /var/www/samples/ sudo cp samples/math_* /var/www/samples/.
Indo ao navegador, basta abrir o endereço http://localhost/samples/math_client.php e conferir tudo funcionando:
Conclusão
Ainda não consigo avaliar até onde é válido ou interessante utilizar esse framework, não pesquisei a fundo ainda o funcionamento e as vantagens dele sobre as implementações como SOAP (nativa do PHP) NuSOAP.
Mas o fato de ser uma instalação que não pode ser feita em "qualquer" servidor, ainda mais no Brasil onde as empresas de hospedagens normalmente não instalam extensões de terceiros e o preço para ter um servidor próprio não é tão acessível, pode acabar ficando inviável.
Realizarei testes mais profundos para verificar as verdadeiras vantagens dessa abordagem na implementação dos serviços, só que - novamente - ficará para um outro post.
Instalando WSO2 Enterprise Service Bus Eclipse Tools no Ubuntu Karmic Koala (9.10)
Com o lançamento do WSO2 Enterprise Service Bus Eclipse Tools (v1.0.0-beta), cansado de ficar utilizando a interface web para gerenciar os "esqueminhas" da ESB, resolvei testar o plugin.
Mas como nem tudo são flores, após eu instalar o plugin e tentar criar um novo endpoint, recebi o erro abaixo:
Unhandled event loop exception XPCOM error -2147467259
Com isso, passei um certo tempo procurando na internet, até descobrir que o erro é causado por falta da biblioteca libstdc++5, que no Ubuntu Karmic Koala (9.10) foi atualizada para libstdc++6. Versão que é incompátivel com a visualização embarcada do Mozilla que o Eclipse WTP utiliza.
Então, para resolver o problema, primeiro passo que tentei foi:
$ sudo apt-get install libstdc++5 Reading package lists... Done Building dependency tree Reading state information... Done Package libstdc++5 is not available, but is referred to by another package. This may mean that the package is missing, has been obsoleted, or is only available from another source E: Package libstdc++5 has no installation candidate
Só que não resolveu, a maneira que encontrei foi procurar a biblioteca para download, encontrei no site do Debian:
wget http://ftp.br.debian.org/debian/pool/main/g/gcc-3.3/libstdc++5_3.3.6-18_i386.deb
E instalei:
sudo dpkg -i libstdc++5_3.3.6-18_i386.deb
E com esses passos, tudo funciona normalmente...



