Acces la codul sursă: Diferență între versiuni

De la wiki.civvic.ro
Sari la navigare Sari la căutare
(Pagină nouă: = Acces la codul sursă = Codul [http://civvic.ro Civvic.ro] este disponibil liber (și gratuit) sub licența [http://www.gnu.org/copyleft/gpl.html GNU GPL]. Datele sunt disponibi...)
 
Fără descriere a modificării
Linia 16: Linia 16:
== Convenții de editare ==
== Convenții de editare ==


* 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).
* 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. :-)
* 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}}}.
* 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: {{{NUME_CONSTANTĂ}}}.
* 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.
* Lățimea ecranului nu este bătută în cuie; credem că până la 150 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 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ă.
* 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 în afara acoladelor.
Linia 45: Linia 45:
Există două variante de instalare a codului și un pas opțional pentru oricare dintre ele. Instrucțiunile de instalare depind în mică măsură de alegerea făcută.
Există două variante de instalare a codului și un pas opțional pentru oricare dintre ele. Instrucțiunile de instalare depind în mică măsură de alegerea făcută.


1. '''userdir''': în directorul utilizatorului, de obicei `/home/user/public_html/DEX`. URL-ul de acces este `http://localhost/~user/DEX/wwwbase`
# '''userdir''': în directorul utilizatorului, de obicei <tt>/home/user/public_html/civvic</tt>. URL-ul de acces este <tt>http://localhost/~user/civvic/www</tt>
2. '''document root''': în directorul-rădăcină al lui Apache, de obicei `/var/www/DEX`. URL-ul de acces este `http://localhost/DEX`
# '''document root''': în directorul-rădăcină al lui Apache, de obicei <tt>/var/www/civvic</tt>. URL-ul de acces este <tt>http://localhost/civvic</tt>


Opțional:
Opțional:


3. '''virtual host''': pentru oricare din variantele 1 și 2, puteți crea un site virtual. URL-ul de acces este `http://dex.domeniulmeu.com` (desigur, presupunând că dețineți domeniul `domeniulmeu.com`, ați creat subdomeniul `dex.domeniulmeu.com` și sunteți pe o conexiune cu IP static).
# <li value="3">'''virtual host''': pentru oricare din variantele 1 și 2, puteți crea un site virtual. URL-ul de acces este <tt>http://civvic.domeniulmeu.com</tt> (desigur, presupunând că dețineți domeniul <tt>domeniulmeu.com</tt>, ați creat subdomeniul <tt>civvic.domeniulmeu.com</tt> și sunteți pe o conexiune cu IP static).</li>


Pe parcursul acestui document ne vom referi la aceste trei variante pentru instrucțiuni specifice.
Pe parcursul acestui document ne vom referi la aceste trei variante pentru instrucțiuni specifice.
Linia 56: Linia 56:
== Instalarea și configurarea codului și a bazei de date ==
== Instalarea și configurarea codului și a bazei de date ==


Alegeți-vă directorul unde doriți să lucrați ('''userdir''': `/home/user/public_html/DEX` sau '''document root''': `/var/www/DEX`). Descărcați o copie a codului sursă:
Alegeți-vă directorul unde doriți să lucrați ('''userdir''': <tt>/home/user/public_html/civvic</tt> sau '''document root''': <tt>/var/www/civvic</tt>). Descărcați o copie a codului sursă:


{{{
<syntaxhighlight lang="bash">
#!sh
cd /home/user/public_html
cd /home/user/public_html
# sau cd /var/www
# sau cd /var/www
svn checkout http://voronet.francu.com/repos/DEX
svn checkout http://voronet.francu.com/repos/civvic
cd DEX
cd civvic
}}}
</syntaxhighlight>


Dacă preferați Git în loc de Subversion, Alex Morega întreține și o clonă Git a codului:
Dacă preferați Git în loc de Subversion, Alex Morega întreține și o clonă Git a codului:


{{{
<syntaxhighlight lang="bash">
#!sh
git clone git://github.com/alex-morega/civvic
git clone git://github.com/alex-morega/DEXonline
cd civvic
}}}
</syntaxhighlight>
 


