Diferență între revizuiri ale paginii „Instrucțiuni de instalare”

De la dexonline wiki
Sari la navigare Sari la căutare
 
(Nu s-au afișat 19 versiuni intermediare efectuate de alți 2 utilizatori)
Linia 9: Linia 9:
* Rulați Arch Linux + MariaDB + Apache.
* Rulați Arch Linux + MariaDB + Apache.
* Codul-sursă va fi instalat în '''/srv/http/dexonline'''.
* Codul-sursă va fi instalat în '''/srv/http/dexonline'''.
* Codul-sursă va fi accesat la http://localhost/dexonline/www/.
* MariaDB folosește utilizator=root, parolă=<vidă>, host=localhost, database=dexonline.
* MariaDB folosește utilizator=root, parolă=<vidă>, host=localhost, database=dexonline.


Linia 16: Linia 17:


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
sudo pacman -S apache mariadb php php-apache git
sudo pacman -S apache mariadb php php-apache git gettext
</syntaxhighlight>
 
=== Pachete opționale ===
 
Anumite scripturi (neesențiale pentru funcționarea clonei) folosesc funcții din pachete suplimentare:
<syntaxhighlight lang="bash">
sudo pacman -S php-curl php-xml
</syntaxhighlight>
</syntaxhighlight>


Linia 29: Linia 37:
</syntaxhighlight>
</syntaxhighlight>


=== Editați dex.conf ===
=== Editați Config.php ===


Probabil va trebui să modificați doar valoarea pentru '''database''' și doar dacă folosiți alte valori pentru conexiune.
Probabil va trebui să modificați doar valorile pentru
 
* '''URL_HOST''' și '''URL_PREFIX''' dacă accesați instalarea la altă adresă;
* '''DATABASE''' dacă folosiți alte valori pentru conexiune.
 
Creați fișierul descris în '''LOG_FILE''' și dați-i drept de scriere universal:
 
<syntaxhighlight lang="bash">
sudo touch /var/log/dexonline.log
sudo chmod 666 /var/log/dexonline.log
</syntaxhighlight>


=== Descărcați baza de date ===
=== Descărcați baza de date ===


