Vagrant LAMP
Instalo Vagrant de modo que comparta el directorio www (para el host, /vagrant/www para el guest), y sea /vagrant/www un virtualhost de apache2.
Edit (20140219): Los pasos que vienen a continuación se pueden automatizar. Por ejemplo, usando el mecanismo de Vagrant para provision mediante shell, como se muestra en este proyecto: https://github.com/akobashikawa/vagrant-shell-lamp
L
- Instalar Vagrant. Se puede descargar de http://www.vagrantup.com/
- En algún directorio crear el directorio precise32 (pudo haber sido otro nombre) y situarse en él.
- Ejecutar el comando:
vagrant init precise32 http://files.vagrantup.com/precise32.box
Si es la primera vez que se usa precise32.box, hay que esperar unos minutos mientras lo descarga. Luego de eso aparecerá el archivo Vagrantfile. - Modificar Vagrantfile para que el puerto 80 del guest sea visible por el host y para que la carpeta /vagrant/www del guest sea escribible por apache2 y además visible por el host como www:
... config.vm.network :private_network, ip: "192.168.33.10" config.vm.synced_folder ".", "/vagrant", mount_options: ['dmode=777','fmode=666'] ...
- Levantar el box:
vagrant up - Entrar al box:
vagrant ssh
A
- En el box, actualizar los repositorios de instalación:
$ sudo apt-get update - Instalar apache2 (y curl):
$ sudo apt-get install apache2
$ sudo apt-get install curl
$ curl http://localhost - Crear el virtualhost host.dev:
$ cd /etc/apache2/sites-available
$ sudo cp default development
$ sudo apt-get install vim
$ sudo vim development
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName host.dev DocumentRoot /vagrant/www <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /vagrant/www/> Options Indexes FollowSymLinks MultiViews AllowOverride None Order allow,deny allow from all </Directory> </VirtualHost>
$ sudo a2ensite development
$ sudo vim /etc/apache2/conf.d/fqdn
ServerName localhost
$ sudo service apache2 reload
$ echo "Hello Vagrant!" > /vagrant/www/index.html - Agregar el nuevo ServerName al hosts list del guest (/etc/hosts)
... 127.0.0.1 host.dev ...
Comprobar el acceso desde el guest: $ curl http://host.dev
- Agregar el nuevo ServerName al hosts list del host (C:/Windows/System32/drivers/etc/hosts)
... 192.168.33.10 host.dev ...
- Comprobar el acceso desde el host, abriendo en un browser http://host.dev
P
- En el box, instalar el módulo php5 para apache2:
$ sudo apt-get install libapache2-mod-php5
Eso instala también php5 y los demás paquetes necesarios. - Es posible que el paso anterior habilite automáticamente el módulo php5. Haga la prueba del paso 3. Si no funcionara, se puede ejecutar:
$ sudo a2enmod php5
$ sudo service apache2 restart - Probar el módulo php5:
$ echo "<?php phpinfo(); ?>" > /vagrant/www/phpinfo.php
En el browser, acceder a http://host.dev/phpinfo.php
M
- En el box, instalar mysql y sus módulos para php5 y apache2:
$ sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql
Aparecerá luego un diálogo solicitando ingresar un password para el usuario root. - Para comprobar que se instaló mysql, ingresar a la consola:
$ mysql -u root -p
Ingresar con el password que se indicó para root. Para salir, ordene exit - Para comprobar que se instaló el módulo php5-mysql, reiniciar apache:
$ sudo service apache restart - Revisar en el phpinfo la información del nuevo módulo instalado, accediendo a http://host.dev/phpinfo.php
- Instalar phpmyadmin:
$ sudo apt-get install phpmyadmin
Aparecerá luego un diálogo solicitando indicar el webserver que se usará. Indicar apache.
Después, aparecerán otros diálogos para preguntar si se desea hacer la configuración, y para que se ingrese el password del usuario mysql root y también para el administrador de phpmyadmin. - Para comprobar la instalación de phpmyadmin, en un browser, ingresar a http://host.dev/phpmyadmin, con el nombre de usuario root y el password que se le definió.