Maratón de programación

ene 4, 2012·
Julio Batista Silva
Julio Batista Silva
· 3 min de lectura
blog Programação

Instalación de Boca

Actualizado el 19 de julio de 2013

Sigue el INSTALL.TXT

  1. Instala las dependencias

    julio@acer ~> sudo pacman -S php php-pgsql php-mcrypt php-gd postgresql
    
  2. Descomenta las siguientes líneas en /etc/php/php.ini

    extension=pdo_pgsql.so
    extension=pgsql.so
    extension=zip.so
    
  3. Edita la configuración de PostgreSQL:

    listen_addresses = 'localhost'
    (* = all)
    
  4. Haz que la codificación de las nuevas bases de datos sea UTF-8

    Este paso no es necesario, pero sin él tendrás que escribir “ENCODING = ‘UTF8’” cada vez que quieras crear una base de datos 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. Reinicia PostgreSQL:

    julio@acer ~> sudo systemctl restart postgresql
    
  6. Descarga una versión reciente de Boca: ime.usp.br/~cassio/boca

  7. 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/boca
    
  8. Edita 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>
    
  9. Crea el usuario “boca”, con permiso para crear bases de datos:

    julio@acer ~> psql
    julio=# CREATE USER boca WITH PASSWORD 'OUKLsjVs2GLby79' createdb;
    
  10. 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"]="contrasena";
        $conf["dbsuperuser"]="contrasena";
        $conf["dbsuperpass"]="contrasena";
        $conf["basepass"]="142857";
        $conf["key"]="GG5ALEATORIOjJprR6ex";
        $conf["ip"]='local';
        return $conf;
    }
    ?>
    

    Para generar una clave aleatoria y la contraseña de Boca puedes usar este comando:

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

    O cualquier otro generador de contraseñas aleatorias como pwgen, makepasswd, apg o KeePassX.

  11. 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
    

A mí me dio un Fatal error: Call to undefined function define_syslog_variables() y simplemente comenté la línea correspondiente en globals.php.

  1. Entra en http://localhost/boca/src/index.php. Debería aparecer la pantalla de acceso; el usuario es system y no tiene contraseña. Créale una en Options

Si se queja de que el archivo conf.php no es legible, ejecuta chmod +x private.

Nota: en la web también hay un script que hace la instalación automática (descarga actualizaciones, crea usuarios, modifica grub y autoconfigura Boca), pero tiene mucho específico de Ubuntu. Si usas esa distribución, descarga el script AQUÍ.

Instalar en un servidor sin contraseña de root

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 que tengo en casa no es nada estable. Como ya estoy pagando este servidor, decidí instalar Boca directamente aquí.

El proceso es idéntico hasta el paso 10, pero el paso 11 hay que ejecutarlo como root y yo no tengo la contraseña de root, porque el servidor es compartido. La solución es copiar al servidor la base de datos que el script creó en mi ordenador:

  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
Autores
Senior Cloud Developer

Soy un ingeniero informático brasileño radicado en Alemania, apasionado por la tecnología, la ciencia, la fotografía y los idiomas.

Llevo programando cerca de dos décadas, explorando desde apps móviles y desarrollo web hasta aprendizaje automático. Hoy me enfoco en SRE en la nube e ingeniería de datos.

Soy voluntario en las comunidades de open source y Python, ayudando a organizar PyCon DE y PyData Berlin, dando mentorías y contribuyendo con código y traducciones.

En mi blog comparto consejos de Linux, guías de configuración y notas personales que escribí como referencia futura. Espero que también sean útiles para otras personas. El contenido está disponible en varios idiomas.

Visita mi galería para ver algunas de mis fotografías.

Fuera del teclado, me encontrarás en conciertos, tocando el clarinete, en bicicleta, buceando o explorando nuevos lugares, culturas y cocinas.

¡Siempre feliz de conectar! 🙂

comments powered by Disqus