CentOS 5.4 – Instant Message Corporativo com Openfire

Publicado: dezembro 18, 2009 em CentOS, Openfire
Tags:,

Introdução

Openfire (antigo Wildfire) é um servidor multi-plataforma de colaboração em tempo real (RTC), licenciado sob a GPL e implementa o protocolo XMPP (Jabber). Possui clientes para Windows, Linux e Mac OS e é compatível com vários programas de comunicação. Neste tutorial irei instalar o Openfire 3.6.4 apenas como Instant Message Corporativo.

Clique aqui para ver o artigo sobre a instalação do Openfire no Ubuntu Server 8.04.

Mãos à obra!

Instalação do servidor de banco de dados

# yum install -y mysql mysql-devel mysql-server php-mysql

Iniciar o MySQL

# /etc/init.d/mysqld start

Definir senha de root do MySQL

# mysqladmin -u root password "novasenha"

Instalação do servidor web

# yum install -y httpd

Instalação do openssl (necessário para comunicação web segura)

# yum install -y openssl

Instalação do serviço de gerenciamento via web para o MySQL

# yum install -y phpmyadmin

Instalação do PHP

# yum install -y php php-ldap php-odbc  php php-pear php-gd curl curl-devel

Instalação do Java

# yum install -y java

Criação do diretório para downloads (opcional)

# mkdir /downloads
# cd /downloads

Download do Openfire

# wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire-3.6.4-1.i386.rpm

Instalação do Openfire

# rpm -ivh openfire-3.6.4-1.i386.rpm

Iniciar o Openfire

# /etc/init.d/openfire start

Criação do banco de dados para Openfire

Existe um script template que é utilizado para criar as tabelas, será necessário alterar este script para que o banco também seja criado.

# cd /opt/openfire/resources/database
# vi openfire_mysql.sql

Acrescente as linhas abaixo, antes de CREATE TABLE:

CREATE DATABASE openfire;
GRANT ALL PRIVILEGES ON openfire.* TO 'openfire'@'localhost' IDENTIFIED BY 'senha';
FLUSH PRIVILEGES;
USE openfire;

Execução do script (criação do banco e tabelas)

# mysql -u root -p < openfire_mysql.sql

Ativando os serviços openfire e mysql

Execute o comando abaixo para ativar os serviços openfire e mysql no boot do sistema, basta pressionar a barra de espaço sobre o serviço desejado deixando-o marcado com “*”.

ntsysv
service openfire start
servide mysqld start

Configuração do servidor Openfire

Neste ponto do tutorial, o Openfire está instalado e já possui um banco de dados. A partir de agora a configuração será feita via web.

Em seu navegador digite http://IP_DO_SEU_SERVIDOR:9090

Escolha o idioma de sua preferência.

Welcome to Setup

O campo Domínio pode ser o hostname ou IP do servidor.

Configuração do Servidor

Marque a opção Conexão Padrão do Banco de Dados para utlizar o banco de dados que foi criado anteriormente.

Configurações do Banco de Dados

Em Configurações do Banco de Dados – Conexão Padrão, faça de acordo com a figura abaixo.

Marque a opção Padrão para armazenar os usuários e grupos criados no banco de dados.

Configurações de Perfis

Informe um e-mail para o admin e crie uma senha.

Conta do Administrador

Setup concluído.

Setup Concluído

Faça o login com usuário admin e a senha cadastrada anteriormente.
Dica: Reinicialize o servidor, caso não consiga fazer login.

Login

Criação de usuários

Os usuários podem ser criados no servidor ou pelo cliente. Irei utilizar o cliente Spark, que também é um projeto da Ignite Realtime. Faça o download referente a seu sistema operacional.

Depois de fazer o login no sistema, clique em “Usuários/Grupos” e “Lista de Usuários”. Neste momento deve existir apenas o usuário “admin”, conforme a imagem abaixo.

Lista de Usuários

Vou criar dois usuários para efetuar testes, o primeiro será criado diretamente pelo Spark. Depois de devidamente instalado, clique em Contas e informe o nome para o novo usuário, senha e endereço IP do servidor.

Criar nova conta

Após a criação da conta, faça o login e volte a página Usuários/Grupos. Neste momento deve existir, o usuário admin e o usuário criado através do Spark, conforme a imagem abaixo.

Lista de Usuários

Através do gerenciamento web, irei criar o segundo usuário (em homenagem ao meu amigo Franci).

Criar Usuário

Para efetuar o teste, utilizei as duas contas criadas anteriormente.

Teste

O Openfire tem diversos plugins que possibilitam expandir suas funcionalidades, nos próximos tutoriais falarei mais sobre plugins, integração com Active Directory, Asterisk, etc.

:wq!
Andrey Smith

