lunedì 17 gennaio 2011

Joomla security base

Premessa: questo post è in fase di revisione ed aggiornamento; vedrò di migliorarlo col tempo lasciando la data di prima pubblicazione.

Si, lo so, è già uscita la 1.6 stable, ma il processo di migrazione sarà lungo (ci sono addirittura moltissimi siti ancora in 1.0) e presumibilmente non doloroso, specie per i template.
Quindi, non è male intanto rivedere, assemblare e possibilmente completare in un unico post le varie checklist sui requisiti e le procedure di sicurezza minimi che un sito in Joomla 1.5.x DEVE possedere od attuare.
Tenete conto che molte di queste impostazioni possono essere ottenute sia sulla versione 1.5.x che sulla versione 1.6 caricando sul sito l'ottima estensione gratuita (nella versione base) Akeeba, sia nelle funzionalità Back up che Admin Tool
NB L'admin tool consente anche di effettuare l'aggiornamento fino all'ultima versione della 1.5.x. Nel caso della versione italiana, akeeba non riesce a fare l'aggiornamento in quanto punta ai server di Joomla.org.
Se volete usare questa funzionalità del tool dovete quindi aver installato la versione inglese da Joomla.org ed il package corrispondente alla lingua italiana per il back end.


INSTALLAZIONE

Prova locale
Effettuare sempre una prova in locale del sito per verificarne la funzionalità. Installare, sul proprio PC, LAMP/XAMPP od analoghi

Hosting
Nella scelta dello spazio web, nel caso di hosting condiviso, scegliere hoster:
  • che non siano troppo a buon mercato;
  • che forniscano spazio gestito da server *nix Red Hat / CentOS / Debian;
  • in grado di fornire servizi SFTP (secure FTP), cioè sistemi di scambio dati tra locale e remoto in condizioni di sicurezza, al fine di uploadare e downloadare i dati in modo più controllato
  • che abbiano impostato la direttiva PHP register_globals su OFF; ciò al fine di poter utilizzare le proprie specifiche impostazioni di .htaccess e php.ini (NB con php6 questo problema non si presenterà più);
  • che garantisca la disponibilità dell'ultimo aggiornamento dei sistemi operativi e dei servizi server side (apache, php, mysql, ecc.);
  • che informi correttamente sulla policy di sicurezza e sugli eventi, anche negativi, che lo riguardano, e che intervenga rapidaente anche per problemi che ci riguardano da loro individuati e ci informi adeguatamente;
  • che consentano l'accesso ai log di sistema, utile in caso di problemi al nostro sito;
  • che gestisca direttamente il centro dati e garantisca adeguata ridondanza e backups;
  • accertarsi di non utilizzare hoster che facciano condividere lo spazio a troppi siti, soprattutto se questi sono siti di spammers o di porno ad intenso traffico ( Verificare con http://www.robtex.com/dns/ )
  • che possano offrire soluzioni di server dedicato a costi ragionevoli ed alta qualità, utile in caso di crescita del sito e del traffico annesso;
Installazione core
Utilizzare sempre, ove possibile, la versione più aggiornate di Joomla e delle estensioni/plugins aggiuntivi che si intende utilizzare

Non usare jos_ come tag delle tabelle del database (feature Akeeba)
Non usare "jos_" come prefisso delle tabelle. Il prefisso è richiesto in fase di installazione di Joomla, per cui basterà modificarlo.
Se è già stata eseguita l'installazione seguire le seguenti istruzioni:
b) (browser) entrare in phpmyadmin --> selezionare il database da modificare --> selezionare "export" --> assegnare un nome specifico al database (file name template) --> dare "esegui" --> il file .sql verrà salvato nella cartella scelta
a) (browser) entrare nel sito come amministratore --> configurazione --> server
Nel riquadro "configurazione database" alla voce "prefisso database" modificare il prefisso con quello scelto (ad es pippo_ ) e salvare. Verrà (ovviamente) segnalato un errore di lettura del database
NB!! attenzione a riportare correttamente il nuovo prefisso nella fase successiva!!;
c) (window manager) selezionare il file .sql salvato e farne una copia di riserva (non si sa mai)
d) aprire il file .sql con gedit o simili  --> selezionare "sostituisci" --> inserire nel campo "cerca" il valore jos_ e nel campo sostituisci il nuovo prefisso (ad es pippo_) --> dare "sostituisci" --> ripetere l'operazione per verificare che tutto sia stato effettivamente sostituito --> uscire dalla finestra "sostituisci" --> salvare
d) (browser) tornare in phpmyadmin --> selezionare il database originario --> selezionare tutte le tabelle --> selezionare "elimina" (drop) --> dare "yes"; a questo punto avremo una scatola vuota, cioè un database privo di tabelle;
f) selezionare importa --> selezionare il file .sql modificato --> dare "esegui".

