wiki:Servicos/Funambol/InstalacaoServidor

Version 1 (modified by marciostarke, 15 years ago) (diff)

--

1. Pré-requisitos

O Funambol precisa ser instalado num servidor que tenha acesso ao Expresso. Nesse servidor deve ser configurada uma conta de usuário com a qual será instalado o Funambol, de forma a manter a segurança dos arquivos de configuração. Os dispositivos compatíveis são:

  • Dispositivos que suportem o padrão SyncML1;
  • Dispositivos rodando:
  • Windows Mobile (a partir da versão 5);

Dispositivos compatíveis com java, atendendo aos requisitos:

  • MIDP 2.0;
  • WMA 1.1;
  • Heap de pelo menos 800Kb;
  • Tamanho máximo de download de pelo menos 250Kb.

Requisitos do servidor:

  • O Funambol apresenta problemas caso seja instalado na versão 8.3 do PostgreSQL, tendo que ser instalado em versões anteriores. Caso seja realmente necessário instalar na versão 8.3 deve executar as seguintes linhas dentro do banco para deixá-lo compatível:
    create function pg_catalog.text(integer) returns text strict immutable language sql as 'select textin(int4out($1));';
    create cast (integer as text) with function pg_catalog.text(integer) as implicit;
    create function pg_catalog.text(bigint) returns text strict immutable language sql as 'select textin(int8out($1));';
    create cast (bigint as text) with function pg_catalog.text(bigint) as implicit;
    
  • Ambos servidores (PostgreSQL e Funambol) devem estar sincronizados com algum servidor de hora. Caso estejam com horário diferente podem ocorrer problemas;
  • É preciso que os protocolos IMAP e SMTP no servidor Expresso estejam habilitados.

2. Instalação

É necessário usar a versão compilada de acordo com o explicado nesse desenvolvimento?. Além do Funambol são necessários alguns outros arquivos para instalação, que podem ser encontrados nesse  endereço. Copiar então todos os arquivos para uma pasta, como por exemplo /tmp/funambol, que será usada como exemplo neste documento.
Acessar a pasta /tmp/funambol e executar então o arquivo de instalação funambol-7.0.6.bin. Caso não tenha permissão para executar o arquivo execute o comando chmod +x funambol-7.0.6.bin, ficando assim possível executar o arquivo. Lembrar que deve ser executado com algum usuário com perfil de administrador, pois só assim ele poderá fazer a instalação na pasta /opt.
A instalação é dividida em duas partes. A primeira parte da instalação é bem simples, vai aparecer uma tela de com os termos de licença, e por último uma pergunta se concorda com os termos. Digite yes

Do you agree to the above license terms? [yes or no]
yes

Depois aparecerá uma tela perguntando o diretório onde se deseja instalar o Funambol. Por padrão ele instala em /opt. Aperte a tecla Enter para aceitar.

Directory to extract Funambol [/opt] <return to accept>? 

Após a finalização da primeira parte da instalação aparece uma pergunta se deseja iniciar o servidor. Digite no,

Do you want to start the server? [yes or no] 
no

A segunda parte da instalação consiste na configuração do Funambol para criar as suas tabelas no banco de dados. O Funambol consegue trabalhar com 03 bancos de dados, que são o PostgreSQL, MySQL e Hypersonic. Para integrar com o Expresso, precisamos usar o módulo pSync? desenvolvido pela Prognus Software Livre para fazer a sincronia de contatos e agenda. Para o funcionamento desse módulo é necessário um usuário com permissão de escrita no banco de dados, pois ele precisa criar duas colunas nas tabelas do Expresso. Lembrando que o banco do Expresso é PostgreSQL, temos que configurar o Funambol para trabalhar com esse banco.
Para se fazer a cópia dos arquivos, execute o arquivo de cópia:

/tmp/funambol/copia.bsh

Dessa forma já serão copiados os seguintes arquivos:
O módulo pSync (funambol-psync-1.0.0.s4j) será copiado para o diretório /opt/Funambol/ds-server/modules; O driver de conexão com o banco de dados (postgresql.jar) será copiado para os diretórios: /opt/Funambol/tools/jre-1.5.0/jre/lib/ext; /opt/Funambol/tools/tomcat/lib; /opt/Funambol/inbox-listener/lib; /opt/Funambol/pim-listener/lib; /opt/Funambol/ds-server/default/lib; /opt/Funambol/ctp-server/lib; O arquivo XML de configuração de paramêtros do novo autenticador desenvolvido pela TISGM (LdapUserProvisioningOfficer?.xml) será copiado para /opt/Funambol/config/com/funambol/server/security O arquivo de criação do usuário de administração com a senha inicial correta (init_engine.sql) será copiado para /opt/Funambol/ds-server/default/sql/postgresql Como a ferramenta não copia o arquivo JAR (server-framework-7.0.4.jar)com as novas classes desenvolvidas para a pasta do módulo de correio, é feita uma cópia para os diretórios /opt/Funambol/inbox-listener/lib /opt/Funambol/pim-listener/lib /opt/Funambol/ctp-server/lib /opt/Funambol/tools/tomcat/lib Serão copiados também uns arquivos para melhorar a compatibilidade dos celulares da Motorola V8 e A1200, copiando os arquivos MotorolaA1200in.bsh e MotorolaV8in.bsh para /opt/Funambol/config/com/funambol/server/engine/pipeline/phones-support/bsh e o arquivo 110.1110.MotorolaA1200.xml para /opt/Funambol/config/com/funambol/server/engine/pipeline/input

