FreeBSD + Diablo JDK + MySQL + Openfire

Servidor de CHAT

        Nesta documentação apresentaremos de forma simples e clara como disponibilizar um servidor de conferencia com Openfire.

        Para esse projeto foi instalado o sistema operacional FreeBSD 8.2 e configurados o Diablo JDK, MYSQL e Openfire.

        FREEBSD

        O FreeBSD é um sistema operacional livre do tipo Unix descendente do BSD desenvolvido pela Universidade de Berkeley. Está disponível para as plataformas Intel x86, DEC Alpha, Sparc, PowerPC e PC98 assim como para as arquiteturas baseadas em processadores de 64bits IA-64 e AMD64. Considerado como robusto e estável, geralmente é utilizado em servidores, mas também pode ser utilizado como estação de trabalho.
www.freebsd.org/
   
        MySQL

        O MySQL é um sistema de gerenciamento de banco de dados (SGBD), que utiliza a linguagem SQL (Linguagem de Consulta Estruturada, do inglês Structured Query Language) como interface. O MySQL foi criado na Suécia por dois suecos e um finlandês: David Axmark, Allan Larsson e Michael "Monty" Widenius.
www.mysql.com/

        DIABLO JDK

        A Fundação FreeBSD tem uma licença com a Sun Microsystems para distribuir binários FreeBSD para o Java Runtime Environment (JRE) e o Java Development Kit (JDK). Essas implementações foram viabilizados através do trabalho duro da equipe Java FreeBSD, bem como através de doações para a Fundação FreeBSD que apoiaram hardware, custos de desenvolvimento, e honorários legais.
O JRE oficiais e os binários do JDK baseada em fontes mais recentes da Sun parceiro fornecer aos usuários finais e desenvolvedores com a confiança de que eles podem usar e criar aplicações Java no FreeBSD com o mesmo grau de portabilidade, robustez e estabilidade que têm vindo a esperar do outro suporte sistemas operacionais. Estes binários foram totalmente testadas em teste de compatibilidade da Sun suite.
        Por favor, considere uma doação para a Fundação FreeBSD para apoiar a continuação do desenvolvimento Java. Suas doações ajudarão a atualizações de manutenção do fundo, as futuras versões do Java, e atualizações para novas versões do FreeBSD.
www.freebsdfoundation.org/downloads/java.shtml

        OPENFIRE

        Openfire é um servidor que utiliza o protocolo Jabber para oferecer serviços de mensagens instantâneas aos usuários. O software é gratuito e, além da simples troca de mensagens de texto, permite conversas por voz, conferências, envio de arquivos e até a troca de screenshots (imagens da área de trabalho) — tirados em tempo real — entre os participantes das sessões.
www.igniterealtime.org/projects/openfire/index.jsp


1- Instalando o Diablo JDK

Para instalar o Diablo JDK é necessário baixar determinados arquivos manualmente, devido a restrições de licenciamento. Realize o download dos arquivos a seguir:

http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-src-b05-jrl-24_sep_2007.jar
http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-bin-b05-jrl-24_sep_2007.jar
http://www.java.net/download/jdk6/6u3/promoted/b05/jdk-6u3-fcs-mozilla_headers-b05-unix-24_sep_2007.jar
http://www.FreeBSDFoundation.org/cgi-bin/download?download=diablo-caffe-freebsd7-amd64-1.6.0_07-b02.tar.bz2

Depois acesse o site “http://java.sun.com/javase/downloads/index.jsp” e baixe:

JDK DST Timezone Update Tool - 1.3.35

Depois acesse o site “http://www.eyesbeyond.com/freebsddom/java/jdk16.html” e baixe:

bsd-jdk16-patches-4.tar.bz2

Salve todos os arquivos baixados no “/usr/ports/distfiles

Agora acesse o diretório:

# cd /usr/ports/java/jdk16

Configure as opções de compilação do Diablo JDK 1.6 com o comando:

# make config

Marque as opções apropriadas para sua necessidade no jdk 1.6.0.3p4_22:
[ ] DEBUG                  Enable debugging support
[ ] IPV6                   Enable IPv6 support
[X] WEB                    Enable the browser plugin and Java Web Start
[ ] POLICY                 Install the Unlimited Strength Policy Files
[X] TZUPDATE               Update the time zone data  
[ ] JAIL                   Port is being built within a jail

Execute o comando de compilação e instalação do Diablo JDK:
# make install clean

Marque as opções apropriadas para sua necessidade no libiconv 1.13.1_1:
[X] EXTRA_ENCODINGS        Include extra character sets
[ ] EXTRA_PATCHES          Apply patches to fix CP932, add EUCJP-MS