Qui un video che descrive la procedura

Utilizzare nomi utente e password diversi e complessi per sito e database
Nome utente e password del database, e nome utente (di default admin, modificabile in seguito) e password dell'amministratore del sito, devono essere molto diversi tra loro e complessi (sequenze non intuitive di caratteri maiuscoli e/o minuscoli e simboli e numeri), al fine di rendere più complicati eventuali attacchi brute force


POST INSTALLAZIONE

Usare estensioni fidate
Non utilizzare estensioni non fidate, o perlomeno di cui non si può essere certi dei requisiti di qualità e sicurezza con cui sono state scritte, specie se provenienti da repository non ufficiali di Joomla.

Aggornamenti periodici
Mantenere sempre aggiornate la versione di Joomla in uso e quelle dei componenti aggiuntivi utilizzati e da utilizzarsi, ed effettuare gli upgrade appena disponibili.


Cancellare superadmin userid 62 e rinominare l'utente amministratore (feature Akeeba)
Andare in Sito --> Gestione utenti
Creare un nuovo utente con un suo nome, un suo nome utente e una sua password (ricordatevi tutto: sarà il nuovo login di amministratore) utilizzando termini insoliti e non riconoscibili (ad es non usate admin :-D ); inserite la mail di amministrazione, selezionate Super Administrator, mettete su NO il blocca utente e su SI ricevi le mail di sistema.
--> (NB se per caso avete la necessità di utilizzare la stessa mail del vecchio administrator, inserendola qui il sistema vi impedirà di salvare a causa della presenza dello stesso parametro nell'utente già presente.
A questo punto è necessario tornare nel menu utente, selezionare administrator (quello attualmente loggato) e modificare i parametri (basta aggiungere una lettera a caso in quelli di questo amministratore) che vi interessa riportare nel nuovo amministratore, in modo che non risultino identici). Create quindi il nuovo utente con i parametri che vi interessano<--
A questo punto avete due super amministratori, ma NE VEDRETE SOLO UNO, cioè quello con cui vi siete loggati.
Date esci in modo da tornare al login e loggatevi con i nuovi parametri che avete impostato (nuovo nome utente e nuova password)
Andate in Sito --> Gestione utenti e vedrete il vostro amministratore (quello con cui vi siete loggato) con user id 63 e quello precedente, che in questo momento ha i privilegi di administrator e non di super administrator, con l'user id 62.
A questo punto potete eliminare il vecchio amministratore o ridurne i privilegi a quelli di semplice utente.
Ripetendo la procedura otterrete un amministratore con user id 64, 65 ecc.


Permessi (feature Akeeba)
Impostare a file e cartelle i giusti permessi al fine di incrementare la sicurezza; normalmente sono: file = 644 e directory 755

Disabilitare componenti inutili
Pannello di controllo --> gestione Estensioni --> disabilita

Back up sito e database (feature Akeeba)
Effettuare back up sistematici del sito e del database e conservare le subversion !
Installare l'estensione akeebabackup e akeeba site admin

Abilitare htaccess
Entrare nella cartella del sito con i privilegi di aministratore e rinominare htaccess.txt in .htaccess
Verificare che sussistano i permessi per il server web (apache o www-data)
(browser) entrare nel sito come amministratore --> configurazione --> sito e nel modulo Configurazione SEO selezionare l'opzione "utilizza mod_rewrite"

Eliminare template position (tp=1)
Inserire in .htaccess :

# Start ?tp=1 prevention #
RewriteCond %{QUERY_STRING} tp=(.*)
RewriteRule ^(.*)$ index.php [F,L]
# End ?tp=1 prevention #

Disabilitare ricerca immagini dal file robots
Se non esiste, creare nella directory principale un file chiamato "robots.txt"
“...
User-agent: *
Disallow: /administrator/
Disallow: /cache/
Disallow: /components/
Disallow: /images/
Disallow: /includes/
Disallow: /installation/
Disallow: /language/
..."

Rimuovere Generation tag
templates/name-template/index.php :
riportare nell'header
<?php
// Remove the generator meta tag
$this->setGenerator(null);
?>