Importarea poate dura 5-10 minute. Nu avem o bază de date minimală, o folosim pe cea publică.
Importarea poate dura 5-10 minute. Nu avem o bază de date minimală, o folosim pe cea publică. Puteți citi [https://github.com/dexonline/dexonline/wiki/Database-Schema documentația schemei] bazei de date.


<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
mysql -u root -e "create database dexonline charset utf8"
mysql -u root -e "create database dexonline charset utf8mb4 collate utf8mb4_romanian_ci"
wget -O /tmp/dex-database.sql.gz https://dexonline.ro/static/download/dex-database.sql.gz
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
zcat /tmp/dex-database.sql.gz | mysql -u root dexonline
php tools/migration.php
php tools/migration.php
</syntaxhighlight>
</syntaxhighlight>
Dacă spațiul pe disc este o problemă, puteți economisi circa 1,7 GB prin [[Minimizarea bazei de date]].


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


Activați modulul rewrite: decomentați linia
Activați modulul rewrite: asigurați-vă că următoarea linie nu este comentată:


<syntaxhighlight lang="apache">
<syntaxhighlight lang="apache">
Linia 73: Linia 93:
=== Testați ===
=== Testați ===


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


== OS X ==
== OS X ==
Linia 90: Linia 110:


* în baza de date: rulați '''php tools/migration.php''';
* î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: preluați noutățile din '''Config.php.sample''' în '''Config.php''';
* în fișierul de configurare Apache: preluați noutățile din '''wwwbase/.htaccess.sample''' în '''wwwbase/.htaccess''';
* în fișierul de configurare Apache: preluați noutățile din '''www/.htaccess.sample''' în '''www/.htaccess'''.


== Convenții de codare ==
== 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).
Folosim [https://google.github.io/styleguide/javaguide.html stilul Google pentru Java]. În principiu, dacă urmați stilul existent în cod, va fi cum trebuie.
* 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: <tt>$numeVariabilă</tt>, <tt>NumeClasă</tt>, <tt>$this->numeCâmp</tt>.
* Constantele sunt scrise cu litere mari și cu underscore: <tt>NUME_CONSTANTĂ</tt>.
* 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 (<tt>for, foreach, if, while, case</tt> 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.
 
<syntaxhighlight lang="php">
if (($y > 3) && ($y < 10)) {
  while ($z < 10) {
    $z++;
    callMyFunction($y, $z);     
  }
}
</syntaxhighlight>
 
== Configurări opționale ==


Aceste configurări sunt necesare doar dacă lucrați în mod explicit la componentele respective.
În plus, referitor la limba română, veți avea nevoie să:


=== OpenID Connect ===
* vedeți corect diacriticele ĂÂÎȘȚ și alte câteva simboluri Unicode;
* tastați corect diacriticele românești; în particular, Ș și Ț cu virgulă, nu Ş și Ţ cu sedilă;
* folosiți diacritice în orice mesaje afișate către utilizator.


Pe 20 aprilie 2015, [https://developers.google.com/identity/protocols/OpenID2Migration 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:
== Localizare ==


# Creați un proiect în [https://console.developers.google.com/ Google Developers Console]
Vedeți [https://github.com/dexonline/dexonline/wiki/Localization Localization].
# Pentru acest proiect, creați un ID de client și un secret conform [https://developers.google.com/identity/protocols/OpenID2Migration#openid-connect 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:
#* <tt><nowiki>http://localhost/DEX/wwwbase/auth/revenireOpenidConnect.php</nowiki></tt>
#* <tt><nowiki>http://localhost/~username/DEX/wwwbase/auth/revenireOpenidConnect.php</nowiki></tt>
# În fișierul de configurare <tt>dex.conf</tt>, în secțiunea <tt>[openid]</tt>, adăugați o linie cu ID-ul de client și secretul, în formatul
#* <tt>credentials[accounts.google.com] = "ID_client|secret"</tt> (înlocuiți valorile <tt>ID_client</tt> și <tt>secret</tt> cu valorile din Google Developers Console)

Versiunea curentă din 3 decembrie 2021 11:01

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.
  • Codul-sursă va fi accesat la http://localhost/dexonline/www/.
  • 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 gettext

Pachete opționale

Anumite scripturi (neesențiale pentru funcționarea clonei) folosesc funcții din pachete suplimentare:

sudo pacman -S php-curl php-xml

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 Config.php

Probabil va trebui să modificați doar valorile pentru

  • URL_HOST și URL_PREFIX dacă accesați instalarea la altă adresă;
  • DATABASE dacă folosiți alte valori pentru conexiune.

Creați fișierul descris în LOG_FILE și dați-i drept de scriere universal:

sudo touch /var/log/dexonline.log
sudo chmod 666 /var/log/dexonline.log

Descărcați baza de date

Importarea poate dura 5-10 minute. Nu avem o bază de date minimală, o folosim pe cea publică. Puteți citi documentația schemei bazei de date.

mysql -u root -e "create database dexonline charset utf8mb4 collate utf8mb4_romanian_ci"
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

Dacă spațiul pe disc este o problemă, puteți economisi circa 1,7 GB prin Minimizarea bazei de date.

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

Activați modulul rewrite: asigurați-vă că următoarea linie nu este comentată:

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/www/ 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 Config.php.sample în Config.php;
  • în fișierul de configurare Apache: preluați noutățile din www/.htaccess.sample în www/.htaccess.

Convenții de codare

Folosim stilul Google pentru Java. În principiu, dacă urmați stilul existent în cod, va fi cum trebuie.

În plus, referitor la limba română, veți avea nevoie să:

  • vedeți corect diacriticele ĂÂÎȘȚ și alte câteva simboluri Unicode;
  • tastați corect diacriticele românești; în particular, Ș și Ț cu virgulă, nu Ş și Ţ cu sedilă;
  • folosiți diacritice în orice mesaje afișate către utilizator.

Localizare

Vedeți Localization.