Maratona de Programação

jan. 4, 2012·
Julio Batista Silva
Julio Batista Silva
· 3 minutos de leitura
blog Programação

Instalação do Boca

Atualizado em 19 de Julho de 2013

Seguir o INSTALL.TXT

  1. Instale as dependências

    julio@acer ~> sudo pacman -S php php-pgsql php-mcrypt php-gd postgresql
    
  2. Descomente as seguintes linhas em /etc/php/php.ini

    extension=pdo_pgsql.so
    extension=pgsql.so
    extension=zip.so
    
  3. Edite a configuração do PostgreSQL:

    listen_addresses = 'localhost'
    (* = all)
    
  4. Faça a codificação de novos BDs ser UTF-8

    Essa etapa é desnecessária, mas sem ela você terá que digitar “ENCODING = ‘UTF8’” toda vez que quiser criar um banco UTF8.

    julio@acer ~> psql
    psql (9.1.2)
    Type "help" for help.
    
    julio=# UPDATE pg_database SET datistemplate = FALSE WHERE datname = 'template1';
    UPDATE 1
    julio=# DROP DATABASE template1;
    DROP DATABASE
    julio=# CREATE DATABASE template1 WITH TEMPLATE = template0 ENCODING = 'UNICODE';
    CREATE DATABASE
    julio=# UPDATE pg_database SET datistemplate = TRUE WHERE datname = 'template1';
    UPDATE 1
    
  5. Reinicie o PostgreSQL:

    julio@acer ~> sudo systemctl restart postgresql
    
  6. Baixe uma versão recente do boca: ime.usp.br/~cassio/boca

  7. Descompacte o arquivo e mova a pasta para o servidor

    [root@acer Downloads]# tar xvfz boca-1.4.2.tgz
    [root@acer Downloads]# mv boca-1.4.2 /srv/http/boca
    
  8. Edite as configurações do Apache:

    julio@acer ~> sudo vim /etc/httpd/conf/httpd.conf
    
    #BOCA
    <Directory /srv/http/boca>
           AllowOverride Options AuthConfig Limit
           Order Allow,Deny
           Allow from all
           AddDefaultCharset utf-8
    </Directory>
    <Directory /srv/http/boca/private>
           AllowOverride None
           Deny from all
    </Directory>
    <Directory /srv/http/boca/doc>
           AllowOverride None
           Deny from all
    </Directory>
    <Directory /srv/http/boca/tools>
           AllowOverride None
           Deny from all
    </Directory>
    
  9. Crie o usuário “boca”, capaz de criar bancos de dados:

    julio@acer ~> psql
    julio=# CREATE USER boca WITH PASSWORD 'OUKLsjVs2GLby79' createdb;
    
  10. Como root, edite o arquivo /srv/http/boca/private/conf.php

    <?php
    function globalconf() {
        $conf["dbencoding"]="UTF8";
        $conf["dbclientenc"]="UTF8";
        $conf["dblocal"]="false";
        $conf["dbhost"]="localhost";
        $conf["dbport"]="5432";
        $conf["dbname"]="bocadb";
        $conf["dbuser"]="boca";
        $conf["dbpass"]="senha";
        $conf["dbsuperuser"]="senha";
        $conf["dbsuperpass"]="senha";
        $conf["basepass"]="142857";
        $conf["key"]="GG5ALEATORIOjJprR6ex";
        $conf["ip"]='local';
        return $conf;
    }
    ?>
    

    Para gerar uma chave aleatória e a senha do boca, você pode usar o seguinte comando:

    julio@acer ~> echo `tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c25`
    

    Ou outro gerador de senhas aleatórias como o pwgen, makepasswd, apg ou o KeePassX.

  11. Como root, execute o seguinte comando dentro da pasta private:

    [root@acer private]# php createdb.php
    This will erase all the data in your bocadb database.
    ***** YOU WILL LOSE WHATEVER YOU HAVE THERE!!! *****
    Type YES and press return to continue or anything else will abort it: YES
    
    dropping database
    PHP Warning:  date(): It is not safe to rely on the system's timezone settings. ()
    creating database
    creating tables
    creating initial fake contest
    

Aqui ele deu um Fatal error: Call to undefined function define_syslog_variables() e eu simplesmente comentei a linha correspondente em globals.php.

  1. Entre em http://localhost/boca/src/index.php. Deverá aparecer a tela de login, o usuário é system e não tem senha. Crie uma senha em Options

Se ele reclamar que o arquivo conf.php não é legível, execute chmod +x private.

OBS.: No site também está disponível um script que realiza a instalação automática (baixa atualizações, cria usuários, altera o grub e autoconfigura o Boca) porém possui muita coisa específica para Ubuntu. Se você estiver usando essa distribuição, baixe o script AQUI.

Instalar em servidor sem senha do root

Bem, o Boca rodou muito bem no meu computador e está acessível até mesmo da internet, porém usar meu notebook como servidor com a velocidade de conexão aqui de casa não é nada estável. Como estou pagando este servidor, resolvi instalar o boca aqui mesmo.

O processo é idêntico até o passo 10, porém o passo 11 precisa ser executado como root e eu não tenho a senha de root, pois o servidor é compartilhado. A solução é copiar o banco de dados que o script criou no meu computador para o servidor:

  1. julio@acer ~> pg_dump -C -Fp -f dump.sql -U postgres bocadb

  2. julio@acer ~> scp dump.sql juliobor@juliob.org:~

  3. julio@acer ~> ssh juliobor@juliob.org

  4. juliobor@box780 ~ $ psql -U juliobor_boca -f dump.sql


Julio Batista Silva
Authors
Senior Cloud Developer

Sou um engenheiro de computação brasileiro baseado na Alemanha, apaixonado por tecnologia, ciência, fotografia e línguas.

Programo há cerca de duas décadas, explorando desde aplicativos móveis e desenvolvimento web até aprendizado de máquina. Atualmente, foco em SRE de nuvem e engenharia de dados.

Sou voluntário nas comunidades de open source e Python, ajudando a organizar a PyCon DE e a PyData Berlin, mentorando e contribuindo com código e traduções.

No meu blog, compartilho dicas de Linux, guias de configuração e notas pessoais que escrevo para referência futura. Espero que outras pessoas também as considerem úteis. O conteúdo está disponível em vários idiomas.

Visite minha galeria para ver algumas das minhas fotografias.

Longe do teclado, você vai me encontrar em shows, tocando clarinete, pedalando, mergulhando ou explorando novos lugares, culturas e culinárias.

Sempre feliz em me conectar! 🙂

comments powered by Disqus