o, in modo più divertente (ma attenzione ad eventuali conflitti)  :-)
<?php
// Remove the generator meta tag
$this->setGenerator(Drupal);
?>

Nascondere la versione
Nel file .htaccess inserire:
<Files ~ "\.xml$">
Order allow,deny
Deny from all
Satisfy All
</Files>
E' probabile che queste linee siano già presenti entro il file sotto la voce :
## Deny access to extension xml files (uncomment out to activate)
Basta quindi eliminare il # iniziale per decommentarle e renderle attive

Settaggi Joomla e Php (feature Akeeba)
Impostare i parametri del sito in modo da incrementarne al massimo la sicurezza

Ricostruzione totale in caso di defacciamento od altro hackeraggio
Controllare i logs di sistema, modificare le password, rimuovere l'intera directory e ricostruire l'intero sito a partire da un back up "pulito"

mercoledì 12 gennaio 2011

Installare Joomla in locale su Ubuntu step by step con virtual host

Ma come, mi direte, ti dai alla concorrenza ? :-DDD
E poi, con tutti gli how to che ci sono per Ubuntu ?
Si, ma stavolta è per una buona causa (e per risolvere qualche piccolo tips... ;-) )
In ogni caso, sarò più breve dell'altra volta :-P

Installare LAMP


Aprire sistema --> amministrazione --> gestore pacchetti (synaptic)
Selezionare modifica --> selezionare per attività
Si aprirà una finestra: spuntare la voce LAMP server e dare OK.

In caso questa opzione non sia presente si può seguire la seguente procedura
NB marcatevi i dati (specialmente le password) che vi verranno via via richiesti, o diventerete matti :-| .


Installare Apache

Apache è il server web per eccellenza ed è quello che stiamo per installare, ma non è l'unico: ci sono anche Cherokee, Lighthttp, ecc., a vostra scelta.
Da terminale dare:

sudo apt-get install apache2

--> password root


Testare Apache

Copiare (o digitare) nello spazio URL del browser:

http://localhost/

Dovrà comparire la scritta "It works!"

Installare PHP

Da terminale dare:

sudo apt-get install php5 libapache2-mod-php5

Quindi riavviare Apache. Da terminale dare:

sudo /etc/init.d/apache2 restart


Verificare installazione PHP

Da terminale dare:

sudo gedit /var/www/testphp.php

per aprire un file chiamato phptest.php.
Copiare ed incollare entro il file la stringa:

<?php phpinfo(); ?>

Salvare e chiudere il file
Per verifica, copiare (o digitare) nello spazio URL del browser:

http://localhost/testphp.php


Installare MySQL

Da terminale, dare:

sudo apt-get install mysql-server

MySQL dovrebbe partire in automatico per richiedere l'impostazione della password dell'amministratore del database server. Qualora non succedesse, allora, da terminale dare:

mysql -u root

Al prompt di mysql inserire la seguente linea, inserendo al posto di yourpassword la nostra password scelta

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yourpassword');

NB1 il punto e virgola finale è essenziale per comunicare a mysql la chiusura del comando

NB2 in caso di problemi con la password di mysql possiamo riconfigurare il servizio dando da terminale

sudo dpkg-reconfigure mysql-server

--> /// passo opzionale: se vogliamo pubblicare nella nostra rete privata (o in internet) il nostro server, va modificato il “Bind Address”, cioè l'indirizzo di rete di loopback del nostro pc al fine di farlo riconoscere dagli altri computer; nel caso di una rete privata è sufficiente inserire l'indirizzo di rete stabilito dal router per il nostro pc (ad es. 192.168.1.4).
Da terminale dare:

gksudo gedit /etc/mysql/my.cnf

Cambiare quindi la linea

bind-address = 127.0.0.1

sostituendo 127.0.0.1 (tipicamente il localhost) con l'indirizzo adeguato. Fine passo opzionale /// <--
.

Installare PhpMyAdmin

PhpMyAdmin è un ottimo (e semplice) tool lanciabile da browser per gestire il database server MySQL
Da terminale dare:

sudo apt-get install libapache2-mod-auth-mysql php5-mysql phpmyadmin

Per far si che php possa lavorare con mysql bisogna modificare il file php.ini.
Per editarlo, dare da terminale:

gksudo gedit /etc/php5/apache2/php.ini

e decommentiamo (cioè togliamo il punto e virgola iniziale) dalla linea