Caso já exista uma instalação do Funambol num banco de dados do Expresso, e esteja ocorrendo apenas uma migração de servidores ou uma reinstalação, deve-se pular os procedimentos abaixo e ir para o item 3.2 – Configuração dos arquivos – Parte 2

3.1 – Configuração dos Arquivos – Parte 1

Acabada a instalação é necessário fazer a configuração, começando pelo o arquivo install.properties, do diretório /opt/Funambol/ds-server. Nesse arquivo estão as informações necessárias de conexão ao banco de dados e de quais módulos devem ser instalados. Onde está escrito: # The DBMS name. One of: # - hypersonic # - postgresql # - mysql # dbms=hypersonic

Deve-se mudar o dbms para acessar postgresql, ficando desta forma:

# The DBMS name. One of: # - hypersonic # - postgresql # - mysql # dbms=postgresql

Deve-se editar as seguintes linhas que estão descomentadas de:

jdbc.classpath=../tools/hypersonic/lib/hsqldb.jar jdbc.driver=org.hsqldb.jdbcDriver jdbc.url=jdbc:hsqldb:hsql://localhost/funambol jdbc.user=sa jdbc.password=

Para:

jdbc.classpath=/opt/Funambol/tools/tomcat/lib/postgresql.jar jdbc.driver=org.postgresql.Driver jdbc.url=jdbc:postgresql://<ip do servidor expresso>/<nome do banco do expresso> jdbc.user=<usuario do banco do expresso> jdbc.password=<senha do banco do expresso>

No final do arquivo temos os módulos que serão instalados:

# # Modules definitions # modules-to-install=content-provider-7.0.3,email-connector-7.0.6, foundation-7.0.6, phones-support-7.0.4, webdemo-7.0.6

Deve-se adicionar o módulo do pSync (funambol-psync-1.0.0) à lista. Não é preciso colocar a extensão .jar:

# # Modules definitions # modules-to-install=content-provider-7.0.3,email-connector-7.0.6, foundation-7.0.6, phones-support-7.0.4, webdemo-7.0.6, funambol-psync-1.0.0

Depois de editado e salvo, deve-se ir para o diretório /opt/Funambol/bin e rodar o comando ./install. Vai então aparecer um texto explicando o que vai ser feito, que praticamente é a criação das tabelas do Funambol no banco de dados. Para cada módulo será perguntado se deseja recriar as tabelas no banco novo. É necessário atentar para duas situações durante a instalação. Caso seja a primeira instalação, basta digitar “y” para dar continuidade a instalação, como mostra o trecho a seguir: [echo] Funambol Data Synchronization Server will be installed on the Tomcat 6.0.x application server [echo] Undeploying funambol... [input] The Funambol Data Synchronization Server installation program can now create the database. [input] You can skip this step if you have already a valid database created. [input] If you choose 'y' your existing data will be deleted. [input] Do you want to recreate the database? [input] (y,n)

Nesse caso todas as tabelas são recriadas. Na primeira instalação como as tabelas ainda não existem, algumas mensagens de erros referente a recriação das tabelas podem aparecer, mas são erros esperados e não influenciam na instalação e funcionamento do Funambol. Para os passos seguintes é necessário ter o “postgresql-client” instalado para executar os comandos listados abaixo. Considerar que os comandos estão sendo executados na pasta descompactada do funambol no diretório /tmp. É necessário a criação de duas novas triggers para que o módulo pSync consiga atualizar no dispositivo móvel alterações feitas nos contatos e eventos do calendário do Expresso. Para executar esse comando é necessário usar o endereço, o usuário e a senha (os mesmos utilizados na edição do arquivo install.properties). Para criar as triggers executar o comando:

psql -h <endereço do postgres> -U <usuário do postgres> -W -d expresso < triggers.sql

Após executar o comando entrar com a senha. Poderão aparecer os erros de que as triggers não existem, mas é porque elas ainda não foram criadas.

Caso ocorra algum erro referente a inexistência da “language plpgsql”, usar o seguinte comando:

createlang plpgsql -h <endereço do postgres> -U <usuário do postgres> -W -d expresso Após executar o comando entrar com a senha. Depois de criada a “language plpgsql” e preciso executar o comando pra criação de triggers novamente.

Depois é preciso criar um usuário que fará a correta codificação entre o funambol (UTF-8) e o Expresso (Latin1). Para criar o usuário executar o comando:

psql -h <endereço do postgres> -U <usuário do postgres> -W -d expresso < criausu.sql

Após executar o comando entrar com a senha

O último passo é habilitar a conexão segura, através de HTTPS. Executar no diretório /opt/Funambol/tools/jre-1.5.0/jre/bin o comando ./keytool -genkey -alias tomcat -keyalg RSA Vão aparecer então as perguntas para gerar o certificado começando com: Enter keystore password: Entrar com o valor de changeit Depois responder as seguintes perguntas de acordo com o lugar, ou empresa que estiver fazendo a instalação: What is your first and last name?

[Unknown]:

What is the name of your organizational unit?

[Unknown]:

What is the name of your organization?

[Unknown]:

What is the name of your City or Locality?

[Unknown]:

What is the name of your State or Province?

[Unknown]:

What is the two-letter country code for this unit?

[Unknown]:

Is CN=, OU=, O=, L=, ST=, C= correct?

[no]:

Enter key password for <tomcat> (RETURN if same as keystore password): changeit

Para finalizar entrar novamente no diretório /opt/Funambol/tools/jre-1.5.0/jre/bin e executar o comando ./keytool -export -alias tomcat -file <nome do certificado>.cer, onde o nome do certificado pode ser qualquer nome.

3.2 – Configuração dos Arquivos – Parte 2

Deve-se editar um arquivo para que o servidor Funambol use o usuário do postgres criado. Editar o arquivo /opt/Funambol/config/com/funambol/server/db/db.xml, modificando as linhas: <void method="setProperty">

<string>username</string> <string><usuario do banco do expresso></string>

</void> <void method="setProperty">

<string>password</string> <string><senha do banco do expresso></string>

</void> Para: <void method="setProperty">

<string>username</string> <string>funambol</string>

</void> <void method="setProperty">

<string>password</string> <string>funambol</string>

</void>

No mesmo arquivo db.xml deve-se editar também as seguintes linhas, caso elas não tenham sido modificadas durante a instalação: <void method="setProperty">

<string>url</string> <string>{jdbc-url}</string>

</void> <void method="setProperty">

<string>driverClassName</string> <string>{jdbc-driver}</string>

</void> Para: <void method="setProperty">

<string>url</string> <string>jdbc:postgresql://<ip do servidor expresso>/<nome do bd do expresso></string>

</void> <void method="setProperty">

<string>driverClassName</string> <string>org.postgresql.Driver</string>

</void>

No mesmo arquivo db.xml deve-se adicionar também as seguinte linhas para manter a conexão do Funambol com o banco do Expresso ativa: <void method="setProperty">

<string>testWhileIdle</string> <string>true</string>

</void> <void method="setProperty">

<string>timeBetweenEvictionRunsMillis</string> <string>600000</string>

</void> <void method="setProperty">

<string>numTestsPerEvictionRun</string> <string>5</string>

</void> <void method="setProperty">

<string>minEvictableIdleTimeMillis</string> <string>1800000</string>

</void> <void method="setProperty">

<string>validationQuery</string>

<string>select 1</string>

</void> <void method="setProperty">

<string>testOnBorrow</string> <string>false</string>

</void> <void method="setProperty">

<string>removeAbandoned</string> <string>true</string>

</void> <void method="setProperty">

<string>logAbandoned</string> <string>true</string>

</void>

Para habilitar a conexão segura no Funambol, deve-se editar o arquivo /opt/Funambol/tools/tomcat/conf/server.xml descomentando as seguintes linhas: <!-- <Connector port="8443" protocol="HTTP/1.1" SSLEnabled="true"

maxThreads="150" scheme="https" secure="true"

clientAuth="false" sslProtocol="TLS" />

-->

Agora é preciso configurar o Funambol para acessar o diretório. Isso é feito editando o arquivo

/opt/Funambol/config/com/funambol/server/security/LdapUserProvisioningOfficer.xml. Modificar a linha <”IP do servidor LDAP”> para o IP desejado.

<void property="ldapIP">

<string><"IP do servidor LDAP"></string>

</void>

3.3 – Configuração do Serviço

Para iniciar ou parar o serviço basta acessar o diretório /opt/Funambol/bin e rodar o comando ./funambol start para iniciar e ./funambol stop para parar. Pode-se verificar se o serviço do Funambol está rodando, digitando "ps aux" na linha de comando. Devem aparecer 05 processos do java do Funambol rodando. É importante verificar se o Java utilizado é o que vem com o Funambol (/opt/Funambol/tools/jre-1.5.0/jre), para evitar possíveis conflitos de versões diferentes do Java. Caso não seja, configurar o JAVA_HOME para esse diretório. Para configurar, primeiro digite echo $JAVA_HOME para visualizar qual é o diretório que está sendo utilizado. Caso não seja o diretório desejado, executar export JAVA_HOME = /opt/Funambol/tools/jre-1.5.0/jre. Assim finaliza-se a instalação, sendo agora necessário fazer a configuração do servidor.

Attachments