comentários
  1. evitoria disse:

    Esta linha abaixo eu preciso fazer alguma miodificação ? ou so deixar como esta sugerido ?

    GRANT ALL PRIVILEGES ON openfire.* TO ‘openfire’@’localhost’ IDENTIFIED BY ‘senha’;

    Curtir

  2. Andrey Smith disse:

    Evitoria,

    Vamos lá…
    Se vc deixar a linha como está, seu usário será openfire e sua senha será ‘senha’.
    Sugiro trocar o campo ‘senha’.

    []

    Curtir

  3. natanael disse:

    caro andre, segui todos os passos do tutorial. consigo acessar via o web o setup do openfire, mas não consigo me conectar ao banco de dados: retorna a segunte msg de erro :A connection to the database could not be made. View the error message by opening the “/logs/error.log” log file, then go back to fix the problem. ja reconfigurei, mudei senha, porem n consigo dar continuidade ao setup. o que posso fazer?

    Curtir

  4. Andrey Smith disse:

    Natanael,

    Startou o MySQL?
    # service mysqld start

    Curtir

  5. Fabiano Belo disse:

    Grande Andrey adorei o artigo de instalação do openfire, mas estou com preoblemas na hora de acessar o admin ele dá o seguinte erro:

    Por favor me da uma luz. obrigado
    Exceção:
    java.lang.NoClassDefFoundError: Could not initialize class org.jivesoftware.admin.LoginLimitManager$LoginLimitManagerContainer
    at org.jivesoftware.admin.LoginLimitManager.getInstance(LoginLimitManager.java:38)
    at org.jivesoftware.openfire.admin.login_jsp._jspService(login_jsp.java:123)
    at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:97)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
    at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093)
    at com.opensymphony.module.sitemesh.filter.PageFilter.doFilter(PageFilter.java:39)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at org.jivesoftware.util.LocaleFilter.doFilter(LocaleFilter.java:66)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at org.jivesoftware.util.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:42)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at org.jivesoftware.admin.PluginFilter.doFilter(PluginFilter.java:70)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at org.jivesoftware.admin.AuthCheckFilter.doFilter(AuthCheckFilter.java:99)
    at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084)
    at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360)
    at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216)
    at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181)
    at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:726)
    at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405)
    at org.mortbay.jetty.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:206)
    at org.mortbay.jetty.handler.HandlerCollection.handle(HandlerCollection.java:114)
    at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:152)
    at org.mortbay.jetty.Server.handle(Server.java:324)
    at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:505)
    at org.mortbay.jetty.HttpConnection$RequestHandler.content(HttpConnection.java:843)
    at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:648)
    at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211)
    at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:380)
    at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:395)
    at org.mortbay.thread.QueuedThreadPool$PoolThread.run(QueuedThreadPool.java:488)

    Atenciosamente – Fabiano Belo

    Curtir

  6. Andrey Smith disse:

    Fabiano, desculpe a demora.
    Acho que instalar novamente o Java pode resolver seu problema.

    Curtir

  7. Santhiago disse:

    Excelente!
    Realizei os passo e funcionou perfeito, aproveitei e integrei com os usuários do AD.
    Parabéns.

    Curtir

  8. welbster disse:

    at org.jivesoftware.openfire.plugin.SearchPlugin.initializePlugin(SearchPlugin.java:137)
    at org.jivesoftware.openfire.container.PluginManager.loadPlugin(PluginManager.java:448)
    at org.jivesoftware.openfire.container.PluginManager.access$300(PluginManager.java:47)
    at org.jivesoftware.openfire.container.PluginManager$PluginMonitor.run(PluginManager.java:1032)
    não consigo carregar um plugin se quer! podes me ajudar?

    Curtir

  9. Rodolfo Buck Junior disse:

    Parabens Andrey, segui seu tutorial e funcionou perfeito.

    Vlw.

    Curtir

  10. […] abaixo (De acordo com a distribuição) para acessar o tutorial de instalação do Openfire. Ubuntu CentOS Obs.: É necessário apenas a instalação do Openfire, a configuração via Web será feita neste […]

    Curtir

  11. Crikaaraujo disse:

    Andrey, bom dia.

    Configurei o servidor, porém na parte de Configurações do Banco de Dados eu selecionei Banco de Dados Internos e quando chega na parte para de logar no console de administração está dando falha de login. Como posso resolver isso?

    Curtir

  12. Maihckel disse:

    Olá,

    Quando vou logar meu admin, dá um erro : ” Login falhou: tenha certeza que seu usuário e senha estejam corretos e que você seja administrador ou moderador. ”

    Já reiniciei o Openfire mais sempre que vou logar da isso, me ajudem por favor.

    Curtir

Deixe uma resposta

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s