Marque as opções apropriadas para sua necessidade no libxslt 1.1.26_2:
[ ] MEM_DEBUG              Enable memory debugging  
[X] CRYPTO                 Enable crypto support for exslt

Marque as opções apropriadas para sua necessidade no python27 2.7.1_1:
[X] THREADS                Enable thread support
[ ] HUGE_STACK_SIZE        Use a larger thread stack
[ ] SEM                    Use POSIX semaphores (experimental) 
[ ] PTH                    Use GNU Pth for threading/multiprocessing
[X] UCS4                   Use UCS4 for unicode support         
[X] PYMALLOC               Use python's internal malloc
[ ] IPV6                   Enable IPv6 support
[ ] FPECTL                 Enable floating point exception handling

Marque as opções apropriadas para sua necessidade no perl 5.10.1_3:
[ ] DEBUGGING              Build with debugging support
[ ] GDBM                   Build GDBM_File extension
[X] PERL_MALLOC            Use Perl malloc
[X] PERL_64BITINT          Use 64 bit integers (on i386)
[ ] THREADS                Build threaded perl
[ ] MULTIPLICITY           Use multiplicity
[ ] SUIDPERL               Build set-user-id suidperl binary
[ ] SITECUSTOMIZE          Run-time customization of @INC
[X] USE_PERL               Rewrite links in /usr/bin

Marque as opções apropriadas para sua necessidade no m4 1.4.16,1:
[ ] LIBSIGSEGV             Use libsigsegv for better diagnostics

Marque as opções apropriadas para sua necessidade no cups-client 1.4.6:
[X] GNUTLS                 Build with GNUTLS library

Marque as opções apropriadas para sua necessidade no diablo-jdk 1.6.0.07.02_13:
[ ] POLICY                 Install the Unlimited Strength Policy Files
[X] TZUPDATE               Update the time zone data

Marque as opções apropriadas para sua necessidade no glib 2.26.1_1:
[ ] COLLATION_FIX          fix string collation

Marque as opções apropriadas para sua necessidade no gamin 0.1.10_4:
[ ] GAM_POLLER             Use gamin's poller instead of kqueue's

2- Instalando o MySQL

Para instalar o MySQL acesse o diretório:

# cd /usr/ports/databases/mysql55-server/

Configure as opções de compilação do MySQL 5.5 com o comando:

# make config

Marque as opções apropriadas para sua necessidade no mysql-server 5.5.11:                     
[X] OPENSSL                Enable SSL support
[ ] FASTMTX                Replace mutexes with spinlocks

Execute o comando de compilação e instalação do MySQL 5.5:
# make install clean

Marque as opções apropriadas para sua necessidade no mysql-client 5.5.11:
[X] OPENSSL                Enable SSL support
[ ] FASTMTX                Replace mutexes with spinlocks

Depois de instado o MySQL, vamos habilitar para o que ele inicialize quando o FreeBSD for reiniciado. Editar o arquivo “rc.conf”:

# ee /etc/rc.conf

Adicionando ao final do arquivo as linhas abaixo, depois salve o arquivo e saia:

#MySQL
        mysql_enable="YES"

Agora vamos iniciar o MySQL com o seguinte comando:

# /usr/local/etc/rc.d/mysql-server start
# rehash

Agora vamos realizar as alterações necessárias no MySQL. Primeiro alterar senha de root:

# mysqladmin -uroot password “senha” (sem aspas)

Agora reiniciar o MySQL:

# /usr/local/etc/rc.d/mysql-server restart

3- Instalando o Openfire

Para instalar o Openfire acesse o diretório:

# cd /usr/ports/net-im/openfire

Execute o comando de compilação e instalação do Openfire:

# make install clean

Depois de realizado a instalação, vamos habilitar para o Openfire inicializar quando o FreeBSD for reiniciado. Editar o arquivo “rc.conf”.

# ee /etc/rc.conf

Adicionando ao final do arquivo as linhas abaixo, depois salve o arquivo e saia.

# Openfire
        openfire_enable="YES"

Antes de iniciar o Openfire vamos aumentar a memória Java alocada para o mesmo. Acesse o arquivo /usr/local/etc/rc.d/openfire:

# ee /usr/local/etc/rc.d/openfire

Localize a seguinte linha:

: ${openfire_javargs:='-Xmx256M'}

Altere para:

: ${openfire_javargs:='-Xms256M -Xmx1024M'}

Explicando:

-Xms256M: Mínimo de memória alocada;
-Xmx1024M: Máximo de memória alocada.

Agora vamos iniciar o Openfire com o seguinte comando:

# /usr/local/etc/rc.d/openfire start
# rehash

Vamos agora testar o Openfire. Use um browser para conectar a:

# http://"ip_do_servidor":9090

Se tudo estiver certo será exibido à página “Welcome to Setup”.

