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