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
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
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
</VirtualHost>
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
#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à
Sei un grande, grazie mille!
RispondiEliminaGuida perfetta, grazie 1000!
RispondiEliminaVorrei aggiungere una cosa; in caso ricevete un errore 404 digitando http://localhost/phpmyadmin è perchè diverse versioni di ubuntu non creano il link nella cartella /var/www/ quindi è necessario farlo a mano digitando "sudo ln -s /usr/share/phpmyadmin /var/www"
Voglio farti i complimenti perchè spieghi passo passo i procedimenti senza dare una lista di comandi da eseguire come robot e dando agli utenti modo di capire cosa stanno facendo! Continua così!! :D
Ciao...
RispondiEliminaPosso fare una domanda?
Ho installato tutto su ubuntu, che uso come server web.
Dal pc accedo e vedo il sito in joomla, tutto ok.
Vedo anche la parte administrator, e ho impostato Dreamweaver per gestire il sito, tutto bene.
Ho scaricato un template da template.joomla.it.
Però la cartella di quel template, all'interno delle cartelle di joomla ha i permessi settati in modo che io non possa moficarli.
Può modificarli solo www-data che, se non sbaglio, è Apache.
Quindi dal computer con ubuntu non posso neanche modificare un logo, e nemmeno da Dreamweaver mi permette di caricare i file in quella cartella.
In sostanza posso solo modificare il sito dal pannello amministratore di joomla.
Ho provato con tutti i chmod possibili, ricorsivi e non da terminale dalla macchina con ubuntu, ma i permessi sono sempre quelli.
Ah, aggiungo che lo stesso template installato sul mio portatile in locale (una Mac con Mamp come server locale) è modificabilissimo, e anche su un sito che ho già pubblicato con lo stesso template sui server di aruba (linux) è modificabile, quindi non è colpa del template.
Scusate se sono stato prolisso ma volevo spiegare bene il problema.
Qualcuno ha delle idee su cosa io possa fare?
Grazie mille.
Daniele
ciao, interesante il tuo doc su come preparare l'enviroment per ospitare joomla.
RispondiEliminaseguendo il tuo piccolo manuale, quando arrivo al task dove chidi di verificare il funzionamente di phpmyadmin, apache mi da errore 404 pagina non trovata. puoi aiutarmi?
grazie giacomo
jakortis@gmail.com
scusatemi, ma solo ora o travato la soluzione postata da EugenioZ. grazie a tutti
RispondiEliminaCiao,
RispondiEliminaHo seguito la tua guida, l'installazione tutto ok, solo che non riesco ad installare nuovi template.
Mi da il messaggio di errore
Attenzione: fallito spostamento del file!
Tipo di archivio sconosciuto
Ma il template funziona correttamente.
Mi sapresti dire il perchè??
Grazie
devi cambiare il proprietario della directory www, come da comando sopra descritto.
EliminaCiao
scusate l'ignoranza... ma nella sezione:
RispondiEliminaCreare il database mysql per Joomla e l'utente amministratore del database
quando apro http://localhost/phpmyadmin
che nome utente devo iserire per entrare? la password ce l'ho... ma il nome utente?
c'è qualche anima pia che può risolvermi questo dubbio?
Complimenti per la chiarezza: molto importante, per chi non è esperto di apache, la nota su apache2:
RispondiEliminasudo chown -R www-data:www-data /var/www/miojoomla
che non ho trovato su nessuna delle altre guide che ho consultato.
Grazie per il tempo che ho risparmiato ....