Configurați codul pentru prima dată. Acest pas poate produce diverse erori, deoarece scriptul setup nu este bine pus la punct.
Configurați codul pentru prima dată. Acest pas poate produce diverse erori, deoarece scriptul setup nu este bine pus la punct.


{{{
<syntaxhighlight lang="bash">
#!sh
tools/setup.sh
tools/setup
</syntaxhighlight>
}}}


Instalați Smarty. Este posibil ca distribuția de GNU/Linux pe care o folosiți ofere un pachet pentru Smarty. De exemplu, Ubuntu oferă pachetul '''smarty'''.
Modificați fișierul <tt>civvic.conf</tt> conform cu setările sistemului. Acest fișier nu este sub controlul lui Subversion, deci este acceptabil stocați parola pentru baza de date. În special:


Modificați fișierul {{{dex.conf}}} conform cu setările sistemului. Acest fișier nu este sub controlul lui Subversion, deci este acceptabil să stocați parola pentru baza de date. În special:
* Modificați valoarea variabilei <tt>database</tt> conform [http://pear.php.net/manual/en/package.database.db.intro-dsn.php specificației DSN].
* Indicați calea corectă spre fișierul <tt>Smarty.class.php</tt>.


* Modificați valoarea variabilei {{{database}}} conform [http://pear.php.net/manual/en/package.database.db.intro-dsn.php specificației DSN].
Descărcați baza de date a Civvic.ro și importați-o în MySQL. De asemenea, migrați schema bazei de date la ultima versiune pentru cazul (improbabil) în care codul din Subversion este mai nou decât codul care rulează pe civvic.ro.
* Indicați calea corectă spre fișierul `Smarty.class.php`.


Ca root, copiați fișierul {{{sql-functions.so}}} în directorul unde MySQL își stochează bibliotecile; pentru Debian și Ubuntu, acesta este {{{/usr/lib/mysql/plugin/}}}. Acest fișier extinde limbajul MySQL cu câteva funcții noi.
<syntaxhighlight lang="bash">
mysql -u ... -p ... -e "create database civvic character set utf8"
wget -O /tmp/civvic-database-full.sql.gz http://civvic.ro/download/civvic-database-full.sql.gz
zcat /tmp/civvic-database-full.sql.gz | mysql -u ... -p ... civvic
php tools/migration.php
</syntaxhighlight>


{{{
Dacă veți avea nevoie să testați pagini ale moderatorului, trebuie să vă creați un cont cu permisiuni de moderator. Dacă aveți deja cont pe civvic, rulați comanda MySQL:
#!sh
sudo cp tools/sql-functions.so /usr/lib/mysql/plugin/
}}}


Folosind contul root din MySQL, adăugați această funcție nouă la Mysql:
<syntaxhighlight lang="bash">
 
update User set admin = 1 where email = 'adresa_de_email';
{{{
</syntaxhighlight>
#!sql
create function dist2 returns integer soname "sql-functions.so";
}}}
 
Reporniți serverul de MysQL:
 
{{{
#!sh
sudo /etc/init.d/mysql restart
}}}
 
Descărcați baza de date a ''DEX online'' și importați-o în MySQL. De asemenea, migrați schema bazei de date la ultima versiune pentru cazul (improbabil) în care codul din Subversion este mai nou decât codul care rulează pe dexonline.ro.


{{{
Altfel, creați-vă un cont și apoi executați comanda de mai sus. Puteți să vă creați un cont chiar pe civvic.ro, altfel cel creat local se va pierde când veți recopia baza de date.
#!sh
wget -O /tmp/dex-database.sql.gz http://dexonline.ro/download/dex-database.sql.gz
gunzip /tmp/dex-database.sql.gz
mysql -u ... -p ... -e "create database DEX character set utf8"
mysql -u ... -p ... DEX < /tmp/dex-database.sql
cd tools
php migration.php
}}}
 
Dacă veți avea nevoie să testați pagini ale moderatorului, trebuie să vă creați un cont cu permisiuni de moderator. Dacă aveți deja cont pe DEX online, rulați comanda MySQL:
 
{{{
#!sql
update User set moderator = 31 where email = 'adresa_de_email';
}}}
 
Altfel, creați-vă un cont și apoi executați comanda de mai sus. Puteți să vă creați un cont chiar pe dexonline.ro, altfel cel creat local se va pierde când veți recopia baza de date. Există diferite niveluri de privilegii, pentru editarea definițiilor, editare LOC, gestionarea cuvântului zilei etc. Valoarea 31 le include pe toate (cu OR).


== Configurarea Apache ==
== Configurarea Apache ==
Linia 134: Linia 104:
Aceste instrucțiuni sunt pentru Apache cu mod_php5 sub Ubuntu. Le puteți folosi cu titlu orientativ pe orice alt sistem, dar fișierele exacte pe care trebuie să le modificați pot diferi. Toate comenzile și editările se execută ca root.
Aceste instrucțiuni sunt pentru Apache cu mod_php5 sub Ubuntu. Le puteți folosi cu titlu orientativ pe orice alt sistem, dar fișierele exacte pe care trebuie să le modificați pot diferi. Toate comenzile și editările se execută ca root.


* Permiteți execuția de cod PHP.
* Permiteți execuția de cod PHP.


{{{
<syntaxhighlight lang="bash">
#!sh
apt-get install libapache2-mod-php5
apt-get install libapache2-mod-php5
}}}
</syntaxhighlight>
 
* Activați modulul rewrite:
 
{{{
#!sh
a2enmod rewrite
}}}


* Numai pentru '''userdir''': Activați modulul userdir
* Numai pentru '''userdir''': Activați modulul userdir


{{{
<syntaxhighlight lang="bash">
#!sh
a2enmod userdir
a2enmod userdir
}}}
</syntaxhighlight>


* Numai pentru '''userdir''': În `/etc/apache2/mods-available/php5.conf` comentați secțiunea
* Numai pentru '''userdir''': În <tt>/etc/apache2/mods-available/php5.conf</tt> comentați secțiunea


{{{
<syntaxhighlight lang="apache">
# <IfModule mod_userdir.c>
# <IfModule mod_userdir.c>
#    <Directory /home/*/public_html>
#    <Directory /home/*/public_html>
Linia 163: Linia 124:
#    </Directory>
#    </Directory>
# </IfModule>
# </IfModule>
}}}
</syntaxhighlight>


* Numai pentru '''userdir''': Permiteți fișiere `.htaccess`. În `/etc/apache2/mods-available/userdir.conf` modificați secțiunea
* Numai pentru '''userdir''': Permiteți fișiere <tt>.htaccess</tt>. În <tt>/etc/apache2/mods-available/userdir.conf</tt> modificați secțiunea


{{{
<syntaxhighlight lang="apache">
<Directory /home/*/public_html>
<Directory /home/*/public_html>
     ...
     ...
Linia 173: Linia 134:
     ...
     ...
</Directory>
</Directory>
}}}
</syntaxhighlight>


* Numai pentru '''document root''': Permiteți fișiere `.htaccess`. În `/etc/apache2/sites-available/default` modificați secțiunea
* Numai pentru '''document root''': Permiteți fișiere <tt>.htaccess</tt>. În <tt>/etc/apache2/sites-available/default</tt> modificați secțiunea


{{{
<syntaxhighlight lang="apache">
<Directory /var/www/>
<Directory /var/www/>
     ...
     ...
Linia 183: Linia 144:
     ....
     ....
</Directory>
</Directory>
}}}
</syntaxhighlight>


* Alegeți setul de caractere UTF-8. În `/etc/apache2/conf.d/charset`, decomentați sau adăugați linia
* Alegeți setul de caractere UTF-8. În <tt>/etc/apache2/conf.d/charset</tt>, decomentați sau adăugați linia


{{{
<syntaxhighlight lang="apache">
AddDefaultCharset UTF-8
AddDefaultCharset UTF-8
}}}
</syntaxhighlight>
 
* Numai pentru '''userdir''', fără '''virtual host''': Editați `DEX/wwwbase/.htaccess` și decomentați/modificați linia:
 
{{{
RewriteBase /~user/DEX/wwwbase/
}}}


* Numai pentru '''virtual host''': Creați fișierul `/etc/apache2/sites-available/dex.domeniulmeu.com`:
* Numai pentru '''virtual host''': Creați fișierul <tt>/etc/apache2/sites-available/civvic.domeniulmeu.com</tt>:


{{{
<syntaxhighlight lang="apache">
<VirtualHost *:80>
<VirtualHost *:80>
         DocumentRoot /path/to/DEX/wwwbase
         DocumentRoot /path/to/civvic/www
         ServerName dex.domeniulmeu.com
         ServerName civvic.domeniulmeu.com
</VirtualHost>
</VirtualHost>
}}}
</syntaxhighlight>


apoi
apoi


{{{
<syntaxhighlight lang="bash">
#!sh
a2ensite civvic.domeniulmeu.com
a2ensite dex.domeniulmeu.com
</syntaxhighlight>
}}}


* Reporniți Apache:
* Reporniți Apache:


{{{
<syntaxhighlight lang="bash">
#!sh
/etc/init.d/apache2 restart
sudo /etc/init.d/apache2 restart
</syntaxhighlight>
}}}


* Accesați una din paginile
* Accesați una din paginile
  * '''userdir''': `http://localhost/~user/DEX/wwwbase`
** '''userdir''': <tt>http://localhost/~user/civvic/www</tt>
  * '''document root''': `http://localhost/DEX/wwwbase`
** '''document root''': <tt>http://localhost/civvic/www</tt>
  * '''virtual host''': `http://dex.domeniulmeu.com`
** '''virtual host''': <tt>http://civvic.domeniulmeu.com</tt>


Dacă întâmpinați probleme netratate aici, vă rugăm contactați-ne ca să actualizăm acest document.
Dacă întâmpinați probleme netratate aici, vă rugăm contactați-ne ca să actualizăm acest document.
Linia 231: Linia 184:
Pentru a ține ulterior clientul la zi, rulați:
Pentru a ține ulterior clientul la zi, rulați:


{{{
<syntaxhighlight lang="bash">
#!sh
svn update
svn update
cd tools
php tools/migration.php
php migration.php
</syntaxhighlight>
}}}


Modificările schemei bazei de date se fac exclusiv prin patchuri în directorul {{{patches/}}}. De aceea, ultimii pași nu sunt necesari decât atunci când apar fișiere noi în directorul {{{patches/}}}.
Modificările schemei bazei de date se fac exclusiv prin patchuri în directorul <tt>patches/</tt>. De aceea, ultimii pași nu sunt necesari decât atunci când apar fișiere noi în directorul <tt>patches/</tt>.


O situație mai delicată au fișierele {{{dex.conf}}} și {{{wwwbase/.htaccess}}}. Acestea nu sunt sub controlul lui Subversion, deoarece sunt prea dependente de sistem. Ele sunt copiate după fișierele-șablon {{{dex.conf.sample}}} și respectiv {{{docs/.htaccess}}}. Când fișierele-șablon se modifică, trebuie să încorporați noutățile și în fișierele propriu-zise.
O situație mai delicată o are fișierul <tt>civvic.conf</tt>. Acesta nu este sub controlul lui Subversion, deoarece este prea dependent de sistem. El este copiat după șablonul <tt>civvic.conf.sample</tt>. Când șablonul se modifică, trebuie să încorporați noutățile și în fișierul <tt>civvic.conf</tt>.


== Contribuții la baza de cod ==
== Contribuții la baza de cod ==


Accesul anonim la cod oferă doar drept de citire; nu veți avea permisiunea să rulați {{{svn commit}}}. Pentru a ne trimite modificările făcute, executați comanda:
Accesul anonim la cod oferă doar drept de citire; nu veți avea permisiunea să rulați <tt>svn commit</tt>. Pentru a ne trimite modificările făcute, executați comanda:


{{{
<syntaxhighlight lang="bash">
#!sh
svn diff > /tmp/diff.txt
svn diff > /tmp/diff.txt
}}}
</syntaxhighlight>


Apoi trimiteți-ne prin email fișierul {{{/tmp/diff.txt}}}. Atenție, trebuie să anexați fișierul separat, nu doar să îl includeți în corpul mesajului. De asemenea, trebuie să includeți separat orice fișiere nou adăugate -- Subversion nu le include automat în diff.
Apoi trimiteți-ne prin email fișierul <tt>/tmp/diff.txt</tt>. Atenție, trebuie să anexați fișierul separat, nu doar să îl includeți în corpul mesajului. De asemenea, trebuie să includeți separat orice fișiere nou adăugate -- Subversion nu le include automat în diff.


Dacă doriți să contribuiți pe termen lung, vă vom oferi (destul de ușor) drept de commit.
Dacă doriți să contribuiți pe termen lung, vă vom oferi (destul de ușor) drept de commit.

Versiunea de la data 30 martie 2012 18:15

Acces la codul sursă

Codul Civvic.ro este disponibil liber (și gratuit) sub licența GNU GPL. Datele sunt disponibile liber (și gratuit) sub licența Creative Commons Atribuire-FărăModificări 3.0 România (CC BY-ND 3.0). Iată cum puteți să creați o copie funcțională a Civvic.ro și să contribuiți cu cod.

Cerințe de sistem

Codul este dezvoltat pe un sisteme Ubuntu standard. Suntem încrezători că va merge și pe alte sisteme GNU/Linux. Aveți nevoie cel puțin de:

  • PHP >= 5.0
    • Modulele curl, mbstring și mysql sunt strict necesare.
    • Biblioteca Smarty este strict necesară.
  • MySQL >= 5.0
  • Apache HTTP Server >= 2.0
  • Subversion sau Git

Convenții de editare

  • 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 150 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.
  • După orice acoladă deschisă urmează o linie nouă.
  • Orice acoladă închisă este singură pe linia ei.

<syntaxhighlight lang="php"> <?php

if (($y > 3) && ($y < 10)) {

 while ($z < 10) {
   $z++;
   callMyFunction($y, $z);      
 }

}

?> </syntaxhighlight>

Variante de instalare

Există două variante de instalare a codului și un pas opțional pentru oricare dintre ele. Instrucțiunile de instalare depind în mică măsură de alegerea făcută.

  1. userdir: în directorul utilizatorului, de obicei /home/user/public_html/civvic. URL-ul de acces este http://localhost/~user/civvic/www
  2. document root: în directorul-rădăcină al lui Apache, de obicei /var/www/civvic. URL-ul de acces este http://localhost/civvic

Opțional:

  1. virtual host: pentru oricare din variantele 1 și 2, puteți crea un site virtual. URL-ul de acces este http://civvic.domeniulmeu.com (desigur, presupunând că dețineți domeniul domeniulmeu.com, ați creat subdomeniul civvic.domeniulmeu.com și sunteți pe o conexiune cu IP static).

Pe parcursul acestui document ne vom referi la aceste trei variante pentru instrucțiuni specifice.

Instalarea și configurarea codului și a bazei de date

Alegeți-vă directorul unde doriți să lucrați (userdir: /home/user/public_html/civvic sau document root: /var/www/civvic). Descărcați o copie a codului sursă:

<syntaxhighlight lang="bash"> cd /home/user/public_html

  1. sau cd /var/www

svn checkout http://voronet.francu.com/repos/civvic cd civvic </syntaxhighlight>

Dacă preferați Git în loc de Subversion, Alex Morega întreține și o clonă Git a codului:

<syntaxhighlight lang="bash"> git clone git://github.com/alex-morega/civvic cd civvic </syntaxhighlight>

Configurați codul pentru prima dată. Acest pas poate produce diverse erori, deoarece scriptul setup nu este bine pus la punct.

<syntaxhighlight lang="bash"> tools/setup.sh </syntaxhighlight>

Modificați fișierul civvic.conf conform cu setările sistemului. Acest fișier nu este sub controlul lui Subversion, deci este acceptabil să stocați parola pentru baza de date. În special:

  • Modificați valoarea variabilei database conform specificației DSN.
  • Indicați calea corectă spre fișierul Smarty.class.php.

Descărcați baza de date a Civvic.ro și importați-o în MySQL. De asemenea, migrați schema bazei de date la ultima versiune pentru cazul (improbabil) în care codul din Subversion este mai nou decât codul care rulează pe civvic.ro.

<syntaxhighlight lang="bash"> mysql -u ... -p ... -e "create database civvic character set utf8" wget -O /tmp/civvic-database-full.sql.gz http://civvic.ro/download/civvic-database-full.sql.gz zcat /tmp/civvic-database-full.sql.gz | mysql -u ... -p ... civvic php tools/migration.php </syntaxhighlight>

Dacă veți avea nevoie să testați pagini ale moderatorului, trebuie să vă creați un cont cu permisiuni de moderator. Dacă aveți deja cont pe civvic, rulați comanda MySQL:

<syntaxhighlight lang="bash"> update User set admin = 1 where email = 'adresa_de_email'; </syntaxhighlight>

Altfel, creați-vă un cont și apoi executați comanda de mai sus. Puteți să vă creați un cont chiar pe civvic.ro, altfel cel creat local se va pierde când veți recopia baza de date.

Configurarea Apache

Aceste instrucțiuni sunt pentru Apache cu mod_php5 sub Ubuntu. Le puteți folosi cu titlu orientativ pe orice alt sistem, dar fișierele exacte pe care trebuie să le modificați pot diferi. Toate comenzile și editările se execută ca root.

  • Permiteți execuția de cod PHP.

<syntaxhighlight lang="bash"> apt-get install libapache2-mod-php5 </syntaxhighlight>

  • Numai pentru userdir: Activați modulul userdir

<syntaxhighlight lang="bash"> a2enmod userdir </syntaxhighlight>

  • Numai pentru userdir: În /etc/apache2/mods-available/php5.conf comentați secțiunea

<syntaxhighlight lang="apache">

  1. <IfModule mod_userdir.c>
  2. <Directory /home/*/public_html>
  3. php_admin_value engine Off
  4. </Directory>
  5. </IfModule>

</syntaxhighlight>

  • Numai pentru userdir: Permiteți fișiere .htaccess. În /etc/apache2/mods-available/userdir.conf modificați secțiunea

<syntaxhighlight lang="apache"> <Directory /home/*/public_html>

   ...
   AllowOverride All
   ...

</Directory> </syntaxhighlight>

  • Numai pentru document root: Permiteți fișiere .htaccess. În /etc/apache2/sites-available/default modificați secțiunea

<syntaxhighlight lang="apache"> <Directory /var/www/>

   ...
   AllowOverride All
   ....

</Directory> </syntaxhighlight>

  • Alegeți setul de caractere UTF-8. În /etc/apache2/conf.d/charset, decomentați sau adăugați linia

<syntaxhighlight lang="apache"> AddDefaultCharset UTF-8 </syntaxhighlight>

  • Numai pentru virtual host: Creați fișierul /etc/apache2/sites-available/civvic.domeniulmeu.com:

<syntaxhighlight lang="apache"> <VirtualHost *:80>

       DocumentRoot /path/to/civvic/www
       ServerName civvic.domeniulmeu.com

</VirtualHost> </syntaxhighlight>

apoi

<syntaxhighlight lang="bash"> a2ensite civvic.domeniulmeu.com </syntaxhighlight>

  • Reporniți Apache:

<syntaxhighlight lang="bash"> /etc/init.d/apache2 restart </syntaxhighlight>

Dacă întâmpinați probleme netratate aici, vă rugăm contactați-ne ca să actualizăm acest document.

Ținerea la zi

Pentru a ține ulterior clientul la zi, rulați:

<syntaxhighlight lang="bash"> svn update php tools/migration.php </syntaxhighlight>

Modificările schemei bazei de date se fac exclusiv prin patchuri în directorul patches/. De aceea, ultimii pași nu sunt necesari decât atunci când apar fișiere noi în directorul patches/.

O situație mai delicată o are fișierul civvic.conf. Acesta nu este sub controlul lui Subversion, deoarece este prea dependent de sistem. El este copiat după șablonul civvic.conf.sample. Când șablonul se modifică, trebuie să încorporați noutățile și în fișierul civvic.conf.

Contribuții la baza de cod

Accesul anonim la cod oferă doar drept de citire; nu veți avea permisiunea să rulați svn commit. Pentru a ne trimite modificările făcute, executați comanda:

<syntaxhighlight lang="bash"> svn diff > /tmp/diff.txt </syntaxhighlight>

Apoi trimiteți-ne prin email fișierul /tmp/diff.txt. Atenție, trebuie să anexați fișierul separat, nu doar să îl includeți în corpul mesajului. De asemenea, trebuie să includeți separat orice fișiere nou adăugate -- Subversion nu le include automat în diff.

Dacă doriți să contribuiți pe termen lung, vă vom oferi (destul de ușor) drept de commit.