Maratona de Programação

Instalação do Boca
Atualizado em 19 de Julho de 2013
Seguir o INSTALL.TXT
Instale as dependências
julio@acer ~> sudo pacman -S php php-pgsql php-mcrypt php-gd postgresqlDescomente as seguintes linhas em
/etc/php/php.iniextension=pdo_pgsql.so extension=pgsql.so extension=zip.soEdite a configuração do PostgreSQL:
listen_addresses = 'localhost' (* = all)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 1Reinicie o PostgreSQL:
julio@acer ~> sudo systemctl restart postgresqlBaixe uma versão recente do boca: ime.usp.br/~cassio/boca
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/bocaEdite 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>Crie o usuário “boca”, capaz de criar bancos de dados:
julio@acer ~> psql julio=# CREATE USER boca WITH PASSWORD 'OUKLsjVs2GLby79' createdb;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,apgou oKeePassX.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.
- Entre em http://localhost/boca/src/index.php. Deverá aparecer a tela de login, o usuário é
systeme não tem senha. Crie uma senha emOptions
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:
julio@acer ~> pg_dump -C -Fp -f dump.sql -U postgres bocadbjulio@acer ~> scp dump.sql juliobor@juliob.org:~julio@acer ~> ssh juliobor@juliob.orgjuliobor@box780 ~ $ psql -U juliobor_boca -f dump.sql
Links

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! 🙂