Instrucțiuni de instalare
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:
- Creați un proiect în Google Developers Console
- Pentru acest proiect, creați un ID de client și un secret conform instrucțiunilor (pașii a-f)
- Î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
- Î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)