;extension=mysql.so

(NB per trovare rapidamente la linea possiamo usare la funzione Trova... dal menu Cerca di Gedit inserendo la parola extension)
così da farla diventare:

extension=mysql.so

Salviamo e usciamo da Gedit.
Riavviamo infine Apache. Da terminale dare:

sudo /etc/init.d/apache2 restart

Verifichiamo il funzionamento digitando nel browser

http://localhost/phpmyadmin

Digitiamo la password per loggarci come amministratore di server database ed inseriamola nella finestra che comparirà.

Fine installazione LAMP

Installare Joomla
Scarichiamo la versione di Joomla che ci interessa (supponiamo che si chiami Joomla_1.x.x_ita - Stable) in una cartella qualunque (ad es. /home/utente/scaricati) e scompattiamola.
Per scompattarla, possiamo farlo come utente da terminale

cd /home/utente/scaricati

tar -xvzf Joomla_1 .x.x _ita – Stable.tgz

oppure possiamo farlo graficamente.
Apriamo Nautilus (o Dolphin o Konqueror o altro window manager), spostiamoci in scaricati, diamo tasto destro sul file archivio e digitiamo 'Estrai qui' (con Konqueror, scegliamo l'opzione 'autorileva la sottocartella')
Quindi apriamo Nautilus in modalità root (da terminale: sudo nautilus) o l'ottimo Krusader in modalità root (si, lo so, usare il window manager per fare 'ste cose non è da geek, ma chissenefrega, ogni tanto bisogna pur cambiare, no ? :-D ), copiamo la cartella estratta dentro la cartella /var/www/ e rinominiamola come ci interessa (ad es miojoomla)
Diamo quindi ad Apache (ricordiamoci che il trasferimento lo abbiamo fatto come root, cui appartiene la cartella) il controllo della cartella miojoomla modificando il proprietario ed il gruppo.
Verifichiamo con

cat /etc/group

che esista www-data, cioè l'utente speciale, con relativo gruppo, che Apache crea per scrivere nella cartella /var/www/.
Una volta verificato consegnamogli il controllo della cartella dando:

sudo chown -R www-data:www-data /var/www/miojoomla


Creare il database mysql per Joomla e l'utente amministratore del database
NB // --> Nota: Joomla è impostato con set di caratteri UTF. Spesso invece il database MySQL database viene impostato di default con collation latin1_xxxxxx_ci e ciò può causare problemi di visualizzazione nell'utilizzo di caratteri non latini (ad es cirillico).
Per fare in modo che Jomla lavori correttamente è necessario scegliere, all'atto della creazione del database, il collation UTF-8 Unicode (utf8) (va bene utf8-general-ci)
In caso di database già creati, sarà necessario effettuare il back up del database (non si sa mai) ed in seguito lanciare, per ogni tabella del database, la seguente query SQL al fine di modificarne l'impostazione:

ALTER TABLE your_table_name CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci;

fine nota <-- //

Nel browser digitiamo

http://localhost/phpmyadmin


inseriamo il nome scelto per il database (ad es joomladb), verifichiamo la collation utf8-general-ci e diamo Crea

Quindi selezioniamo il database nell'elenco sulla sinistra, scegliamo 'Privilegi', selezioniamo 'Crea un nuovo utente' (sarà l'utente che gestirà il database di Joomla durante l'amministrazione del sito Joomla)
Nella schermata inseriamo nel campo 'nome' il nome scelto (ad es joomlauserdb), nel campo 'host' inseriamo localhost, e nei campi password la password scelta (ad es (joomlapwdb), lasciando i grant (i privilegi) così come impostati di default, quindi salviamo.

NB la stessa operazione può essere fatta da linea di comando dando

mysql -u root -

per entrare come amministratore di mysql. Quindi (enter dopo ogni riga):

CREATE DATABASE joomladb;

GRANT ALL on joomladb.* TO ’ joomlauserdb’@’localhost’ IDENTIFIED BY ’joomlapwdb ’;

FLUSH PRIVILEGES;

EXIT;

Installare Joomla
Digitiamo


http://localhost/miojoomla ed avviamo l'installazione

Al termine, sarà necessario rimuovere la cartella installation presente dentro /var/www/miojoomla.
Potremo farlo tramite sudo Nautilus o Krusader root, oppure da terminale

sudo rm - R / var/www/miojoomla/installation

Fatto ! :-)


