Nonostante il titolo possa sembrare particolarmente astruso quello che andremo a fare è cercare di utilizzare la stessa configurazione per due server (Apache e MySql) presenti sui nostri sistemi operativi in dual boot!

lamp/wamp

Perché questa faticaccia? Semplicemente per poter lavorare sullo stesso progetto da sistemi operativi diversi e sfruttare il meglio di entrambi! Io sono solito utilizzare ubuntu per le cose di ogni giorno, ma quando voglio continuare il sito che sto scrivendo mi tocca riavviare per avere tutto configurato, il che mi secca! Soprattutto a causa del fatto che Vista non mi è amico! ^^

Sunto delle puntate precedenti e preliminari:

Intanto vi rimando a leggere i post LAMP con qualcosa in più, Sviluppare siti in php e Photoshop e Dreamweaver su Ubuntu: il primo parla di XAMPP come soluzione sia sotto Windows che Linux (solo in linea teorica), il secondo tratta il mio approccio alla creazione di siti sotto Windows (ed è la configurazione che andremo ad utilizzare) e l’ultimo tratta l’installazione dei programmi per lo sviluppo web sotto Ubuntu.

Ok, riassumendo la situazione è la seguente:

  • Configurazione sotto Windows Vista:
    • Utilizzo di Dreamweaver CS3 per scrivere il codice
    • Utilizzo di Photoshop CS3 per il layout grafico
    • Utilizzo di EasyPHP come server WAMP
    • Programmi vari ed eventuali che non ci interessano
  • Configurazione sotto Ubuntu:
    • Utilizzo di Dreamweaver MX 2004 per scrivere il codice
    • Utilizzo di Photoshop CS2 per il layout grafico
    • Nessun server LAMP (è qui che agiremo)
    • Programmi vari ed eventuali che non ci interessano

LAMP sotto Ubuntu:

Intanto il primo problema che sorge è: che server LAMP utilizzare? Installiamo Apache, Php e MySql separatamente oppure ci sono altre soluzioni? Bene, io ho optato per utilizzare XAMPP (scaricabile da qui), ed ecco le motivazioni:

  • All’avvio del sistema non parte nessun server
  • Ho un pacchetto completo di programmi per il funzionamento ed il monitoraggio dei vari server (già configurati)
  • Ho tutte le configurazioni concentrate in una sola cartella (/opt/lampp)
  • In caso di problemi basta rimuovere l’unica cartella interessata
  • Unico svantaggio: apt-get è tagliato fuori! ^^

Una volta scaricato XAMPP installarlo è davvero semplice, la guida è questa ma vi riassumo i punti chiave:

  1. Scaricate XAMPP (la guida è rimasta ferma ad una versione poco recente)
  2. Date il comando:
    sudo tar xvfz xampp-linux-1.5.3a.tar.gz -C /opt
    NB: fate molta attenzione, nulla è casuale! Se non siete root il server verrà creato con permessi sballati e difficilmente funzionerà a dovere! Ed inoltre XAMPP è configurato di default per risiedere nella cartella /opt!
  3. Per controllare i server utilizzate:
    • per avviare: sudo /opt/lampp/lampp start
    • per fermare: sudo /opt/lampp/lampp stop
    • per riavviare: sudo /opt/lampp/lampp restart
    • per conoscere le opzioni disponibili: sudo /opt/lampp/lampp
  4. Per avere un’interfaccia grafica utilizzate:
    gksudo "python /opt/lampp/share/xampp-control-panel/xampp-control-panel.py"
    (leggendo la guida ci sono le istruzioni per metterla nel menu di gnome)

Ok, abbiamo i vari server, ora ci tocca utilizzare le stesse configurazioni per entrambi!

Configuriamo Apache:

Apache non ci darà alcuna noia, infatti sia sotto Windows che Linux la versione di PHP sarà la più aggiornata e non ci sarà bisogno di configurazioni particolari, l’unica modifica da fare è inserire il nostro sito in costruzione anche sotto Linux con un semplice link simbolico, esempio pratico:

sudo ln -s /media/win_vista/Program\ Files/EasyPHP\ 2.0b1/www/sito_in_costruzione/ /opt/lampp/htdocs/sito_in_costruzione

Ora potremo accedere al nostro sito andando sulla pagina: http://localhost/sito_in_costruzione!

Configuriamo MySQL:

Putroppo MySql darà non poche rogne! La versione Linux (sotto XAMPP) ha i file di configurazione in  /opt/lampp/var/mysql/, mentre quella Windows (sotto EasyPHP) li ha in C:\Program Files\Easy PHP 2.0b1\mysql\data\, e sono leggermente incompatibili tra di loro, il che ci impedisce di utilizzare i link simbolici!😦

Quello che vogliamo fare è avere lo stesso database disponibile su entrambe le piattaforme, sapendo che è presente sotto forma di cartella tra i file di configurazione di MySql! Per capirsi: se abbiamo un database chiamato db_sito allora ci sarà una cartella /opt/lampp/var/mysql/db_sito sotto Linux ed una C:\Program Files\Easy PHP 2.0b1\mysql\data\db_sito sotto Windows (i file presenti all’interno di queste cartelle sono le tabelle)!

I problemi che avremo copiando ed incollando la cartella con il database del sito sono due:

  • Dobbiamo cambiare proprietario e gruppo d’appartenenza: sotto Linux dobbiamo assegnare il DB e tutti i file in esso contentuti all’utente nobody ed al gruppo root, con privilegi 600 (bisogna utilizzare in accoppiata i comandi chown e chmod)
  • Dobbiamo rinominare i file, perché la versione sotto Linux è case sensitive: se una tabella ha il nome TabellaDiProva nel DB sotto Windows verrà salvata con il nome tabelladiprova (con le varie estensioni), mentre sotto Linux va rinominata come TabellaDiProva (con le varie estensioni)!

Queste due modifiche rendono impraticabile l’uso del link simbolico e ci costringono alla creazione di uno script ad hoc che non fa altro che rinominare singolarmente le tabelle ogni qual volta eseguiamo un copia & incolla per sincronizzare i dati! ^^ L’alternativa definitiva (che non ho provato) potrebbe essere creare un link per ogni file presente con il nome rivisto, anche se poi bisogna far attenzione ai permessi!

Configurazione di Dreamweaver e Photoshop:

Per quanto riguarda Dreamweaver basta esplorare il filesystem ed inserire il progetto nella sua gestione siti, mentre per Photoshop non è previsto nessuno di questi problemi, essendo ogni lavoro presente su un solo file!