
Ritorno su questo tema rimasto in sospeso per mesi. Mi serve php 5.2.17 e phpunit funzionanti per testare del codice, da inserire in un server che usa questa versione.
Recupero da GitHub un repository con un ambiente già pronto, sperando di dover fare pochi interventi di adattamento.
Il repository in questione crea un ambiente per lo sviluppo di codice wordpress sotto varie versioni di php, utilizzando una box vagrant . Dovrei arrivare ad ottenere un ambiente pulito e pronto ad essere utilizzato, in modo veloce, e facilmente ripristinabile. Tutte caratteristiche che intrisecamente porta con se il concetto di box vagrant.
Tralasciando wp, dovrebbe essere adatto anche per lo scopo che ho in mente, php e phpunit e pronto un server web per un test completo.
Primi settaggi della vagrant box
Le prime modifiche riguardano il file Vagrantfile occorre correggere la mappatura degli IP con le mie configurazioni di rete.
Poi individuo la versione della box che mi serve, devo aggiungerla alla vagrant con in parametro ignore (sulla macchina attuale altrimenti non scarica la box)
$vagrant add box tierra/wordpress-php52 --insecure $vagrant up wordpress-php52 $vagrant ssh wordpress-php52
Incrociamo le dita e speriamo.
La speranza è durata poco, occorre aggiornare qualche programma che non veniva usato da qualche tempo. Quindi procediamo con ordine e vediamo cosa aggiornare.
$ vagrant --version Vagrant 1.8.7 #virtualbox => aggiornare alla più recente.
Alla fine la postazione ha funzionato dopo il solo aggiornamento della virtualbox, ottenendo una scatoletta vagrant pronta all’uso.
In questo specifico caso, per com’è costruito il vagrantfile , occorre specificare il profilo della macchina che voglio eseguire, o a cui voglio accedere. Altrimenti vagrant non riesce a determinare a quale macchina riferirsi, vedi le righe 3 e 5 con i comandi della console nelle sezioni precedenti.
Tra le altre cose ho notato con piacere che questa box, ha già installato fin da subito git , tool che non poteva certo mancare nel ambiente di sviluppo che avevo in mente.
Primo login ssh, controlliamo php 5.2.17
Effettuato il primo login mediante ssh, la prima cosa da verificare è se ci sono e le versioni delle uniche due cose che mi interessavano: php e phpunit.
vagrant@wordpress-php52:~$ php --version PHP 5.2.17-0.dotdeb.0 with Suhosin-Patch 0.9.7 (cli) (built: Jan 7 2011 07:47:48) Copyright (c) 1997-2009 The PHP Group Zend Engine v2.2.0, Copyright (c) 1998-2010 Zend Technologies with Xdebug v2.1.0, Copyright (c) 2002-2010, by Derick Rethans vagrant@wordpress-php52:~$ phpunit --version PHPUnit 3.6.12 by Sebastian Bergmann. vagrant@wordpress-php52:~$
Il primo passaggio nonostante la ruggine e qualche incomprensione si è concluso in 1 ora. Molto veloce rispetto creare un ambiente apposito passo passo con un server installato appositamente anche solo in un ambiente virtuale come una virtualbox.
Cartella di lavoro personale
Dentro la box troviamo già una cartella di lavoro vagrant, è un collegamento alla struttura dell’installazione vagrant che possiamo utilizzare per effettuare le operazioni di provisioning. In fase di inizializzazione vagrant crea un link ad una directory esterna alla scatoletta, in modo da potervi accedere con l’utenza collegata in console ssh.
Questa directory non è la più indicata per metterci il materiale esterno che voglio testare. Aggiungo quindi una riga alla configurazione nel vagrantfile per includere anche un’altra directory contenente sorgente che voglio testare, tenendolo in questo modo il materiale di lavoro il più separato possibile dai dettagli di configurazione della mia text box (la scatoletta). Basta aggiungere nel punto opportuno una riga come la seguente:
node.vm.synced_folder '../data', '/lavoro_git'
Fermo la box, e la ritirio su, e dovrei vedere nelle ultime righe del log di bootstrap che è stato creato il collegamento anche per la nuova cartella (nel mio caso è solo a livello superiore rispetto directory con la struttura della box):
$ vagrant halt $ vagrant up wordpress-php52 .... ==> wordpress-php52: Mounting shared folders... wordpress-php52: /vagrant => C:/vagrant_box/multiphp wordpress-php52: /lavoro_git => C:/vagrant_box/data
I giochi possono iniziare
Ora che il campo è pronto posso iniziare a mettere mano ai test che volevo fare.
Copio in questo caso il repository del materiale da testare nella directory data e posso iniziare a fare tutti i test del caso. In questo modo posso continuare a lavorare con il mio editor in modo lineare, dall’esterno della scatoletta, e lanciare i test di phpunit dalla console ssh della vagrant.
Per oggi credo che sia tutto, andiamo a scrivere codice pieno di bug.