Instalando o OpenFire no Debian Etch

Olhando as estatisticas do meu blog, percebi que muitos buscam informações sobre a Instalação do Openfire, e caem em um post antigo meu sobre a instalação de um plugin de Logs em uma versão anterior do Openfire. Então resolvi criar este tutorial para as pessoas finalmente consigam encontrar a informação desejada 😀 .

Utilizei o Debian Etch 4 (Instalação básica), para fazer a instalação, mas acredito que este tutorial pode ser utilizado para o Ubuntu sem mudança, e também para qualquer outra distribuição, desde que tenha o servidor mysql instalado. O MYSQL não é necessário para instalar o Openfire, pois ele possui um banco de dados próprio, mas é recomendado instalar pois o desempenho é melhor.

Softwares utilizados:

Instalar MYSQL e criar Base

Para instalar o MYSQL no debian/Ubuntu utilize o comando abaixo, para outras distribuições, verifique em foruns da mesma:

# aptitude install mysql-server

Feito isso vamos criar uma senha para o usuário root do mysql, utilize o comando abaixo substituindo a palavra “SENHA” pela senha desejada:

# mysqladmin -u root password 'SENHA'

Agora para criar o usuário que será utilizado pelo openfire use o comando abaixo, subistituindo a palavra SENHA pela senha desejada, esse comando vai solicitar a senha digitada no passo anterior:
# mysql -u root -p -e "GRANT USAGE ON * . * TO 'openfire'@'localhost' IDENTIFIED BY 'SENHA' "

E para criar o banco do openfire (novamente será solicitada a senha do root definida anteriormente):

# mysql -u root -p -e "CREATE DATABASE openfire "
# mysql -u root -p -e "GRANT ALL PRIVILEGES ON openfire . * TO 'openfire'@'localhost' "

Se não houverem erros o usuário e banco do openfire foram criados.

Instalar o Java

As instruções para instalar o java no linux você encontra neste link, e o download do programa está neste outro link. Mas seguem os passos abaixo mais rapidos.

Simplificando:

O primeiro comando cria o diretório /usr/java, e o segundo entra no diretório:

# mkdir /usr/java
# cd /usr/java

Comando para fazer o download do java com o nome de java.bin:

# wget http://javadl.sun.com/webapps/download/AutoDL?BundleId=20279 -O java.bin

Agora, com o primeiro comando é dada a permição de execução ao programa, e o segundo executa:

# chmod a+x java.bin
# ./java.bin

Vai aparecer os termos da licensa (leia atentamente :P), use a “barra de espaço” para decer, e ao final digite yes, e pronto 😀

Instalando o Openfire

Com os comandos abaixo, entre na pasta /opt , faça o download e depois descompacte o arquivo:

# cd /opt
# wget wget http://www.igniterealtime.org/downloadServlet?filename=openfire/openfire_3_5_2.tar.gz -O openfire.tar.gz
# tar -zxf
openfire.tar.gz

OBS. No site da Ignite Realtime tem um pacote para o Debian, mas eu não consegui instalar, se alguém conseguir, me ensine 😀 .

Para criar um atalho na pasta de inicialização e colocar ele para iniciar execute os comandos abaixo:

# ln -s /opt/openfire/bin/openfire /etc/init.d/openfire
# update-rc.d openfire defaults 80

Para executalo entre no diretório do openfire, e execute o serviço:

# /etc/init.d/openfire start

Ou entre no diretório do openfire, e execute o serviço:

# cd /opt/openfire/bin
# ./openfire start

