Blog do Julio

Hacks, tutoriais e dicas

Maratona De Programação

| Comments

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.

  1. 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, dê um 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
    
  5. Edite o .htacess do www/boca e marque RewriteEngine On

Basicamente é isso, os outros ajustes são feitos da mesma forma que no localhost.


Links:

Comments