Per chi volesse trasferire in locale una installazione già esistente sul server sarà necessario:
- trasferire la cartella del sito dal server remoto via ftp in una cartella utente locale
- spostare (come root) la cartella in /var/www/
- trasferire i permessi della cartella ad Apache
- scaricare il database del sito, ad es via phpmyadmin fornito dal server del sito con l'opzione esporta (semprechè non sia stato impostato già il back up automatico quotidiano via email)
- importare il database nel server mysql locale con phpmyadmin locale
- verificare l'avvenuta associazione loggandosi nel sito come amministratore

PS addendum del 13/07/2011

Gestione dei virtual host

E' una cosa abbastanza semplice e nota, ma un breve riassunto posizionato qui penso possa essere di utilità, specie per chi trasferisce più di un sito da remoto a locale.

Qui una valida guida

Passo primo: verifichiamo che apache2 sia in grado di vedere i virtual host.

sudo gedit /etc/apache2/apache2.conf

la linea finale

Include /etc/apache2/sites-enabled/

deve essere decommentata (cioè non deve iniziare con un #)
Se c'è, rimuoviamolo e salviamo.
In questo modo apache2 è in grado di leggere i puntatori dei files di configurazione presenti nella cartella /etc/apache2/sites-enabled/ che corrispondono ai virtual host che ci interessano.

Passo secondo: creiamo i files di configurazione dei virtual host

Assumiamo che:
- la cartella contenente il sito (o che vogliamo contenga il sito se dobbiamo ancora crearlo) sia nominata miosito1
- la cartella sia posizionata entro la cartella /var/www - NB solo root ed apache2 possono scrivere dentro questa cartella - è possibile spostare la cartella in questa posizione con un file manager con privilegi di root, dando ad esempio sudo nautilus
- il proprietario della cartella miosito1 sia apache2 ed abbia su questa ed il suo contenuto i permessi adeguati (755); lo si può verificare, ed eventualmente modificare, graficamente chiedendo le proprietà alla cartella con il sudo nautilus di prima, oppure nel caso in cui si voglia usare la console diamo:

sudo chown -R www-data:www-data /var/www/

Creiamo a questo punto il file di configurazione di miosito1

sudo gedit /etc/apache2/sites-avaiable/miosito1

ed inseriamo 

<VirtualHost miosito1>

ServerAdmin webmaster@localhost
ServerName miosito1
#We want to be able to access the web site using www.miosito1 or miosito1
ServerAlias www.miosito1
DocumentRoot /var/www/miosito1
Errorlog /var/log/apache2/error.log
#if using awstats
ScriptAlias /awstats/ /usr/lib/cgi-bin/
#we want specific log file for this server
CustomLog /var/log/apache2/other_vhost_access.log combined

</VirtualHost>

Verifichiamo che nella cartella /etc/apache2/sites-enabled sia presente il link simbolico al file miosito1 (che abbiamo creato nella cartella sites-avaiable); se non ci fosse, creiamolo.

Passo terzo: creiamo gli alias, in modo da far capire al sistema di cercare il sito nella macchina locale e non in rete

sudo gedit /etc/hosts

ed aggiungiamo

127.0.0.1 miosito1
127.0.0.1 www.miosito1

quindi salviamo. In realtà non servono entrambe le linee, ma se vogliamo che il server trovi comunque la nostra cartella lasciamocele tutte e due, che non si sa mai :-).

Passo quarto: abilitiamo il virtual host

sudo a2ensite miosito1

//////////////// Nel caso in cui avessimo bisogno di disabilitarlo
//////////////// sudo a2dissite miosito1

infine riavviamo apache2

sudo /etc/init.d/apache2 restart

Fatto. Carichiamo il sito, e l'eventuale database, andiamo nel browser e digitiamo

http://localhost/miosito1

ed il sito magicamente comparirà

Siti dinamici locali: utenti database ed utenti sito

A volte sento un po' di confusione nella comprensione dell'individuazione dei ruoli di utente se si devono gestire più siti nello stesso server web, specie se in locale per fare tutte le prove del caso.

Per questo motivo ho scritto queste brevi note di chiarimento, sperando che siano utili.
Prendo come esempio di base un'installazione in locale di Joomla, ma il discorso può essere esteso ovviamente ad altri siti dinamici.