Se tudo deu certo, agora o openfire está rodando, então abra o navegador de internet (Firefox, Opera…) e entre no endereço ip_do_servidor:9090 (se o computador que estiver utilizando é o mesmo onde instalou o openfire pode usar: http://localhost:9090). Ex: 192.168.0.1:9090

Após entrar nesse endereço vai aparecer uma tela de “Bem Vindo” pedindo para selelcionar a lingua desejada, selecione.
Depois vai solicitar para definir o domínio e as portas que serão utilizadas para o site de administração, digite o seu Domínio ou IP.

Agora o programa pergunta qual banco de dados você quer utilizar, se você conseguiu fazer o passo de instalar o MYSQL sem problemas, selecione a primeira opção, mas caso você não tenha instalado, pode utilizar a segunda opção, porém esta possui um desempenho inferior.

Depois de escolher o banco de dados, se você escolheu a opção de banco de dados MYSQL configure os campos conforme as informações abaixo (as outras informações não precisa mudar), ou como a imagem:

Banco de dados: MYSQL
URL do banco de dados: jdbc:mysql://localhost:3306/openfire
Nome do Usuário: openfire
Senha: a senha que você definiu para o banco

Configuração Banco

A próxima etapa é a configurações de Perfil, mantenha a opção que vem por padrão, e na ultima etapa é o e-mail e senha do administrador, daí e a gosto 😀

E pronto, clique em logar-se com o administrador.

Quanto aos clientes de conversação existem várias opções, no site da Ignite Realtime tem um deles, mas eu recomento o PSI, mas vai da nececidade de cada ambiente! Espero que agora as pessoas encontrem o que precisam 😀

Atualizando o Openfire

No blog Mundo Open Source tem um tutorial explicando como atualizar o Openfire:
http://mundoopensource.blogspot.com/2008/08/openfire-como-atualizar-o-servidor-para.html

35 Responses to Instalando o OpenFire no Debian Etch

  1. Rodrigo G. says:

    brother muito bom teu tutorial, mesmo eu não tendo um conhecimento grande sobre o assunto e até do próprio linux segui tudo passo a passo e deu certinho instalei no meu Ubuntu 7.10.Obrigado

  2. Marcelo Vilar says:

    Que bom Rodrigo, e obrigado pelo retorno!

    Se tiver dúvidas é só perguntar!

    😉

  3. Qaum Hevhise says:

    Cara, muito bom este tutorial. seguindo todos os passos funcionou 100%. Me quebrace um baita galho, valeu!

  4. Marcelo Vilar says:

    Obrigado Qaum,

    É bom ter um retorno, e melhor ainda positivo 😛

  5. Silvano says:

    Marcelo,

    Este tutorial eh otimo e simples para a instalaçao do Openfire.
    Pesquisei em muitas paginas da Internet e os demais tutoriais sao complicados pois, nao abordam de maneira simples e objetiva para a instalaçao. Utilizei o CentOS 5.1 e esta rodando muito bem.
    Parabens pela materia…

    Silvano

  6. Marcelo Vilar says:

    Obrigado Silvano, a idéia era essa mesma, que o tutotial fosse simples mas objetivo!

  7. Madalena says:

    Marcelo,
    Obrigado pelo tutorial, quando vejo pessoas como voce disponibilizando o que aprendeu me enche de alegria, por despender um tempo pensando em outras pessoas.Tutorial esta otimo.

  8. luiz says:

    Galera, o meu deu sertinho, porem qdo cadastro o usuário, e vou ativar o transporte, da um erro da primeira vez, dpois clik em voltar, e avançar novamente, ai funciona, o transporte não aparece da primeira vez. Alguém saberia me dizer sobre. transporte msn.

  9. Marcelo Vilar says:

    Olha Luiz, já tive esse problema que você citou em uma versão anterior! Experimenta desinstalar o plugin e instalar nomavente!

  10. Getulio says:

    O tuto é simples e objetivo, esta em uma linguagem que umleigo pode fazer tudo sem preblemas.. ou quase tudo..
    ta me dando esse erro, nao entendo o pq! se ta tudo instalado certinho, como manda o figurino
    uso o debian 4

    getulio:/usr/java# mysql -u root -p -e “CREATE DATABASE `openfire`”
    -bash: openfire: command not found
    Enter password:
    ERROR 1064 (42000) at line 1: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ” at line 1

  11. Getulio says:

    eu novamente:
    isso é um erro?
    nohup: appending output to `nohup.out’
    mas quando digito o ip do server:9090
    abre a pagina do openfire

    getulio:/opt# nohup: appending output to `nohup.out’

    getulio:/opt# cd /opt/openfire/bin
    getulio:/opt/openfire/bin# ./openfire start
    Starting openfire
    nohup: appending output to `nohup.out’
    getulio:/opt/openfire/bin#

  12. Getulio says:

    opa..
    gerrou esse erro na hora de selecionar um banco
    isso tem haver com o primeiro 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.

  13. Getulio says:

    ola. eu novamente..
    refiz tudo e agora da esse erro depois que aperto o botao <>

    HTTP ERROR: 500
    INTERNAL_SERVER_ERROR
    RequestURI=/setup/setup-datasource-standard.jsp

    Caused by:
    java.lang.NullPointerException
    at org.jivesoftware.database.EmbeddedConnectionProvider.destroy(EmbeddedConnectionProvider.java:100)
    at org.jivesoftware.database.DbConnectionManager.setConnectionProvider(DbConnectionManager.java:476)
    at org.jivesoftware.openfire.admin.setup.setup_002ddatasource_002dstandard_jsp._jspService(setup_002ddatasource_002dstandard_jsp.java:204)
    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)

  14. Getulio says:

    opa… funcionaoutudooooooo

    so o comando que tirei as ” do openfire ai funfou
    mysql -u root -p -e “GRANT ALL PRIVILEGES ON openfire . * TO ‘openfire’@’localhost'”

    desculpem .. tanta pergunta..

    • Marcelo Vilar says:

      Olá Getulio! Desculpe se demorei a responder, mas eu não olho com frequencia meu blog!

      O problema está nas linhas de comando do MYSQL, é que o wordpress subistitui aspas simples ‘ por crase! Vou tentar arrumar aqui!

  15. Marcelo Vilar says:

    Ha ha ha…

    Você postou tantas perguntas Getulio, que eu nem reparei que você tinha postado uma mensagem que tinha dado certo! Mas como eu disse antes, o problema estava mesmo nas aspas, que o wordpress troca por aspas comerciais!

    Mas o que importa é que você conseguiu! Abraço e sucesso!

  16. Getulio says:

    Desculpe o flood, mas o importante é que deu certo.. e pode ter certeza que aprendi muito,
    PARABENS PELO TUTORIAL.

    Seria interesante, por um tuto de Plugins que nao estao na lista, e de atulizacao do openfire.

    Obrigado t+

  17. Marcelo Vilar says:

    Obrigado Getulio!

    Quanto a instalar novos plugins acho que não deve ser difícil! Se não me engano basta descompactar o plugin na pasta de plugins do openfire que ele vai aparecer na lista!
    E quanto ao tutorial de como atualizar, alguém já fez 😀

    http://mundoopensource.blogspot.com/2008/08/openfire-como-atualizar-o-servidor-para.html

  18. rodrigo says:

    ola, segui seu tutorial passo a passo, mas da um erro qdo entro no console admin do openfire, instalei a ultima versao 3.6.4, qdo coloco o user admin, e a senha ela da um erro.
    O erro é o seguinte:

    Login falhou: tenha certeza que seu usuário e senha estejam corretos e que você seja administrador ou moderador.

    Alguem poderia me ajudar, nao to conseguindo,
    obrigado

  19. Edmar says:

    Muito Obrigado 100% seu poster não faz ideia o qanto vai me ajudar aqui na empresa segui a risca e deu tudo certo Deus te abeçõe caro colega o mundo precisa de pessoas que ajude como você.

  20. gemano says:

    rodrigo, provavelmente ele só vá aceitar login do admin se for no próprio server.

    deve ter alguma opção liberando isso

  21. Rodrigo says:

    Parabéns pelo Post, Ótimo!!!!!!!!!!!!!!!
    Só tenho uma dúvida, não estou conseguindo aumentar a memória java. Já fiz isso:
    * Acesse o diretório raiz do Openfire (no meu caso fica em /opt/openfire)
    * Acesse o diretório bin
    * Edite o script openfire e descomente a linha INSTALL4J_ADD_VM_PARAMS como no exemplo abaixo:

    #! /bin/sh

    # Uncomment the following line to override the JVM search sequence
    # INSTALL4J_JAVA_HOME_OVERRIDE=
    # Uncomment the following line to add additional VM parameters
    # INSTALL4J_ADD_VM_PARAMS=
    #———————————————————————
    INSTALL4J_ADD_VM_PARAMS=”-Xms512m -Xmx1024m” # o primeiro parâmetro é o mínimo e o segundo é o máximo. Ambos podem ser iguais, se for o caso.
    #———————————————————————

    * Reinicie o Openfire.

    MAS NÃO TIVE SUCESSO!!!!!

    Quando vou reiniciar o openfire com essas alterações ele da esse erro:
    openfire: line 6: -Xms128m -Xmx512m: command not found

    e não funcionou!!!!!! Não consegui aumentar a memória java…continuo com no máximo 63.31mb de memória no openfire.

    O QUE FAZER??????????????

  22. Paulo Borges says:

    Sabes me dizer se o Openfire suporta o cliente da Microsoft WLM MSN9? E como seria essa configuração?

    Obrigado!

    • Marcelo Vilar says:

      Como assim Paulo? Você quer saber se consegue conectar ao Openfire com o WLM9 ? Se for isso, acredito que não, para conectar ao WLM9 você tem que usar um cliente com suporte ao protocolo jabber.

  23. Paulo Borges says:

    Pois é, estou precisando, basicamente, gravar com data/hora e por usuário em um banco central todos os “papos” dos usuários do Cliente “Cliente Windows Live Messenger 9”. Eu sei que ele (WLM 9) tem um SDK que te possibilita fazer o que eu quero, mas nunca me interessei.

    Conhecer alguma maneira (mais prática) de gravar todo o “papo” do MSN em um único DB? Msn-proxy não conta rsrsrs.

    Eu preciso fornecer como serviço para alguns clientes indicadores de improdutividade no uso da TI, sacou?

  24. Paulo Borges says:

    Obrigado mesmo, mas como falei: O MSNProxy não conta, não serve hiauhauia. Sucesso ai!

    • Marcelo Vilar says:

      huUHAhuAHU, por que não conta? Você já testou ele?

      Com o Openfire vc vai conseguir, mas vai ter que usar outro programa cliente.

  25. Paulo Borges says:

    O MS-Proxy vai me fornecer pelo menos duas curvas desagradáveis de aprendizado:
    1º- Os usuários reportam muitos problemas com ele. Percebi isso por amostragem. Vou pegar minha “peia” básica na implantação, implementação para resolução de bugs.
    2º- A maioria dos meus Routers não suportam IPTables, vou ter que ficar “descobrindo” como fazer em cada modelo diferente o modo de desvio de pacotes (não gostei da idéia) rsrsrs.

    A curva que me agradaria aqui seria a de confecção dos relatórios e gráficos para o cliente junto com o Openfire.

    # Sabes se o Openfire tem algum plugin para controle ou monitoramento dos navegadores?

    # Sei que o WLM 9 tem um SDK pra implementação, mas nunca usei. Porque alguém como você não implementa um “Trasnport” pra ele, para alguém como eu poder resolver minha questão? hauihauiaiuaa

    Sucesso ai 😛

  26. Fabiano Belo says:

    Bom dia Marcelo estou com problemas na hora logar ele da esse erro

    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)

  27. anderson says:

    Parabens pelo tutorial. Eu tinha ele instalado em windows , mas agora estou querendo virtualizar uma maquina para deixar rodando o openfire e creio que a melhor opçao desse caso sera usando linux.
    Obrigado.

  28. Pingback: Openfire em Ação nos meios Corporativos « Calusbr's Blog

  29. Olá, tudo bem?
    Muito bem elaborado o seu tutorial e eu estou usando-o como base para instalar o Openfire num servidor web onde eu trabalho, mas quando eu executo /etc/init.d/openfire start aparece um erronohup: appending output to `nohup.out’ e eu verifiquei no fórum do desenvolvedor que é um bug que não influencia no funcionamento, porém quando eu abro no navegador o http://ipdoservidor:9090 dá erro de página não encontrada com a mensagem de que o endereço demorou pra responder… isso pode ser firewall bloqueando a porta 9090?

    • Marcelo Vilar says:

      Olá José,

      Dê um tail nos arquivos de log do Openfire para ver se lá tem alguma informação mais clara sobre o problema:
      tail /var/log/openfire/error.log
      tail /var/log/openfire/info.log
      tail /var/log/openfire/warn.log

      Existe um firewall configurado no computador? Se não tiver então não é bloqueio, é necessário ver os logs para encontrar o possível problema, cnsulte também o syslog, pois pode ser que tenha enviado o erro para lá:
      tail /var/log/syslog

Deixar mensagem para Marcelo Vilar Cancelar resposta