Programmierwettbewerb

Jan. 4, 2012·
Julio Batista Silva
Julio Batista Silva
· 3 Min Lesezeit
blog Programação

Boca installieren

Aktualisiert am 19. Juli 2013

Folge der INSTALL.TXT

  1. Installiere die Abhängigkeiten

    julio@acer ~> sudo pacman -S php php-pgsql php-mcrypt php-gd postgresql
    
  2. Kommentiere die folgenden Zeilen in /etc/php/php.ini ein

    extension=pdo_pgsql.so
    extension=pgsql.so
    extension=zip.so
    
  3. Bearbeite die PostgreSQL-Konfiguration:

    listen_addresses = 'localhost'
    (* = all)
    
  4. Stelle die Kodierung neuer Datenbanken auf UTF-8

    Dieser Schritt ist nicht nötig, aber ohne ihn musst du jedes Mal “ENCODING = ‘UTF8’” angeben, wenn du eine UTF8-Datenbank anlegen willst.

    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. Starte PostgreSQL neu:

    julio@acer ~> sudo systemctl restart postgresql
    
  6. Lade eine aktuelle Version von Boca herunter: ime.usp.br/~cassio/boca

  7. Entpacke die Datei und verschiebe den Ordner auf den Server

    [root@acer Downloads]# tar xvfz boca-1.4.2.tgz
    [root@acer Downloads]# mv boca-1.4.2 /srv/http/boca
    
  8. Bearbeite die Apache-Konfiguration:

    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. Lege den Benutzer “boca” an, der Datenbanken anlegen darf:

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

    Für einen zufälligen Schlüssel und das Boca-Passwort kannst du den folgenden Befehl benutzen:

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

    Oder einen anderen Zufallspasswort-Generator wie pwgen, makepasswd, apg oder KeePassX.

  11. Führe als root den folgenden Befehl im Ordner private aus:

    [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
    

Bei mir kam ein Fatal error: Call to undefined function define_syslog_variables(); ich habe die entsprechende Zeile in globals.php einfach auskommentiert.

  1. Geh auf http://localhost/boca/src/index.php. Es sollte der Anmeldebildschirm erscheinen; der Benutzer ist system und hat kein Passwort. Vergib eines unter Options

Beschwert es sich, dass conf.php nicht lesbar ist, führe chmod +x private aus.

Hinweis: Auf der Website gibt es auch ein Skript für die automatische Installation (es lädt Updates, legt Benutzer an, ändert Grub und richtet Boca selbst ein), es enthält aber viel Ubuntu-Spezifisches. Wenn du diese Distribution benutzt, lade das Skript HIER herunter.

Auf einem Server ohne Root-Passwort installieren

Boca lief auf meinem Rechner sehr gut und ist sogar aus dem Internet erreichbar, aber mein Notebook mit der Verbindungsgeschwindigkeit hier zu Hause als Server zu benutzen ist alles andere als stabil. Da ich diesen Server ohnehin bezahle, habe ich Boca gleich dort installiert.

Bis Schritt 10 ist alles gleich, aber Schritt 11 muss als root laufen — und das Root-Passwort habe ich nicht, weil der Server geteilt ist. Die Lösung: die Datenbank, die das Skript auf meinem Rechner angelegt hat, auf den Server kopieren:

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

Ich bin ein brasilianischer Computeringenieur mit Wohnsitz in Deutschland und begeistere mich für Technik, Wissenschaft, Fotografie und Sprachen.

Ich programmiere seit etwa zwei Jahrzehnten und habe dabei alles von mobilen Apps und Webentwicklung bis hin zu Machine Learning erkundet. Derzeit fokussiere ich mich auf Cloud‑SRE und Data Engineering.

Ich engagiere mich ehrenamtlich in den Open‑Source- und Python‑Communities, helfe bei der Organisation der PyCon DE und PyData Berlin, betreue als Mentor und trage mit Code und Übersetzungen bei.

In meinem Blog teile ich Linux‑Tipps, Einrichtungsanleitungen und persönliche Notizen, die ich als spätere Referenz geschrieben habe. Ich hoffe, dass sie auch anderen nützlich sind. Die Inhalte sind in mehreren Sprachen verfügbar.

Schau dir meine Galerie an, um einige meiner Fotografien zu sehen.

Abseits der Tastatur findest du mich auf Konzerten, beim Klarinettenspiel, Radfahren, Tauchen oder beim Erkunden neuer Orte, Kulturen und Küchen.

Ich freue mich immer über den Austausch! 🙂

comments powered by Disqus