Instrucțiuni de instalare

De la dexonline wiki
Sari la navigare Sari la căutare

Docker

Urmați aceste instrucțiuni pentru instalarea cu Docker.

Linux

Presupuneri

  • Rulați Arch Linux + MariaDB + Apache.
  • Codul-sursă va fi instalat în /srv/http/dexonline.
  • MariaDB folosește utilizator=root, parolă=<vidă>, host=localhost, database=dexonline.

Pentru orice deviere de la aceste presupuneri, va trebui să adaptați instrucțiunile de mai jos.

Instalați pachetele necesare

sudo pacman -S apache mariadb php php-apache git

Clonați și inițializați repo-ul dexonline

cd /srv/http/
sudo git clone https://github.com/dexonline/dexonline
sudo chown -R utilizator.utilizator dexonline
cd dexonline
tools/setup.sh

Editați dex.conf

Probabil va trebui să modificați doar valoarea pentru database și doar dacă folosiți alte valori pentru conexiune.

Descărcați baza de date

Importarea poate dura 5-10 minute. Nu avem o bază de date minimală, o folosim pe cea publică.

mysql -u root -e "create database dexonline charset utf8"
wget -O /tmp/dex-database.sql.gz https://dexonline.ro/static/download/dex-database.sql.gz
zcat /tmp/dex-database.sql.gz | mysql -u root dexonline
php tools/migration.php

Modificați /etc/httpd/conf/httpd.conf (ca root)

Activați modulul rewrite: decomentați linia

LoadModule rewrite_module modules/mod_rewrite.so

Configurați php-apache conform instrucțiunilor (secțiunea Using libphp).

Permiteți fișiere .htaccess:

<Directory "/srv/http">
    ...
    AllowOverride All
    ....
</Directory>

(Re)porniți serviciile

sudo systemctl restart mariadb
sudo apachectl restart

Testați

Acum http://localhost/dexonline/wwwbase/ ar trebui să meargă.

OS X

Urmați aceste instrucțiuni de instalare pentru OS X cu MAMP

Ținerea la zi

Actualizați codul:

git pull

Git vă va anunța dacă au apărut modificări:

  • în baza de date: rulați php tools/migration.php;
  • în fișierul de configurare: preluați noutățile din dex.conf.sample în dex.conf;
  • în fișierul de configurare Apache: preluați noutățile din wwwbase/.htaccess.sample în wwwbase/.htaccess.

Convenții de codare

  • Asigurați-vă că sistemul dumneavoastră permite citirea și tastarea diacriticelor românești ĂÂÎȘȚ. În particular, asigurați-vă că puteți folosi diacriticele Ș și Ț cu virgulă (nu Ş și Ţ cu sedilă). Editorul dumneavoastră trebuie să poată deschide și salva fișiere fără a corupe semnele diacritice din ele. Orice sistem GNU/Linux modern se descurcă perfect cu aceste simboluri. Sub Gnome, singura operație necesară este adăugarea unei mapări românești de tastatură (System / Preferences / Keyboard / Layouts / Add / Country:Romania). Cătălin folosește varianta simplă (Romania), care practic lasă tastatura originală nemodificată și adaugă diacriticele românești folosind talta AltGr (Alt din dreapta).
  • Fișierele sunt scrise cu indentare de două spații, fără taburi. Aceasta este doar o convenție. Dacă preferați un alt stil, putem să îl adoptăm, dar trebuie să scrieți un script care să modifice toată baza de cod. Dacă ne oferiți și un fișier .emacs care să formateze codul în stilul dumneavoastră, este și mai bine. :-)
  • Majoritatea identificatorilor sunt „camelCased”, fără underscores: $numeVariabilă, NumeClasă, $this->numeCâmp.
  • Constantele sunt scrise cu litere mari și cu underscore: NUME_CONSTANTĂ.
  • Lățimea ecranului nu este bătută în cuie; credem că până la 160 de caractere nu se va supăra nimeni.
  • Pentru cuvintele-cheie (for, foreach, if, while, case etc.) se lasă spațiu în afara parantezelor, nu și înăuntrul lor.
  • Pentru apeluri de funcții, nu se lasă loc între numele funcției și paranteza deschisă.
  • Se lasă spațiu în afara acoladelor.
  • Se lasă spațiu după virgule.
  • Orice acoladă deschisă stă pe aceeași linie cu instrucțiunea if / else etc. precedentă și este urmată de o linie nouă.
  • Orice acoladă închisă este singură pe linia ei.
  • Folosim acolade și dacă blocul if / else / while etc. constă dintr-o singură instrucțiune.
if (($y > 3) && ($y < 10)) {
  while ($z < 10) {
    $z++;
    callMyFunction($y, $z);      
  }
}

Configurări opționale

Aceste configurări sunt necesare doar dacă lucrați în mod explicit la componentele respective.

OpenID Connect

Pe 20 aprilie 2015, Google a întrerupt suportul pentru OpenID 2.0 și recomandă migrarea la OpenID Connect (sau la alte sisteme, dar noi am ales OpenID Connect). Pentru a vă putea conecta cu contul Google pe instalarea dumneavoastră locală, trebuie să urmați o procedură care nu este grea, dar este migăloasă. Urmați acești pași:

  1. Creați un proiect în Google Developers Console
  2. Pentru acest proiect, creați un ID de client și un secret conform instrucțiunilor (pașii a-f)
  3. În fereastra „redirect URIs”, introduceți URL-ul la care utilizatorul revine după autentificare. Acesta depinde de calea unde ați făcut instalarea locală, de exemplu:
    • http://localhost/DEX/wwwbase/auth/revenireOpenidConnect.php
    • http://localhost/~username/DEX/wwwbase/auth/revenireOpenidConnect.php
  4. În fișierul de configurare dex.conf, în secțiunea [openid], adăugați o linie cu ID-ul de client și secretul, în formatul
    • credentials[accounts.google.com] = "ID_client|secret" (înlocuiți valorile ID_client și secret cu valorile din Google Developers Console)