Cliente de Webservice em PHP
Autor: João Carlos Medau | Publicado: 2008-06-11T12:59:00-03:00

Olá,Tenho colocado posts (muito) raramente aqui mas, apesar disso, alguns que coloquei me foram úteis depois para repetir alguma instalação, configuração, etc. Assim, esse post se destina a descrever a configuração de um servidor web com PHP capaz de rodar aplicações que acessam webservices.A forma mais fácil de rodar aplicações PHP era, até então, a instalação do pacote EasyPHP, disponível para download em http://sourceforge.net/project/downloading.php?groupname=quickeasyphp&filename=EasyPHP-2.0b1-setup.exe&use_mirror=ufpr. Porém, após fazer essa instalação numa máquina rodando Windows Vista Business, nenhuma página PHP era apresentada.A próxima opção foi instalar um servidor Apache e PHP "manualmente". Para resumir os passos, há um tutorial muito útil a respeito na página http://www.php-mysql-tutorial.com/install-apache-php-mysql.php.Faça o download do instalador do Apache em http://httpd.apache.org/. Siga as instruçoes de instalação do tutorial.Teste 1: Após a instação do Apache, digite http://localhost no seu browser. Deve aparecer uma tela com a frase It Works! É sinal de que o Apache por si só está funcionando.Depois de instalar o Apache e fazer o que está descrito no tutorial para instalar o PHP, misteriosamente o PHP ainda não funcionava. Nesse ponto, eu e a Cris perdemos várias horas tentando fazer a configuração. Aqui vai um resumo de passos que diferem do tutorial por causa da versão do PHP e do Apache.Obs: No download do PHP há opções para usar o instalador ou descompactar o .zip. Não consegui fazer funcionar com o instalador. Então, prefira o .zip.Após descompactar o pacote, acesse o arquivo httpd.conf na pasta /conf da instalação do Apache. Prefira um path name sem espaços para a instalação do Apache. Algo como c:\apache é simples e funcional.Mude as seguintes diretivas para:DocumentRoot "C:/www"    DirectoryIndex index.html index.htm index.phpAdicione as linhas abaixo no final do arquivo ao invés das sugeridas no tutorial:LoadModule php5_module php/php5apache2_2.dllAddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phpsTeste 2: Crie um arquivo chamado teste.php na pasta c:\www com o seguinte conteúdo:<?phpphpinfo();?>Reinicie o Apache. Após, digite no seu browser http://localhost/teste.php. Deverá aparecer uma página como a descrita no tutorial. Se não aparecer, revise todas as configurações dos arquivos httpd.conf e php.ini. Lembre-se de reiniciar o serviço do Apache a cada modificação.Quando funcionar, é sinal que o Apache + PHP já estão funcionando. Agora, só falta ser cliente de Webservices.Edite o arquivo php.ini (que vc copiou para a pasta c:\Windows conforme manda o tutorial) para ajustar as seguintes diretivas:short_open_tag = Oninclude_path=".;c:\apache\php\pear"extension=php_soap.dllApós a instalação do PHP, há um arquivo chamado go-pear.bat na pasta de instalação do PHP. Execute esse arquivo para a instalação da ferramenta Pear que é usada para acrescentar pacotes no PHP.Siga o roteiro que aparece na tela. Após concluir esse passo, instale a extensão HTTP Request, através dos comandos:pear download HTTP_requestpear install HTTP_requestPara instalar o pacote SOAP (necessário para a utilização de webservices) é necessário fazer o download manual do pacote. Isso pode ser feito em http://pear.php.net/package/SOAP. Após o download, descompacte o pacote, renomeie a pasta p/ SOAP e copie para dentro da pasta /php/pear.Reinicie o serviço do Apache.Crie um arquivo chamado web_teste.php na pasta c:\www com o seguinte conteúdo:<?$pesoIni = "1000";echo "Peso: $pesoIni gramas";require_once('SOAP/Client.php');$wsdl = new SOAP_WSDL('http://www.webservicex.net/convertMetricWeight.asmx?wsdl');$client = $wsdl->getProxy();$ret = $client->ChangeMetricWeightUnit($pesoIni,'gram','kilogram');echo "Peso $ret kilogramas";?>Digite http://localhost/web_teste.phpSe aparecer 1000 gramas convertidos para 1 kilograma, tudo está funcionando como deveria.Links úteis:http://www.linhadecodigo.com.br/Artigo.aspx?id=756http://pear.php.net/package/SOAPhttp://httpd.apache.org/http://www.php.netAté a próxima!