Il nome utente e la password del principale utente del database di Joomla, ed il nome dell'amministratore e la relativa password necessari per entrare nel sito con i privilegi di amministrazione NON SONO LA STESSA COSA.
Nulla ci impedisce di inserire gli stessi parametri (lo stesso nome e la stessa password in entrambi i casi, anche se sotto il profilo della sicurezza è una stupidaggine) ma l'importante è comprendere la distinzione fra questi.
Per chiarire meglio, riassumiamo le funzioni:
Nel mysql server, che può contenere numerosi database, esistono:
  • l'utente principale (ordinariamente, ma non necessariamente, chiamato root) con la sua password, che può accedere al server mysql via terminale o via http://localhost/phpmyadmin; questo utente gestisce TUTTI i database presenti nel server, non solo quello di Joomla, ed infatti è presente in TUTTI i database tra quelli elencati; per verificarlo, una volta entrati in phpmyadmin con questi privilegi, selezioniamo un database alla volta e riscontriamo la presenza di questo utente alla voce 'privilegi';
  • gli utenti, con la loro password (solitamente, ma non esclusivamente, uno per ogni database), che possono accedere ad uno specifico database per amministrarlo (questi utenti devono essere impostati in ogni specifico database); per ogni sito presente (lo stesso server web può ospitare molti siti), lo specifico utente viene utilizzato direttamente dal sito stesso in fase di amministrazione dello specifico database dello specifico sito, tanto è vero che bisogna impostarlo all'atto della configurazione iniziale (in altre parole, bisogna dire al sito quale è il database associato e con quale utente amministrativo poter gestire i dati).

Per quanto riguarda il sito, invece, esiste l'utente amministratore, con la sua password, che è l'unico a poter amministrare il sito entrando dal back end (le cartelle aministrative; in locale: http://localhost/nomesito/administrator), e gli utenti, con le loro password, che possono entrare nelle loro aree riservate attraverso il front end (il login entro il sito visualizzabile dal browser) senza privilegi di amministrazione


Per chiarire meglio, vediamo un esempio (NB tutti i nomi e le password di seguito riportati sono casuali, sono utilizzati solo a titolo di esempio e, soprattutto, NON rispettano i requisiti minimi di sicurezza, quindi NON USATELI).
Nel server web locale sono stati caricati, ancora da installare, un sito chiamato Joomla (CMS) ed un sito chiamato ZenCart (eCommerce) (per 'sito chiamato' si intende il nome della cartella che avremo caricato nella cartella root del server web, che di default è posizionata in /var/www/ ma che abbiamo visto poter essere posizionata dove ci pare).
Nel server database mysql locale dovranno essere quindi creati, prima di ogni altra cosa, due database (oltre quelli di default): joomladb e zencartdb.
L'utente chiamato root, con password primo, è quello che può gestire il server database, e quindi può creare e modificare tutti i database, ad es. attraverso http://localhost/phpmyadmin.
L'utente root entra nel server e crea i database; una volta creati, entra in ognuno di questi, seleziona i privilegi e crea il rispettivo utente amministratore dello specifico database.
Per il sito Joomla, crea nel database joomladb l'utente chiamato joomlauserdb, con password joomlapwdb; questo è colui che può gestire il solo database joomladb.
Per il sito ZenCart, crea nel database zencartdb l'utente chiamato zencartuserdb, con password zencartpwdb; questo è colui che può gestire il solo database zencartdb.

Passiamo ai siti.
In fase di installazione, ogni sito chiederà il nome dell'amministratore del sito, con la sua password, per riconoscere chi può entrare nel back end del sito con privilegi di amministratore per modificarlo.
Nel caso di Joomla scegliamo l'utente joomlaadmim con password joomlapwadmin; in Zencart scegliamo l'utente zencartadmin con password zencartpwadmin.
Sempre durante l'installazione, ogni sito chiederà quale è il database associato e quale è l'utente che può amministrarlo; alla richiesta, inseriamo i dati impostati nella creazione dei database.
A questo punto avremo:
  • il sito Joomla (http://localhost/Joomla), che verrà amministrato dall'utente joomlaadmim con password joomlapwadmin (attraverso http://localhost/Joomla/administrator/), e che salverà i dati nel database joomladb attraverso l'utente joomlauserdb con password joomlapwdb;
  • il sito ZenCart, (http://localhost/ZenCart), che verrà amministrato dall'utente zencartadmin con password zencartpwadmin (attraverso http://localhost/ZenCart/admin), e che salverà i dati nel database zencartdb attraverso l'utente zencartuserdb con password zencartpwdb;
Spero di essere stato chiaro :-D

Buon sito a tutti