4- Configurando o MySQL

Agora iremos acessar o MySQL e criar a base de dados para o Openfire:

# mysql -u root -p

mysql> CREATE DATABASE openfire;
mysql> GRANT ALL PRIVILEGES ON openfire.* TO openfire@localhost IDENTIFIED BY “senha”; (Digite a Senha entre as aspas”)
mysql> QUIT

Explicando: (1)

Na primeira linha estamos criando um banco de dados com o nome "openfire", que será utilizado pelo servidor Openfire.
Na segunda linha estamos dando para o usuário "openfire" todos os privilégios neste banco de dados e estamos definindo para ele uma senha denominada "senha".
Na terceira linha estamos saindo do banco de dados.

Importe o arquivo do esquema a partir do diretório /resources/database/ na pasta que o Openfire está intalado:

# cat /usr/local/share/java/openfire/resources/database/openfire_mysql.sql | mysql -u root -p openfire

A base de dados já está criada e configurada para utiliza-la na configuração do Openfire.



5- Configurando o Openfire

Agora iremos acessar, via browser, a console de Administração do Openfire para configurar nosso servidor

# http://"ip_do_servidor":9090


1)    Selecione o idioma de sua escolha:


2)    Configure o domínio. Se você optar por um endereço IP, digite o IP do seu servidor. Se você optar por criar um alias de DNS, digite o domínio do servidor DNS: (2)

3)    Você tem duas escolhas sobre qual banco de dados a ser usado para Openfire para armazenar seus dados: um banco de dados externos, como MySQL, MSSQL, PostgreSQL, etc, ou usar o pacote do banco de dados incorporado (Embedded Database). Se você optou por configurar um banco de dados MySQL, como fizemos neste guia, selecione a opção Standard Database Connection. Se não, a única opção é usar o banco de dados incorporado. (2)


4)    Para configurar sua conexão com banco de dados, selecionar o driver apropriado da lista de Database Presets Driver (em nosso caso selecione MySQL). A página será atualizada e você precisa preencher as informações necessárias (o host do banco de dados, nome, nome de usuário e senha). Você deve ter essa informação de quando você configurar o seu banco de dados MySQL. Por este guia, o MySQL é no mesmo servidor como a minha instalação Openfire (localhost) e criei um banco de dados chamado “openfire” com um nome de usuário “openfire” e defini uma senha. (2)



5)    A etapa perfil tem a ver com os usuários e grupos de bate-papo membros e onde Openfire irá armazenar as informações (novos usuários, grupos de usuários, etc). Nós não vamos optar por LDAP para armazenar essas informações. É muito mais conveniente para salvá-lo em nosso em nosso banco de dados. Selecione a opção “Default” para o Profile:     (2)



6)    Digite o endereço de e-mail do administrador e defina uma senha para seu servidor Openfire.
 
7)    A configuração esta completa! Clique em “Login to admin console”:



8)    Agora iremos acessar, via browser, a console de Administração do Openfire




6- Referências

(1) http://www.vivaolinux.com.br/artigo/Servidor-Jabber-com-Openfire-+-MySQL-+-Debian-Lenny?pagina=2
(2) http://www.tonybhimani.com/2007/12/31/openfire-jabberxmpp-server-on-centos-mini-howto/
www.fug.com.br
www.bsdux.com.br
http://www.remontti.com.br/blog/archives/648
http://dev.mysql.com/doc/refman/5.5/en/freebsd.html
http://www.fug.com.br/content/view/360/77/
http://openfirebrasil.blogspot.com/
http://community.igniterealtime.org/thread/28484
http://www.igniterealtime.org/builds/openfire/docs/latest/documentation/database.html
http://mistura.wordpress.com/2008/06/25/instalando-o-openfire-no-debian-etch/
http://www.sistemabasico.com.br/2010/12/28/tutorial-integrando-o-servidor-de-mensagens-instantaneas-openfire-com-mysql-no-windows-7/
http://www.rafaelmatias.com.br/2011/03/20/instalando-openfire-jabber-com-mysql-no-ubuntu-e-autenticando-no-ad/
http://ubuntuforums.org/showthread.php?t=525670
http://community.igniterealtime.org/thread/28325
http://community.igniterealtime.org/docs/DOC-1633
http://community.igniterealtime.org/blogs/ignite/2008/07/26/flash-based-audio-and-video-in-spark-sparkweb-and-openfire
http://www.igniterealtime.org/projects/openfire/plugins-beta/red5/readme.html
http://www.igniterealtime.org/projects/openfire/plugins-beta/red5/changelog.html

0 comentários:

Postar um comentário

 
HowtoBSD © 2010 | Designed by Trucks, in collaboration with MW3, templates para blogspot