Configurando Homestead
comando: valor
Especificando la IP
ip: 192.168.10.10
Asignando la memoria
La siguiente directiva nos sirve para indicar la memoria RAM que se asignará a la máquina virtual. Por defecto el valor es de 2048 MB. Pero se puede reservar hasta un máximo de la mitad de la memoria RAM física que tenga el ordenador. Su sintaxis es:
memory: 2048
Reservando un número de CPUs
Prácticamente todos los ordenadores modernos tienen varios núcleos que actúan como CPUs individuales en la máquina virtual, son las llamadas CPUs virtuales (vCPU). Con esta directiva se reserva un número determinado de vCPUs para la máquina virtual. Si se quiere saber el número máximo de vCPUs que se pueden asignar a una máquina virtual se tiene que multiplicar el número de núcleos por los hilos que tenga el procesador físico. Así un procesador de 4 núcleos y 8 hilos puede disponer de un máximo de 32 vCPUs. No es recomendable asignar a una máquina virtual más de la mitad de las vCPUs disponibles pues se corre el riesgo de que el ordenador se bloquee. La sintaxis de esta directiva es:
cpus: 2
Estableciendo el proveedor
provider: virtualbox
Definiendo las carpetas compartidas
La propiedad folders del fichero Homestead.yaml lista todas las carpetas que se desean compartir con tu entorno Homestead. Cuando los ficheros de esas carpetas cambian, se sincronizan entre la máquina local y el entorno virtual de Homestead. Puedes configurar tantas carpetas compartidas como sea necesario:
folders:
- map: ~/code/proyecto1
to: /home/vagrant/proyecto1
Siempre se puede mapear aplicaciones individuales a sus propias carpetas en vez de mapear un solo gran directorio que contenga todas las aplicaciones.
Cuando se mapea una carpeta, la máquina virtual deber seguir el rastro de todas las operaciones de entrada/salida para cada fichero en la carpeta. Puedes notar que el rendimiento se reduce si tienes un gran número de ficheros en una carpeta:
folders:
- map: ~/code/proyecto1
to: /home/vagrant/proyecto1
- map: ~/code/proyecto2
to: /home/vagrant/proyecto2
Nunca se debe montar el directorio . (el directorio actual) cuando se usa Homestead. Esto causaría que Vagrant no mapeara la carpeta actual a /vagrant y provocaría resultados inesperados al crear la máquina virtual.
Para habilitar NFS, se puede añadir la opción type a la definición de la carpeta:
folders:
- map: ~/code/proyecto1
to: /home/vagrant/proyecto1
type: "nfs"
Incluso se pueden pasar cualquiera de las opciones soportadas por las carpetas sincronizadas de Vagrant listándolas bajo la palabra clave options:
folders:- map: ~/code/proyecto1
to: /home/vagrant/proyecto1
type: "rsync"options:
rsync__args: ["--verbose", "--archive", "--delete", "-zz"]rsync__exclude: ["node_modules"]
Configurando los sitios web
Por defecto, Homestead usa como servidor web Nginx. Si no lo conoces, no hay problemas. La propiedad sites del fichero Homestead te permite fácilmente mapear un dominio a una carpeta en tu entorno Homestead. Una configuración simpre del sitio se incluye en el Homestead.yaml. De nuevo, puedes añadir tantos sitios como sea necesario. Homestead puede servir como un entorno virtualizado conveniente para cada aplicación de Laravel en la que esté trabajando:
sites:
- map: homestead.test
to: /home/vagrant/proyecto1/public
Si se cambia la propiedad sites después de provisionar la máquina virtual Homestead, se debe ejecutar el comando vagrant reload --provision en la terminal para actualizar la configuración Nginx de la máquna virtual.
Homestead soporta varios tipos de sitios que te permiten correr fácilmente proyectos que no están basados en Laravel. Por ejemplo, se puede añadir una aplicación Statamic a Homestead usando el tipo de sitio statamic:
sites:
- map: statamic.test
to: /home/vagrant/statamic-proyecto/web
type: "statamic"
Los tipos de sitio disponibles son: apache, apigility, expressive, laravel (por defecto), proxy, silverstripe, statamic, symfony2, symfony4 y zf.
Una caja Homestead tiene soporte para varias versiones de PHP. Éstas son: "5.6", "7.0", "7.1", "7.2", "7.3", "7.4" y "8.0", Por defecto se queda activada la versión más reciente. En este momento es PHP 8.0. Si se quiere especificar una versión concreta con la que se quiera trabajar hay que usar la palabra clave php:
sites:
- map: homestead_php.test
to: /home/vagrant/proyecto_php/public
php: "7.2"
Resolución del Hostname
hostname: homestead
Usar nombres de host automáticos funciona mejor para instalaciones por proyecto de Homestead. Si aloja varios sitios en una sola instancia de Homestead, puede agregar los dominios de sus sitios web al archivo de hosts de su máquina. El archivo de hosts redirigirá las solicitudes de sus sitios de Homestead a su máquina virtual de Homestead. En Linux este archivo se encuentra en /etc/hosts. Las líneas que se añadan a este fichero deben parecerse a esta:
192.168.10.10 homestead.test
Especificando las Bases de Datos
databases:
- proyecto1
Ejemplo de fichero Homestead.yaml
ip: 192.168.10.10
memory: 2048
cpus: 1
provider: virtualbox
authorize: ~/.ssh/id_rsa.pub
keys:
- ~/.ssh/id_rsa
folders:
- map: ~/code/proyecto1
to: /home/vagrant/code/proyecto1
sites:
- map: proyecto1.test
to: /home/vagrant/code/proyecto1
type: "apache"
php: "7.2"
databases:
- proyecto1
name: proyecto1
hostname: proyecto1
Aún nos queda una última entrada en la ya veremos como funcionaría todo esto.
Comentarios
Publicar un comentario