Installare Joomla! su Linux (Ubuntu)

Transcript

Installare Joomla! su Linux (Ubuntu)
Installare Joomla! su Linux (Ubuntu)∗
di Salvatore Schirone
versione 2009.05
Sommario
In questo piccolo tutorial viene mostrato l’instalazione in locale di joomla!
in ambinente Linux. Si farà riferimento esplicito alla distribuzione Ubuntu,
versione 8.10, fornendo indicazioni generali valide per ogni distribuzione.
Per prima cosa, se non si dispone già di una versione server di Linux installata,
ci servono i pacchetti per Apache, PHP e MySQL. Un metodo rapido per farlo è installare XAMPP, seguendo le indicazioni ricavabili dal sito: http://www.
apachefriends.org/it/xampp-linux.html. Questa soluzione però, come viene
indicato anche nel sito del produttore, è da adottare solo in ambiente di sviluppo e
non per la produzione, cito testualmente:
XAMPP è configurato per essere il più aperto possibile e consentire allo
sviluppatore di fare quello che vuole. Negli ambienti di sviluppo questo è
ottimo ma in un ambiente di produzione potrebbe essere fatale.
Segue l’elenco delle falle di sicurezza e l’indicazione di un comando per risolverne
“la maggior parte”!? Inoltre, malgrado la dichiarata “apertura”, molti utenti hanno
comunque incontrato difficoltà ad installare joomla, soprattutto per via dei permessi
da attribuire alle varie cartelle del CMS.
A questo punto ci siamo convinti che la soluzione migliore da adottare sia installare un completo ambiente LAMP, utilizzando i repository della nostra distribuzione. Per semplificare la procedure facciamo riferimento alla distribuzione Ubuntu,
indicando, quando le cose divergessero, procedure diverse.
I software da installare sono sostanzialmente tre: il web-server Apache, l’interprete PHP e il database MySQL. Possiamo usare il nostro gestore di pacchetti, sia
che si tratti di rpm, in distribuzioni Red Hat e derivate, sia che si tratti di deb,
Debian e simili, tra cui, appunto Ubuntu. Usando ad esempio un frontend grafico
∗
Questo tutorial è stato sviluppato sulle indicazioni di Daniele, nikname: jepessen sul forum
Ubuntu-it: http://forum.ubuntu-it.org/index.php/topic,190663.0/all.html, che si ringrazia sentitamente insieme a Lorenzo e a tutti gli amici del forum lezionionline.net. Il presente tutorial è
rilasciato sotto Licenza Creative Commons: http://creativecommons.org/licenses/by/3.0/
1
come Synaptic, facciamo una ricerca e lasciamo al gestore stesso l’individuazione delle librerie e le dipendenze dei vari pacchetti indispensabili al corretto funzionamento
dei nostri programmi. Ubuntu ci offre una scorciatoria per installare facilmente
tutto l’ambiente LAMP in un paio di click.1 Apriamo il gestore pacchetti synaptic: Sistema -> Amministrazione -> Gestore pacchetti Synaptic Dal menu
Modifica->marca i pacchetti per attività Nella finestra che ci si presenta selezioniamo LAMP.
Vengono installati ben 16 pacchetti. Subito dopo ci viene chiesta la nuova password di root per l’accesso al database MySQL, una nuova schermata ci chiederà di
riperterla per confermare
1
Si ringrazia Lorenzo, nickname l.cupe, per averci suggerito sul forum www.lezionionline.net,
sezione PiacereLinux, questa pratica soluzione.
2
Tutto è stato installato e configurato correttamente. Infatti se puntiamo il nostro
browser su http://localhost/ vediamo la pagina di default, presente in /var/www/index.html che ci assicurata che tutto è ok. Per fare in modo che anche l’interprete
PHP e il server MySQL siano a posto dobbiamo riavviare il sistema. Ora davvero è
tutto pronto per installare joomla.
Se invece amiamo l’immediatezza della shell, possiamo eseguire da linea di comando:
sudo tasksel install lamp - server
taskshel è un manager per meta-pacchetti, cioè gruppi di pacchetti per specifiche attività. Lanciato con la seguente con l’opzione --list-tasks visualizza
esattamente i vari gruppi di pacchetti elencati con synaptic:
sudo tasksel -- list - tasks
otteniamo il seguente output:
u
u
i
u
u
u
i
i
u
u
u
u
u
u
u
u
u
u
u
u
u
i
u
u
u
u
u
u
u
u
u
u
dns - server
DNS server
edubuntu - server
Edubuntu server
lamp - server
LAMP server
mail - server
Mail server
openssh - server
OpenSSH server
postgresql - server
PostgreSQL database
print - server Print server
samba - server Samba File server
ubuntustudio - graphics 2 D /3 D creation and editing suite
ubuntustudio - audio
Audio creation and editing suite
edubuntu - desktop - kde Edubuntu KDE desktop
edubuntu - desktop - addon
Edubuntu desktop
gobuntu - desktop
Gobuntu desktop
kubuntu - kde4 - desktop Kubuntu KDE 4 desktop
kubuntu - desktop
Kubuntu desktop
ubuntustudio - audio - plugins
LADSPA and DSSI audio plugins
mythbuntu - desktop
Mythbuntu additional roles
mythbuntu - frontend
Mythbuntu frontend
mythbuntu - backend - master
Mythbuntu master backend
mythbuntu - backend - slave
Mythbuntu slave backend
ubuntustudio - desktop Ubuntu Studio desktop
ubuntu - desktop
Ubuntu desktop
ubuntustudio - video
Video creation and editing suite
xubuntu - desktop
Xubuntu desktop
edubuntu - live Edubuntu live CD
gobuntu - live Gobuntu live CD
kubuntu - kde4 - live
Kubuntu KDE 4 live CD
kubuntu - live Kubuntu live CD
mythbuntu - live
Mythbuntu live CD
ubuntu - live
Ubuntu live CD
ubuntu - dvd - live
Ubuntu live DVD
xubuntu - live Xubuntu live CD
3
Se volessimo, invece installare i singoli pacchetti, possiamo usare il metodo
tradizionale, digitando (tutto su una linea sola!):
sudo apt - get install apache2 apache2 - mpm - prefork
mysql - server mysql - client php5 php5 - mysql
libapache2 - mod - php5 php5 - cgi php5 - gd php5 - cli
Il pacchetto php5-mysql, ad esempio, è quello che fa da connettore fra php e
mysql. Durante l’installazione di mysql verrà chiesto di introdurre una password,
che è quella per l’utente principale di mysql (l’equivalente dell’amministratore linux).
Digitarne una, e soprattutto poi ricordarsela.
Potremmo decidere di installare anche phpmyadmin che è un frontend in php al
database, per gestire in modo facile e visuale i nostri database. XAMPP, contiene
molti altri programmi accessori e utility, non strettamente necessari all’installazione,
alla configurazione ed amministrazione di Joomla. Quelli da noi installati sono i
soli strattamente necessari. In questo tutorial non ce ne occupiamo, preferendo
utilizzare, quanto più possibile la linea di comando, sia per mantenere uno standard
generale, sia per conoscere più a fondo i concetti che stanno alla base dei programmi
che spesso utilizziamo in modo automatico.
Possiamo verificare che tutto sia in ordine lanciando il comando:
mysql -u < nomeutenteScelto > -p < passwordScelta >
Se riceviamo il pronpt di mysql, vuol dire che è tutto a posto e possiamo anche
uscire con il comando \q oppure quit:
mysql > quite
Bye
salvatore@salvatore - desktop :\ $
Possiamo verificare se ci sono database già inseriti con il comando:
mysql > SHOW DATABASES ;
Potremmo trovarne qualcuno installato di default, ad esempio, “information_schema”.
Questi database sono utili da esplorare per imparare come sono organizzate le
tabelle.
Dovremmo verificare anche che i nostro server Apache sia in esecuzione e che
php sia utilizzabile. Per farlo puntiamo il nostro browser su localhost:
http :// localhost
dovremmo visualizzare il testo: It works! Che ci assicura che Apache e in ascolto.
Per verificare se anche php è ok, possiamo provare ad eseguire il nostro primo script.
Creiamo nella cartella del nostro server che in Ubuntu è /var/www, un file php, ad
esempio phpinfo.php con il seguente script:
<? php phpinfo (); ? >
puntando il browser su “http://localhost/phpinfo.php” dovremmo ottenere tutte le
informazioni sulla versione e configurazione del php e di tutte le librerie installate.
4
Fatto questo, può cominciare l’installare di joomla. Quindi si scarica il pacchetto.
Poi si crea in /var/www una cartella d’installazione che chiamiamo semplicemente
joomla:
sudo mkdir / var / www / joomla
Copiamoci dentro il file d’installazione che abbiamo scaricato dal sito di joomla:
sudo cp Joomla_1 .5.7 _ita - Stable . tgz / var / www / joomla /.
A questo punto, lo scompattiamo:
cd / var / www / joomla
sudo tar xvzf Joomla_1 .5.7 _ita - Stable . tgz
Queste operazioni le abbiamo fatte come utente root perché in quanto utente
semplice non abbiamo i permessi di scrittura nella cartella /var/www.
Adesso, la maggior parte di quelli che installano joomla su Ubuntu fanno un bel
sudo chmod -R 777 / var / www / joomla
e la fanno finita lì. Questo è SBAGLIATISSIMO!!! anche se funziona. Infatti in
questo modo chiunque abbia un minimo di accesso al server, anche dall’esterno,
potrebbe prendere il controllo totale del nostro server.
Bisogna sapere che Apache ha una particolarità, configura un utente speciale che
ha i permessi nella cartella /var/www. Nel caso di Utuntu questo utente è wwwdata, per altre distribuzione potrebbe chiamarsi “apache” o altro. Per saperlo date
il comando:
cat / etc / group
Vi troveremo un gruppo utenti che potrà chiamarsi apache o, come nel caso di
Ubunbtu www-data. Quando si esegue il comando chmod 777 si danno permessi a
tutti ed ovviamente anche a wwwdata, per questo poi funziona.
Per un’installazione con i permessi corretti, invece, occorre semplicemente cambiare il proprietario e il gruppo di appartenenza per tutti i file. Questo si fa con il
comando chown:
sudo chown -R www - data : www - data / var / www / joomla
L’utente www-data a questo punto ha tutti i permessi giusti per accedere alla
cartella del server e l’installazione di joomla può procedere senza intoppi.
5
L’unico inconveniente che potremmo incontrare nelle fasi di installazione, riguarda il file configuration.php che ancora non esiste. Nella
prova fatta su una installazione nuova, ciò non si è verificato, tuttavia in caso analogo, sappiamo che Joomla ci permette di avere, come
ben documentato, un output del file in un frame, che possiamo copiare per crearlo manualmente. Questo succede quando il server non ci
permette di scrivere nella cartella. Per superare anche questa difficoltà possiamo crearlo preventivamente. Stando all’interno della nostra directory di
installazione, digitiamo:
sudo touch configuration.php
sudo chmod +x configuration.php
sudo chown www-data configuration.php
A questo punto, la nostra installazione dovrebbe procedere tranquillamente. Ma
se vogliamo essere davvero pignoli, dovremmo creare un database. Potremmo indicare il nome nello step di installazione, ma questo non è il procedimento regolare da
farsi quando installiamo su server remoto , perchè tale database con relativo host
username e password ci vengono forniti dall’hosting. Quindi creiamo prima il nostro
database. Accedere quindi a MySQL come amministratore da terminale:
mysql -u root -p
Verrà richiesta la password specificata in fase d’installazione. Per utilizzare joomla, occorre creare un database dedicato, ed è anche altamente consigliato avere
un utente dedicato, che abbia poteri di combinare pasticci solo in quel specifico
database:
CREATE DATABASE joomladatabase ;
Fatto questo, occorre creare l’utente che abbia accesso a questo database:
GRANT ALL on joomladatabase .* TO ’ utentejoomla ’@ ’ localhost ’
IDENTIFIED BY ’ passwordjoomla ’;
Il comando significa “Permetti tutto quanto, in ogni tabella del database joomladatabase, all’utente locale utentejoomla, indentificato dalla password specificata”.
Gli apici vanno conservati, quindi se l’utente è per esempio gianni, bisogna scrivere
’gianni’@’localhost’.
A questo punto si esce da mysql (comando \q ed invio), e si va nella pagina
d’installazione di joomla digitando http://localhost/joomla. Partirà in questo modo la canonica procedura d’installazione che ben conosciamo. La riportiamo per
completezza:
1. Scegliere Italiano, ed andare avanti
2. Dovrebbe essere nella schermata successiva tutto positivo: potrebbe spuntare
solo un NO in ’display errors’, che è una configurazione di PHP. Questo non
crea problemi, solo ci mostrerà gli errori se qualche script fallisce, cosa che non
ci dispiace. Avanti
6
3. Viene mostrata la licenza, ancora avanti
4. Impostare il database: tipo database è mysql, mentre il nome host è localhost
(dato che il database gira sulla stessa macchina del web server). Il nome utente
è quello specificato con il comando grant, ovvero utentejoomla nel nostro caso,
e la password idem, quindi passwordjoomla, nome database: joomladatabase
5. Non si ha bisogno di attivare il layer FTP per questa installazione, quindi non
toccare niente ed andare avanti
6. Come nome sito digitare Quello che vogliamo mettere poi la mail, una bella
password di amministrazione. Per i principianti può essere utile mettere i dati
di esempio, cliccando sul pulsa dedicato, in modo da avare dei contenuti di
esempio che possiamo sempre modificare o cancellare. Lasciare tutto il resto
per com’è ed andare avanti.
7. Installazione dovrebbe essere completata. L’ultimo passo degno di un signor
amministratore sarà quello di rimuovere la cartella di installazione, “installation” (o rinominarla), e l’archivio di joomla ormai scompattato:
sudo rm - fr / var / www / joomladir / installation
sudo rm / var / www / joomladir / Joomla_1 .5.7 _ita - Stable . tgz
Ora tutto è a posto e possiamo incominciare a lavorare con joomla sul nostro
amato Linux.
7