Maratón de Programación

Instalación de Boca
Actualizado el 19 de julio de 2013
Sigue el INSTALL.TXT
Instala las dependencias
julio@acer ~> sudo pacman -S php php-pgsql php-mcrypt php-gd postgresqlDescomenta las siguientes líneas en
/etc/php/php.iniextension=pdo_pgsql.so extension=pgsql.so extension=zip.soEdita la configuración de PostgreSQL:
listen_addresses = 'localhost' (* = all)Haz que la codificación de los nuevos BDs sea UTF-8
Este paso no es obligatorio, pero sin él tendrás que escribir “ENCODING = ‘UTF8’” cada vez que quieras crear una base 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 1Reinicia PostgreSQL:
julio@acer ~> sudo systemctl restart postgresqlDescarga una versión reciente de Boca: ime.usp.br/~cassio/boca
Descomprime el archivo y mueve la carpeta al servidor
[root@acer Downloads]# tar xvfz boca-1.4.2.tgz [root@acer Downloads]# mv boca-1.4.2 /srv/http/bocaEdita la configuración de 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>Crea el usuario “boca”, capaz de crear bases de datos:
julio@acer ~> psql julio=# CREATE USER boca WITH PASSWORD 'OUKLsjVs2GLby79' createdb;Como root, edita el archivo
/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 generar una clave aleatoria y la contraseña de boca, puedes usar el siguiente comando:
julio@acer ~> echo `tr -dc _A-Z-a-z-0-9 < /dev/urandom | head -c25`O bien otro generador de contraseñas aleatorias como
pwgen,makepasswd,apgoKeePassX.Como root, ejecuta el siguiente comando dentro de la carpeta 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
Aquí dio un Fatal error: Call to undefined function define_syslog_variables() y simplemente
comenté la línea correspondiente en globals.php.
- Entra en http://localhost/boca/src/index.php. Debería aparecer la pantalla de login; el
usuario es
systemy no tiene contraseña. Crea una contraseña enOptions.
Si se queja de que el archivo conf.php no es legible, ejecuta chmod +x private.
OBS.: En el sitio también hay un script que realiza la instalación automática (descarga actualizaciones, crea usuarios, cambia el grub y autoconfigura Boca), pero tiene muchas cosas específicas para Ubuntu. Si estás usando esa distribución, descarga el script AQUÍ.
Instalar en servidor sin contraseña de root
Bien, Boca funcionó muy bien en mi ordenador y es accesible incluso desde internet, pero usar mi portátil como servidor con la velocidad de conexión de mi casa no es nada estable. Como estoy pagando este servidor, resolví instalar Boca aquí mismo.
El proceso es idéntico hasta el paso 10, pero el paso 11 necesita ejecutarse como root y yo no tengo la contraseña de root, pues el servidor es compartido. La solución es copiar la base de datos que el script creó en mi ordenador al 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