Se come me sviluppi in PHP oltre che su linux, anche su OsX di certo ti sarai accorto come quest’ultimo OS renda il lavoro particolarmente frustrante quando si tratta di includere files nominati seguendo lo standard CamelCase.
Specialmente con Magento, sviluppare un modulo diventa veramente una follia! Sul tuo Mac tutto funziona perfettamente, carichi l’estensione su un server linux e non funziona nulla.
Spessissime volte questo capita perché la Apple ha “ben” pensato di modificare un aspetto del sistema da cui è nato, Unix. OsX è infatti Case Insensitive! Quindi quando andiamo ad includere il file MioFile.php con ad esempio il comando include(‘miofile.php’); avremo un bel warning e lo script non funzionerà.
Soluzioni:
- non fare nulla, accettare questa follia come un dato di fatto e conviverci;
- formattare la partizione di installazione di OsX impostandola come Case Sensitive e reinstallare l’intero sistema;
- installare VirtualBox e un server virtuale LAMP;
Se stai leggendo questo articolo è perché probabilmente sei interessato alla terza opzione. Quindi inizio a spiegare brevemente come fare.
Scaricare dal sito VirtualBox, nel momento in cui scrivo sono arrivati alla versione 4.2.12, la versione per OsX ed effettuare l’installazione seguendo i passi a schermo.
Una volta terminata l’installazione, creare una nuova macchina virtuale facendo click sul pulsante Nuova, quindi inserire un nome ad esempio LAMP Server.
[image url=”https://www.valeriomasciotta.it/wp-content/uploads/2013/06/VirtualBox-LAMP_Server.jpeg” link=”” title=”VirtualBox-LAMP_Server” size=”large” target=”” lightbox=”true” align=”center” autoheight=”true” ]
Quindi cliccare su Crea.
Nella schermata che appare possiamo lasciare tutto così com’è e completare l’operazione cliccando su Crea.
Nella finestra principale di VirtualBox ora comparirà, nella colonna di sinistra, la nuova macchina virtuale appena creata, LAMP Server. A destra invece il pannello di impostazioni.
Scaricare ora la ISO della propria distribuzione preferita, nel mio caso openSUSE.
Una volta scaricata, tornare in VirtualBox e cliccare su Archiviazione nella colonna principale. Nell’albero di archiviazione, sotto la voce Controller: IDE selezionare Vuoto e nella colonna di destra, alla voce Lettore CD/DVD cliccare l’icona a forma di CD e selezionare Scegli un file di disco virtuale. A questo punto selezionare la ISO della distribuzione scaricata in precedenza e confermare cliccando OK.
[image url=”https://www.valeriomasciotta.it/wp-content/uploads/2013/06/VirtualBox-Archiviazione-Configurazione.jpg” link=”” title=”VirtualBox-Archiviazione_Configurazione” size=”large” target=”” lightbox=”true” align=”center” autoheight=”true” ]
La finestra di dialogo si chiuderà e si tornerà alla schermata principale di VirtualBox. Si può quindi avviare la macchina virtuale cliccando sul pulsante in alto Avvia ed effettuare l’installazione e la configurazione del lamp server come di consueto.
Se tutto è filato liscio la macchina virtuale si avvia e la vostra distribuzione linux gira felice e contenta! :)
Come ultimo passo ora configuriamo le porte per l’accesso SSH e web (porte 22 e 80 del guest) routandole sulla porta 2222 e 8888 dell’host.
Spegnere la macchina virtuale, aprire il terminale di OsX e digitare i seguenti 6 comandi (ovviamente non digitare # all’inizio del comando).
1 2 3 4 5 6 7 8 9 | $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/Protocol" TCP $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/GuestPort" 80 $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/apache/HostPort" 8888 $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/Protocol" TCP $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/GuestPort" 22 $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/ssh/HostPort" 2222 $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mysql/Protocol" TCP $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mysql/GuestPort" 3306 $ VBoxManage setextradata "LAMP Server" "VBoxInternal/Devices/pcnet/0/LUN#0/Config/mysql/HostPort" 3306 |
Abilitiamo il file system di VirtualBox alla scrittura dei Symlinks:
Riapriamo il terminale di OsX e digitiamo
1 2 3 4 | ### Questa regola abilita la scrittura dei Symlinks all'interno della cartella condivisa $ VBoxManage setextradata "LAMP Server" VBoxInternal2/SharedFoldersEnableSymlinksCreate/laTuaCartellaCondivisa 1 ### E ora controlliamo che tutte le regole siano state registrate correttamente $ VBoxManage getextradata "LAMP Server" enumerate |
Avviare quindi la macchina virtuale, aprire il browser web e andare all’indirizzo http://localhost:8888 .
Dovrebbe apparire la schermata di default di Apache “It Works” o Forbidden nel caso in cui nella web root non è presente alcun file index.html
Nel caso in cui doveste ricevere errori in fase di avvio della macchina virtuale, controllate la scheda di rete della stessa andando nella sezione Rete dalla schermata principale di VirtualBox relativa alla macchina virtuale LAMP Server. Selezionare Connessa a: NAT e, nella sottosezione Avanzate, Tipo di scheda: Pcnet-FAST III o simili.
Per avere accesso tramite ssh alla macchina virtuale bisogna assicurarsi di avere abilitato il server sshd nella distro openSuSE e di avere la relativa porta aperta.
Entrare quindi in Yast –> Sistema –> Servizi di sistema (Runlevel) e nella lista dei servizi abilitare il server sshd.
Visto che questo server è pensato per lo sviluppo software, potete anche disabilitare il firewall. Se non avete intenzione di farlo, assicuratevi che la porta del server ssh sia aperta, altrimenti non potrete accedere da remoto!
Impostiamo anche MySql affinché accetti le connessioni per root da qualsiasi ip esterno al 127.0.0.1 (ovviamente questa configurazione è sicura solo per un ambiente di sviluppo!), quindi supponendo che lo username e la password di MySql siano rispettivamente root e root logghiamoci in MySql e diamo il seguente comando:
1 2 | $ mysql -uroot -proot; --mi loggo in mysql GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'root'; --assegno i privilegi all'utente root con password root |
Riavviate la macchina virtuale e tutto dovrebbe andare per il meglio.
[info ]
Se vuoi installare XDebug sulla tua nuova macchina virtuale e non sai come fare, leggi questo articolo.
[/info]
Scrivi un commento