Instalando o PHP-Shindig no Windows
Olá pessoal da comunidade Opensocial-GTUG!
Com o intuito de disseminar mais conteúdo sobre a plataforma, resolvi abrir o blog, em conjunto com a Wiki, para que todos possam colaborar. Caso tenha interesse em colaborar, basta fazer contato.
No artigo de hoje, vamos ver a instalação do PHP-Shindig dentro do ambiente Windows, para que possamos na próxima etapa, criar uma versão parecida com o iGoogle. Essa versão é a tradução, com algumas melhorias, do artigos original de Chris Chabot.
O Shindig é um projeto de código aberto, que funciona basicamente como o servidor de aplicações Opensocial. Em outras palavras, ele é responsável por renderizar o gadget e fornecer todo o conjunto de api´s necessárias para que o Opensocial funcione. Veja a definição do que ele é, extraída do próprio site do projeto:
Apache Shindig is a container for hosting social application consisting of four parts:
- Gadget Container JavaScript: core JavaScript foundation for general gadget functionality (read more about gadget functionality). This JavaScript manages security, communication, UI layout, and feature extensions, such as the OpenSocial API.
- Gadget Rendering Server: used to render the gadget XML into JavaScript and HTML for the container to expose via the container JavaScript.
- OpenSocial Container JavaScript: JavaScript environment that sits on top of the Gadget Container JavaScript and provides OpenSocial specific functionality (profiles, friends, activities, datastore).
- OpenSocial Data Server: an implementation of the server interface to container-specific information, including the OpenSocial REST APIs, with clear extension points so others can connect it to their own backends.
Instalando o Shindig no Windows
Este guia mostra os passos necessários para deixar o Shindig funcionando na plataforma Windows.
Instalando o 'WAMP'
O Wamp é um pacote de aplicativos, e significa Apache, MySQL e PHP para Windows, necessário para que o Shindig funcione.
Primeiramente, baixe o wampserver do endereço: http://www.en.wampserver.com/

Clique no link de download, salve no seu computador e então execute-o.
No instalador, clique em "next" em cada passo, já que as configurações padrão são suficientes para o que será usado neste guia.

Após a instalação, provavelmente você receberá um alerta do Windows, como a imagem abaixo. Clique em "desbloquear" para que seu servidor Apache possa escutar requisições na porta 80.

Configurando o Apache e as extensões do PHP
Após a instalação do wampserver, é hora de configurarmos os módulos que o Shindig precisa. Com o wampserver iniciado, você terá um ícone no systray (ao lado do relógio), e clicando com o botão esquerdo do mouse, você verá várias opções de configuração.
Para o Shindig, precisamos de poucas coisas - mod_rewrite para Apache, que pode ser ativado no item Apache -> Apache Modules, clicando na opção 'rewrite_module'. O "v" indica que o módulo está ativo.

Para o PHP, precisamos de algumas extensões, que podem ser visualizadas através da opção PHP -> PHP Extentions . Para ativá-las, basta clicar na extensão, da mesma forma que fizemos com o mod_rewrite.

As extensões requeridas são:
- json
- mcrypt
- simplexml
- libxml
- curl
- openssl
- mysqli
Instalando um cliente SVN
Seguindo o tutorial, precisamos de um cliente SVN para podermos baixar o módulo do Shindig do repositório. Tortoise possui uma excelente interface gráfica, e é por isso que decidimos usá-lo. Faça o download de http://tortoisesvn.tigris.org/

Execute o instalador, e mais uma vez, as opções padrão são suficientes. Vá clicando em next até o fim.

Quando finalizada a instalação, será necessário reiniciar, já que o Tortoise instala extensões integradas ao Windows, que são visualizadas com o clique do botão direito do mouse em qualquer parte da tela.

Realizando checkout do código fonte
Depois de reiniciar, vamos fazer checkout do código fonte do Shindig. Checkout significa baixar todo o conteúdo do repositório onde está armazenado.
Vá ao diretório root do servidor web (c:\wamp\www) e crie um diretório chamado shindig:

Entre no diretório criado, clique com o botão direito na tela e selecione a opção SVN Checkout (item que o Tortoise adicionou):

No campo Url of repository, digite o seguinte endereço: http://svn.apache.org/repos/asf/incubator/shindig/trunk/ e confira com a imagem abaixo.

Clique em ok, e o resultado será uma tela igual a que está logo abaixo:

Assim que estiver pronto, a estrutura dos diretórios deverá se parecer com a abaixo. Os "v" em verde, significam que o fonte que você tem local, não tem nenhuma alteração em relação ao repositório.

Um passo importante nesse momento é configurar o diretório onde o Shindig fará cache dos gadgets, e que não está coberto no tutorial do site. Siga os seguintes passos:
- Crie um diretório temp, na raiz do shindig - c:\wamp\www\shindig\temp;
- Edite o arquivo de configuração C:\wamp\www\shindig\php\config\container.php , editando na linha 160 a chave 'cache_root', que deverá ficar 'cache_root' => 'c:/wamp/www/shindig/temp'',

Configurando o Apache para o Shindig
Primeiramente, localize o arquivo de configuração do apache (chamado de httpd.conf). Esse arquivo estará no diretório c:\wamp\bin\apache\apache2.2.8\conf. Lembre-se que a versão do apache do seu wamp pode ser diferente do tutorial, portanto, vá navegando pela estrutura raiz do diretório wamp.
Não vamos mexer nele por enquanto. Precisamos criar apenas uma entrada no virtual host, para apontar para o diretório do Shindig. Acesse o diretório "extra" que está localizado dentro dessa pasta, no meu caso c:\wamp\bin\apache\apache2.2.8\conf\extra e edite o arquivo httpd-vhosts.conf

