Imagem de destaque

Redes sociais corporativas são uma tendência no mundo dos negócios, afinal, elas podem propicia novas formas de colaboração mais engajadoras e diminuir a enorme quantidade de emails que circula nas empresas. Contudo, um estudo realizado pela Forrester Research abrangendo informações de quase cinco mil trabalhadores de empresas norte-americanas descobriu que apenas 28% deles utilizavam qualquer tipo de software de rede social, pelo menos 1 vez por mês, para atividades profissionais. Muitos usam apenas alguma rede social não corporativa, como o Facebook.

Neste cenário, as empresas parecem ainda perdidas sem saber qual a melhor forma ou solução a ser adotada. Diante disso, a Humhub se diferencia por oferecer um software open source (licença AGPL) de mesmo nome, no modelo já consagrado pelo Wordpress, onde é possível instalar uma vesão hospedada em sua própria infraestrutura, ou utilizar o modelo de software como serviço (SaaS) oferecido pela empresas.

Trata-se de uma plataforma de redes sociais focada para organizações, instituições de ensino e, principalmente, ambientes corporativos.

Criação do ambiente

O Humhub necessita de PHP 5.4+, MySQL e Apache, além de uma série de extensões do PHP. A lista completa pode ser encontrada na documentação. do projeto. A primeira coisa a fazer é criar um ambiente com PHP e MySQL. Caso vá utilizá-lo com muitos usuários, é aconselhável acrescentar um nó com Memcached.

Ambiente criado para o deploy

Uma vez criado o ambiente, devemos ativar o carregamento de alguns módulos PHP necessários ao HumHub. Para isso, clique no botão que Configurações que surge quando você passa o mouse sobre o nó do Apache no painel do Jelastic...

Configurações do ambiente

...e, na aba que se abre abaixo, podemos localizar a pasta / -> etc -> php.ini.

Todas as extensões PHP necessárias já encontram-se instaladas no Jelastic e tudo que precisamos é alterar o arquivo php.ini e carregar algumas delas. Apesar de estar listada como opcional, o processo de instalação apresentou um erro por conta do PHP LDAP não estar carregado. Por isso, iremos ativá-lo aqui.

Acrescente o seguinte bloco ao final do arquivo php.ini:

[intl]
extension=intl.so

[gd]
extension=gd.so  

Em seguida, apague o ; no início da linha 451 deixando-a como extension=ldap.so

Salve e reinicie o Apache.

Deploy do HumHub

Agora que temos o ambiente configurado e pronto, fazer o deploy do HumHub propriamente dito é a parte mais fácil. Para isso faremos a instalação via repositório Git. Se você ainda não sabe como fazer o deploy de uma aplicação via Git no Jelastic, confira este episódio do TecnoPapo. O endereço do repositório é https://github.com/humhub/humhub.

Durante o processo de escrita desse tutorial, uma atualização do repositório quebrou a aplicação em uma de minhas tentativas de instalar a aplicação. Portanto, se tiver algum problema, baixe o pacote zip ou bz2 de https://www.humhub.org/en/download e faça a instalação pelo Gerenciador de Instalação.

Instalação das Dependências

Essa é a parte mais trabalhosa do processo. Uma vez com a aplicação instalada, é preciso baixar as dependências. Para isso utilizaremos o Composer. Faça um acesso SSH ao nó do Apache e, na pasta root da aplicação, instale o Composer digitando:

php -r "readfile('https://getcomposer.org/installer');" > composer-setup.php  
php -r "if (hash('SHA384', file_get_contents('composer-setup.php')) === '41e71d86b40f28e771d4bb662b997f79625196afcca95a5abf44391188c695c6c1456e16154c75a211d238cc3bc5cb47') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"  
php composer-setup.php  
php -r "unlink('composer-setup.php');"  
mv composer.phar composer  

Instalação do Bower

O composer irá tentar utilizar o Bower para instalar alguns outros pacotes e gerir assets. Então é preciso instalar o Node.js e o Bower. Para isso eu utilizei o NVM para instalar o Node.js. Na sequência, é importante definir uma pasta npm na home para conseguirmos instalar o Bower como um módulo global. Para isso, digite npm config set prefix ~/npm no shell.

Você encontra mais informações sobre como instalar o NVM e o Node.js na página do NVM no Github: https://github.com/creationix/nvm.

Com o Node.js e o Bower instalados, finalmente, podemos utilizar o Composer para instalar as dependências digitando na pasta root do projeto:

php composer global require "fxp/composer-asset-plugin:~1.1.0"  
php composer update  

Configuração do MySQL

A primeira alteração a fazer é criar as bases de dados que iremos utilizar. Você pode preferir fazer isso pela interface web do PHP MyAdmin, mas eu prefiro fazer isso via SSH. Uma vez no nó do MySQL digite mysql -uroot -psenha substituindo a senha por aquela enviada pelo seu email. Uma vez no prompt do MySQL, digite os códigos abaixo:

CREATE DATABASE `humhub` CHARACTER SET utf8 COLLATE utf8_general_ci;  
GRANT ALL ON `humhub`.* TO `humhub_dbuser`@ip_do_Apache IDENTIFIED BY 'senha';  
FLUSH PRIVILEGES;  

Não se esqueça de substituir o ip_do_Apache pelo endereço IP do Apache criado por você a senha por uma senha segura. Em seguida é preciso alterar uma configuração do arquivo /etc/my.cnf. A alteração pode ser feita tanto no SSH quanto o painel de configurações.

Encontre o linha sql-mode='STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION' e apague a diretiva STRICT_TRANS_TABLES. O resultado deve ficar como na linha abaixo:

sql-mode='NO_ENGINE_SUBSTITUTION'  

Reinicie o serviço com sudo /etc/init.d/mysql restart.

Conclusão

Se você executou todos os passos da forma correta, basta abrir a URL configurada no ambiente que será possível visualizar o assistente de instalação do HumHub:

Assistente de Instalação do HumHub

Agora, basta fornecer os dados de acesso ao banco de dados e algumas opções de perfil e pronto! Você já pode ter acesso a sua rede social corporativa! Abaixo uma tela de exemplo do HumHub para você ter um gostinho de ver como é a interface do painel da aplicação.

Painel do HumHub

Gostou? Não deixe de comentar abaixo as suas impressões sobre o artigo.

Para saber mais sobre o Jelastic, acesse a página do produto.