Edite esse arquivo, removendo os 2 exemplos de configuração (são exemplos e não funcionam) e depois adicione as 2 instruções - uma para o localhost e outra para o Shindig.
<VirtualHost *:80> ServerAdmin webmaster@dummy-host.localhost DocumentRoot "C:\wamp\www" ServerName localhost ServerAlias localhost </VirtualHost> <VirtualHost *:80> ServerName shindig DocumentRoot "C:\wamp\www\shindig\php" ErrorLog "logs/shindig-error.log" Customlog "logs/shindig-access.log" common </VirtualHost>

Próximo, precisamos fazer com que o Windows "entenda" o nome do host "shindig". Usaremos uma técnica de editar o arquivo de host, localizado em: c:\WINDOWS\system32\drivers\etc\hosts :

E adicionamos o "shindig" (sem as aspas), conforme abaixo:

Depois de feito tudo isso, reinicie seu wampserver, clicando com o botão esquerdo do mouse no ícone ao lado do relatório e selecionando 'Restart All Services':

Testando!
Aponte seu browser para o endereço: http://shindig/gadgets/ifr?url=http://www.dxs.com.br/mundojava/olamundo.xml
Você deverá visualizar o gadget renderizado na tela, e isso significa que tudo funcionou corretamente e que seu Shindig está ok. Faça testes, passando como parâmetro na url outros gadgets.

Hello World Opensocial Shindig
Terminamos assim a primeira parte do nosso artigo. No próximo veremos como criar nossa estrutura para parecer com o iGoogle. Dúvidas ou sugestões ? Deixe seu comentário.
Robson Dantas
Opensocial Guru
About Robson Dantas
Robson Dantas é gerente de tecnologia da Agênciaclick, com mais de 10 anos de experiência na área de tecnologia e internet. Apaixonado por tecnologias Google, redes sociais e opensocial, escreve artigos para divulgar a plataforma no tempo que tem livre.Projeto
Categorias
- Opensocial com flash (1)
- Opensocial com PHP (2)
- Orkut (9)
- Palestras e eventos (2)
- Segurança de aplicativos (2)
- Shindig (2)
- Signed Request (2)
October 17th, 2009 - 15:08
Robson, parabéns.
Muito legal o artigo ficou muito bom mesmo.
March 25th, 2010 - 23:37
No wampserver 2.0 não está aparecendo as extensões requeridas.
March 26th, 2010 - 10:18
Aparece sim. Clica com o botão esquerdo do mouse no ícone do systray, que você vê.
Qualquer coisa avisa aí.
April 24th, 2010 - 20:46
Também não estou visualizando as extensões do PHP requeridas no wampserver 2.0, e não encontrei o ícone systray.
April 24th, 2010 - 20:55
Não consegui fazer checkout do código fonte do Shindig, ao seguir exemplo, na janela do SVN informa que o diretório não foi encontrado…
April 29th, 2010 - 20:23
Acho que o que o amigo Israel quis dizer e que nem todas a extenções estão disponiveis para marca, por exemplo o meu tbm e o wampserver 2.0 e não achei as extençoes ◦json, simplexml, libxml, e tbm o campo Url of repository, digite o seguinte endereço: http://svn.apache.org/repos/asf/incubator/shindig/trunk/, ta dando error verifiquei no endereço http://svn.apache.org/repos/asf/incubator que não existi a pasta shindig o que fazer.
May 25th, 2010 - 00:52
Quando comecei o svn checkout.. achei…
Error: URL ‘http://svn.apache.org/repos/asf/incubator/shindig/trunk’ doesn’t exist
Estou quebrado qqui no checkout, e possivel que o url foi mudado?
May 25th, 2010 - 13:11
Got the files with UTL http://svn.apache.org/repos/asf/shindig/trunk/
May 25th, 2010 - 15:06
Nao encntro o script /gadgets/ifr, posso baixa’o desde algum servidor?
May 25th, 2010 - 15:30
Carlos,
Mudaram a url recentemente, segue:
http://svn.apache.org/repos/asf/shindig/trunk
Estou atualizando o post.
May 25th, 2010 - 15:31
Carlos,
Esse script não existe. É um rewrite que faz e outro script trata ele.
May 25th, 2010 - 23:35
Robson, conheco pPHP ais nao para fazer os scripts ainda, pode me mandar x email o link o ou conteudo do script “ifr”? Estou muito interessado em subir o OSD ao Shinding, obrigado.
O tutorial e muito bom, tenho o Wamp e o Shindig rodando no meu PC, otimo!
June 21st, 2010 - 22:41
Ola amigo, sou academico de informatica, e meu trabalho de conclusao de curso sera sobre opensocial.. Adorei seu tutorial, e ele sera utilizado no meu trabalho e seu nome devidamente citado
.
Gostaria de manter contato com pessoas interessadas em opensocial, para trocar ideias e experiencias..
se alguem tiver interesse em criar alguma rede de discucao me contate..
hlbomm@gmail.com
June 21st, 2010 - 22:58
Henrique,
Obrigado. Temos uma lista de discussão sobre opensocial no Brasil. Veja: opensocial-br@googlegroups.com ou http://groups.google.com/group/opensocial-br
abs
Robson Dantas
June 23rd, 2010 - 19:59
Olá Robson, muito bom seu tuto.
Mas como muitos, eu não consigo habilitar as extensões do PHP: json, mcrypt, simplexml, libxml.
Simplesmente no Wamp não aparece!
É realmente necessário?
Se for, que solução você sugere?
Obrigado.
June 29th, 2010 - 21:41
Anderson,
Você tentou abrir o php.ini e verificar se as extensões estão instaladas?
abs
Robson