Estamos actualizando el sitio. Durante unos días es posible que veas fallos de diseño o de traducción. La documentación sigue disponible: si una página se ve mal, recárgala más tarde.

Inicio Laravel 10.x Laravel Homestead

Laravel Homestead

10.x 7 de mar. de 2026

#Introducción

Laravel se esfuerza por hacer que toda la experiencia de desarrollo en PHP sea agradable, incluyendo su entorno de desarrollo local. Laravel Homestead es una caja Vagrant oficial y preempaquetada que le proporciona un entorno de desarrollo excelente sin necesidad de instalar PHP, un servidor web u otro software de servidor en su máquina local.

Vagrant ofrece una forma simple y elegante de gestionar y aprovisionar máquinas virtuales. Las cajas Vagrant son completamente desechables. ¡Si algo sale mal, puede destruir y recrear la caja en minutos!

Homestead funciona en cualquier sistema Windows, macOS o Linux e incluye Nginx, PHP, MySQL, PostgreSQL, Redis, Memcached, Node y todo el software necesario para desarrollar aplicaciones Laravel increíbles.

Внимание

Si usa Windows, puede que necesite habilitar la virtualización por hardware (VT-x). Normalmente se habilita desde el BIOS. Si usa Hyper-V en un sistema UEFI, puede que también necesite deshabilitar Hyper-V para acceder a VT-x.

#Software Incluido

<style> #software-list > ul { column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; column-gap: 5em; -moz-column-gap: 5em; -webkit-column-gap: 5em; line-height: 1.9; } </style>
  • Ubuntu 22.04
  • Git
  • PHP 8.3
  • PHP 8.2
  • PHP 8.1
  • PHP 8.0
  • PHP 7.4
  • PHP 7.3
  • PHP 7.2
  • PHP 7.1
  • PHP 7.0
  • PHP 5.6
  • Nginx
  • MySQL 8.0
  • lmm
  • Sqlite3
  • PostgreSQL 15
  • Composer
  • Docker
  • Node (Con Yarn, Bower, Grunt y Gulp)
  • Redis
  • Memcached
  • Beanstalkd
  • Mailpit
  • avahi
  • ngrok
  • Xdebug
  • XHProf / Tideways / XHGui
  • wp-cli

#Software Opcional

<style> #software-list > ul { column-count: 2; -moz-column-count: 2; -webkit-column-count: 2; column-gap: 5em; -moz-column-gap: 5em; -webkit-column-gap: 5em; line-height: 1.9; } </style>
  • Apache
  • Blackfire
  • Cassandra
  • Chronograf
  • CouchDB
  • Crystal & Lucky Framework
  • Elasticsearch
  • EventStoreDB
  • Flyway
  • Gearman
  • Go
  • Grafana
  • InfluxDB
  • Logstash
  • MariaDB
  • Meilisearch
  • MinIO
  • MongoDB
  • Neo4j
  • Oh My Zsh
  • Open Resty
  • PM2
  • Python
  • R
  • RabbitMQ
  • Rust
  • RVM (Ruby Version Manager)
  • Solr
  • TimescaleDB
  • Trader (extensión PHP)
  • Webdriver & Utilidades Laravel Dusk

#Instalación y Configuración

#Primeros Pasos

Antes de iniciar su entorno Homestead, debe instalar Vagrant así como uno de los siguientes proveedores soportados:

Todos estos paquetes de software ofrecen instaladores visuales fáciles de usar para los sistemas operativos más populares.

Para usar el proveedor Parallels, necesitará instalar el plugin Parallels Vagrant. Es gratuito.

#Instalando Homestead

Puede instalar Homestead clonando el repositorio Homestead en su máquina anfitriona. Se recomienda clonar el repositorio en una carpeta Homestead dentro de su directorio "home", ya que la máquina virtual Homestead servirá como anfitrión para todas sus aplicaciones Laravel. A lo largo de esta documentación, nos referiremos a este directorio como su "directorio Homestead":

git clone https://github.com/laravel/homestead.git ~/Homestead

Después de clonar el repositorio Laravel Homestead, debe cambiar a la rama release. Esta rama siempre contiene la última versión estable de Homestead:

cd ~/Homestead

git checkout release

A continuación, ejecute el comando bash init.sh desde el directorio Homestead para crear el archivo de configuración Homestead.yaml. El archivo Homestead.yaml es donde usted configurará todos los ajustes de su instalación de Homestead. Este archivo se colocará en el directorio Homestead:

# macOS / Linux...
bash init.sh

# Windows...
init.bat

#Configurando Homestead

#Configurando su Proveedor

La clave provider en su archivo Homestead.yaml indica qué proveedor Vagrant debe usarse: virtualbox o parallels:

provider: virtualbox
Внимание

Si usa Apple Silicon, es obligatorio usar el proveedor Parallels.

#Configurando Carpetas Compartidas

La propiedad folders del archivo Homestead.yaml lista todas las carpetas que desea compartir con su entorno Homestead. A medida que los archivos dentro de estas carpetas cambian, se sincronizan entre su máquina local y la máquina virtual Homestead. Puede configurar tantas carpetas compartidas como necesite:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1
Внимание

Los usuarios de Windows no deben usar la sintaxis de ruta ~/ y en su lugar deben usar la ruta completa a su proyecto, como C:\Users\user\Code\project1.

Siempre debe mapear aplicaciones individuales a su propia carpeta en lugar de mapear un directorio grande que contenga todas sus aplicaciones. Cuando mapea una carpeta, la máquina virtual debe rastrear todas las operaciones de disco para cada archivo en la carpeta. Puede experimentar una reducción en el rendimiento si tiene una gran cantidad de archivos en una carpeta:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1
    - map: ~/code/project2
      to: /home/vagrant/project2
Внимание

Nunca debe montar . (el directorio actual) cuando use Homestead. Esto hace que Vagrant no mapee la carpeta actual a /vagrant y romperá funcionalidades opcionales causando resultados inesperados durante el aprovisionamiento.

Para habilitar NFS, puede agregar una opción type a su mapeo de carpeta:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1
      type: "nfs"
Внимание

Al usar NFS en Windows, debería considerar instalar el plugin vagrant-winnfsd. Este plugin mantiene los permisos correctos de usuario / grupo para archivos y directorios dentro de la máquina virtual Homestead.

También puede pasar cualquier opción soportada por las Carpetas Sincronizadas de Vagrant listándolas bajo la clave options:

folders:
    - map: ~/code/project1
      to: /home/vagrant/project1
      type: "rsync"
      options:
          rsync__args: ["--verbose", "--archive", "--delete", "-zz"]
          rsync__exclude: ["node_modules"]

#Configurando Sitios Nginx

¿No está familiarizado con Nginx? No hay problema. La propiedad sites en su archivo Homestead.yaml le permite mapear fácilmente un "dominio" a una carpeta en su entorno Homestead. Un ejemplo de configuración de sitio está incluido en el archivo Homestead.yaml. Nuevamente, puede agregar tantos sitios como necesite en su entorno Homestead. Homestead puede servir como un entorno virtualizado conveniente para cada aplicación Laravel en la que esté trabajando:

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public

Si cambia la propiedad sites después de aprovisionar la máquina virtual Homestead, debe ejecutar el comando vagrant reload --provision en su terminal para actualizar la configuración de Nginx en la máquina virtual.

Внимание

Los scripts de Homestead están diseñados para ser lo más idempotentes posible. Sin embargo, si experimenta problemas durante el aprovisionamiento, debe destruir y reconstruir la máquina ejecutando el comando vagrant destroy && vagrant up.

#Resolución de Nombres de Host

Homestead publica nombres de host usando mDNS para resolución automática. Si establece hostname: homestead en su archivo Homestead.yaml, el host estará disponible en homestead.local. macOS, iOS y distribuciones de escritorio Linux incluyen soporte mDNS por defecto. Si usa Windows, debe instalar Bonjour Print Services para Windows.

Usar nombres de host automáticos funciona mejor para instalaciones por proyecto de Homestead. Si aloja múltiples sitios en una sola instancia Homestead, puede agregar los "dominios" de sus sitios web al archivo hosts en su máquina. El archivo hosts redirigirá las solicitudes a sus sitios Homestead hacia la máquina virtual Homestead. En macOS y Linux, este archivo está en /etc/hosts. En Windows, está en C:\Windows\System32\drivers\etc\hosts. Las líneas que agregue a este archivo se verán así:

192.168.56.56  homestead.test

Asegúrese de que la dirección IP listada sea la que está configurada en su archivo Homestead.yaml. Una vez que haya agregado el dominio a su archivo hosts y haya iniciado la caja Vagrant, podrá acceder al sitio desde su navegador web:

http://homestead.test

#Configurando Servicios

Homestead inicia varios servicios por defecto; sin embargo, puede personalizar qué servicios están habilitados o deshabilitados durante el aprovisionamiento. Por ejemplo, puede habilitar PostgreSQL y deshabilitar MySQL modificando la opción services en su archivo Homestead.yaml:

services:
    - enabled:
        - "postgresql"
    - disabled:
        - "mysql"

Los servicios especificados serán iniciados o detenidos según su orden en las directivas enabled y disabled.

#Iniciando la Máquina Vagrant

Una vez que haya editado el archivo Homestead.yaml a su gusto, ejecute el comando vagrant up desde su directorio Homestead. Vagrant arrancará la máquina virtual y configurará automáticamente sus carpetas compartidas y sitios Nginx.

Para destruir la máquina, puede usar el comando vagrant destroy.

#Instalación por Proyecto

En lugar de instalar Homestead globalmente y compartir la misma máquina virtual Homestead entre todos sus proyectos, puede configurar una instancia Homestead para cada proyecto que administre. Instalar Homestead por proyecto puede ser beneficioso si desea incluir un Vagrantfile con su proyecto, permitiendo que otros que trabajen en el proyecto ejecuten vagrant up inmediatamente después de clonar el repositorio.

Puede instalar Homestead en su proyecto usando el gestor de paquetes Composer:

composer require laravel/homestead --dev

Una vez instalado Homestead, invoque el comando make de Homestead para generar el archivo Vagrantfile y el archivo Homestead.yaml para su proyecto. Estos archivos se colocarán en la raíz de su proyecto. El comando make configurará automáticamente las directivas sites y folders en el archivo Homestead.yaml:

# macOS / Linux...
php vendor/bin/homestead make

# Windows...
vendor\\bin\\homestead make

Luego, ejecute el comando vagrant up en su terminal y acceda a su proyecto en http://homestead.test desde su navegador. Recuerde que aún necesitará agregar una entrada en el archivo /etc/hosts para homestead.test o el dominio que elija si no está usando la resolución automática de nombres de host.

#Instalando Funcionalidades Opcionales

El software opcional se instala usando la opción features dentro de su archivo Homestead.yaml. La mayoría de las funcionalidades pueden habilitarse o deshabilitarse con un valor booleano, mientras que algunas permiten múltiples opciones de configuración:

features:
    - blackfire:
        server_id: "server_id"
        server_token: "server_value"
        client_id: "client_id"
        client_token: "client_value"
    - cassandra: true
    - chronograf: true
    - couchdb: true
    - crystal: true
    - dragonflydb: true
    - elasticsearch:
        version: 7.9.0
    - eventstore: true
        version: 21.2.0
    - flyway: true
    - gearman: true
    - golang: true
    - grafana: true
    - influxdb: true
    - logstash: true
    - mariadb: true
    - meilisearch: true
    - minio: true
    - mongodb: true
    - neo4j: true
    - ohmyzsh: true
    - openresty: true
    - pm2: true
    - python: true
    - r-base: true
    - rabbitmq: true
    - rustc: true
    - rvm: true
    - solr: true
    - timescaledb: true
    - trader: true
    - webdriver: true

#Elasticsearch

Puede especificar una versión soportada de Elasticsearch, que debe ser un número de versión exacto (major.minor.patch). La instalación por defecto creará un clúster llamado 'homestead'. Nunca debe asignar a Elasticsearch más de la mitad de la memoria del sistema operativo, así que asegúrese de que su máquina virtual Homestead tenga al menos el doble de la asignación de Elasticsearch.

Примечание

Consulte la documentación de Elasticsearch para aprender cómo personalizar su configuración.

#MariaDB

Habilitar MariaDB eliminará MySQL e instalará MariaDB. MariaDB suele funcionar como un reemplazo directo de MySQL, por lo que debe seguir usando el controlador de base de datos mysql en la configuración de base de datos de su aplicación.

#MongoDB

La instalación por defecto de MongoDB establecerá el nombre de usuario de la base de datos como homestead y la contraseña correspondiente como secret.

#Neo4j

La instalación por defecto de Neo4j establecerá el nombre de usuario de la base de datos como homestead y la contraseña correspondiente como secret. Para acceder al navegador Neo4j, visite http://homestead.test:7474 desde su navegador web. Los puertos 7687 (Bolt), 7474 (HTTP) y 7473 (HTTPS) están listos para atender solicitudes del cliente Neo4j.

#Aliases

Puede agregar aliases Bash a su máquina virtual Homestead modificando el archivo aliases dentro de su directorio Homestead:

alias c='clear'
alias ..='cd ..'

Después de actualizar el archivo aliases, debe volver a aprovisionar la máquina virtual Homestead usando el comando vagrant reload --provision. Esto asegurará que sus nuevos aliases estén disponibles en la máquina.

#Actualizando Homestead

Antes de comenzar a actualizar Homestead, debe asegurarse de haber eliminado su máquina virtual actual ejecutando el siguiente comando en su directorio Homestead:

vagrant destroy

Luego, debe actualizar el código fuente de Homestead. Si clonó el repositorio, puede ejecutar los siguientes comandos en la ubicación donde originalmente clonó el repositorio:

git fetch

git pull origin release

Estos comandos descargan el código más reciente de Homestead desde el repositorio GitHub, obtienen las últimas etiquetas y luego cambian a la última versión etiquetada. Puede encontrar la última versión estable en la página de lanzamientos de Homestead en GitHub.

Si ha instalado Homestead a través del archivo composer.json de su proyecto, debe asegurarse de que su archivo composer.json contenga "laravel/homestead": "^12" y actualizar sus dependencias:

composer update

Luego, debe actualizar la caja Vagrant usando el comando vagrant box update:

vagrant box update

Después de actualizar la caja Vagrant, debe ejecutar el comando bash init.sh desde el directorio Homestead para actualizar los archivos de configuración adicionales de Homestead. Se le preguntará si desea sobrescribir sus archivos existentes Homestead.yaml, after.sh y aliases:

# macOS / Linux...
bash init.sh

# Windows...
init.bat

Finalmente, necesitará regenerar su máquina virtual Homestead para utilizar la última instalación de Vagrant:

vagrant up

#Uso Diario

#Conexión vía SSH

Puede conectarse vía SSH a su máquina virtual ejecutando el comando vagrant ssh desde su directorio Homestead.

#Agregando Sitios Adicionales

Una vez que su entorno Homestead esté aprovisionado y en ejecución, puede querer agregar sitios Nginx adicionales para sus otros proyectos Laravel. Puede ejecutar tantos proyectos Laravel como desee en un solo entorno Homestead. Para agregar un sitio adicional, añádalo a su archivo Homestead.yaml.

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public
    - map: another.test
      to: /home/vagrant/project2/public
Внимание

Debe asegurarse de haber configurado un mapeo de carpeta para el directorio del proyecto antes de agregar el sitio.

Si Vagrant no está gestionando automáticamente su archivo "hosts", puede que necesite agregar el nuevo sitio a ese archivo también. En macOS y Linux, este archivo está en /etc/hosts. En Windows, está en C:\Windows\System32\drivers\etc\hosts:

192.168.56.56  homestead.test
192.168.56.56  another.test

Una vez agregado el sitio, ejecute el comando vagrant reload --provision desde su directorio Homestead.

#Tipos de Sitios

Homestead soporta varios "tipos" de sitios que le permiten ejecutar fácilmente proyectos que no están basados en Laravel. Por ejemplo, podemos agregar fácilmente una aplicación Statamic a Homestead usando el tipo de sitio statamic:

sites:
    - map: statamic.test
      to: /home/vagrant/my-symfony-project/web
      type: "statamic"

Los tipos de sitios disponibles son: apache, apache-proxy, apigility, expressive, laravel (el predeterminado), proxy (para nginx), silverstripe, statamic, symfony2, symfony4 y zf.

#Parámetros del Sitio

Puede agregar valores adicionales de fastcgi_param de Nginx a su sitio mediante la directiva params del sitio:

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public
      params:
          - key: FOO
            value: BAR

#Variables de Entorno

Puede definir variables de entorno globales agregándolas a su archivo Homestead.yaml:

variables:
    - key: APP_ENV
      value: local
    - key: FOO
      value: bar

Después de actualizar el archivo Homestead.yaml, asegúrese de volver a aprovisionar la máquina ejecutando el comando vagrant reload --provision. Esto actualizará la configuración PHP-FPM para todas las versiones de PHP instaladas y también actualizará el entorno para el usuario vagrant.

#Puertos

Por defecto, los siguientes puertos se redirigen a su entorno Homestead:

  • HTTP: 8000 → Redirige a 80
  • HTTPS: 44300 → Redirige a 443

#Redirigiendo Puertos Adicionales

Si lo desea, puede reenviar puertos adicionales a la máquina Vagrant definiendo una entrada de configuración ports en su archivo Homestead.yaml. Después de actualizar el archivo Homestead.yaml, asegúrese de volver a aprovisionar la máquina ejecutando el comando vagrant reload --provision:

ports:
    - send: 50000
      to: 5000
    - send: 7777
      to: 777
      protocol: udp

A continuación hay una lista de puertos adicionales de servicios Homestead que puede mapear desde su máquina anfitriona a su caja Vagrant:

  • SSH: 2222 → A 22
  • Interfaz ngrok: 4040 → A 4040
  • MySQL: 33060 → A 3306
  • PostgreSQL: 54320 → A 5432
  • MongoDB: 27017 → A 27017
  • Mailpit: 8025 → A 8025
  • Minio: 9600 → A 9600

#Versiones de PHP

Homestead soporta ejecutar múltiples versiones de PHP en la misma máquina virtual. Puede especificar qué versión de PHP usar para un sitio dado dentro de su archivo Homestead.yaml. Las versiones de PHP disponibles son: "5.6", "7.0", "7.1", "7.2", "7.3", "7.4", "8.0", "8.1", "8.2" y "8.3" (la predeterminada):

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public
      php: "7.1"

Dentro de su máquina virtual Homestead, puede usar cualquiera de las versiones de PHP soportadas vía CLI:

php5.6 artisan list
php7.0 artisan list
php7.1 artisan list
php7.2 artisan list
php7.3 artisan list
php7.4 artisan list
php8.0 artisan list
php8.1 artisan list
php8.2 artisan list
php8.3 artisan list

Puede cambiar la versión predeterminada de PHP usada por la CLI ejecutando los siguientes comandos dentro de su máquina virtual Homestead:

php56
php70
php71
php72
php73
php74
php80
php81
php82
php83

#Conexión a Bases de Datos

Una base de datos homestead está configurada para MySQL y PostgreSQL por defecto. Para conectarse a su base de datos MySQL o PostgreSQL desde el cliente de base de datos de su máquina anfitriona, debe conectarse a 127.0.0.1 en el puerto 33060 (MySQL) o 54320 (PostgreSQL). El usuario y contraseña para ambas bases de datos es homestead / secret.

Внимание

Solo debe usar estos puertos no estándar cuando se conecte a las bases de datos desde su máquina anfitriona. Usará los puertos predeterminados 3306 y 5432 en el archivo de configuración database de su aplicación Laravel ya que Laravel se ejecuta dentro de la máquina virtual.

#Respaldo de Bases de Datos

Homestead puede respaldar automáticamente su base de datos cuando su máquina virtual Homestead es destruida. Para usar esta función, debe usar Vagrant 2.1.0 o superior. O, si usa una versión antigua de Vagrant, debe instalar el plugin vagrant-triggers. Para habilitar respaldos automáticos, agregue la siguiente línea a su archivo Homestead.yaml:

backup: true

Una vez configurado, Homestead exportará sus bases de datos a los directorios .backup/mysql_backup y .backup/postgres_backup cuando se ejecute el comando vagrant destroy. Estos directorios se encuentran en la carpeta donde instaló Homestead o en la raíz de su proyecto si usa el método de instalación por proyecto.

#Configurando Tareas Cron

Laravel ofrece una forma conveniente de programar tareas cron ejecutando un único comando Artisan schedule:run cada minuto. El comando schedule:run examina la programación de tareas definida en su clase App\Console\Kernel para determinar qué tareas programadas ejecutar.

Si desea que el comando schedule:run se ejecute para un sitio Homestead, puede establecer la opción schedule en true al definir el sitio:

sites:
    - map: homestead.test
      to: /home/vagrant/project1/public
      schedule: true

La tarea cron para el sitio se definirá en el directorio /etc/cron.d de la máquina virtual Homestead.

#Configurando Mailpit

Mailpit le permite interceptar su correo saliente y examinarlo sin enviarlo realmente a sus destinatarios. Para comenzar, actualice el archivo .env de su aplicación con la siguiente configuración de correo:

MAIL_MAILER=smtp
MAIL_HOST=localhost
MAIL_PORT=1025
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null

Una vez configurado Mailpit, puede acceder al panel de Mailpit en http://localhost:8025.

#Configurando Minio

Minio es un servidor de almacenamiento de objetos de código abierto con una API compatible con Amazon S3. Para instalar Minio, actualice su archivo Homestead.yaml con la siguiente opción de configuración en la sección features:

minio: true

Por defecto, Minio está disponible en el puerto 9600. Puede acceder al panel de control de Minio visitando http://localhost:9600. La clave de acceso predeterminada es homestead, mientras que la clave secreta predeterminada es secretkey. Al acceder a Minio, siempre debe usar la región us-east-1.

Para usar Minio, deberá ajustar la configuración del disco S3 en el archivo de configuración config/filesystems.php de su aplicación. Debe agregar la opción use_path_style_endpoint a la configuración del disco y cambiar la clave url a endpoint:

's3' => [
    'driver' => 's3',
    'key' => env('AWS_ACCESS_KEY_ID'),
    'secret' => env('AWS_SECRET_ACCESS_KEY'),
    'region' => env('AWS_DEFAULT_REGION'),
    'bucket' => env('AWS_BUCKET'),
    'endpoint' => env('AWS_URL'),
    'use_path_style_endpoint' => true,
]

Finalmente, asegúrese de que su archivo .env tenga las siguientes opciones:

AWS_ACCESS_KEY_ID=homestead
AWS_SECRET_ACCESS_KEY=secretkey
AWS_DEFAULT_REGION=us-east-1
AWS_URL=http://localhost:9600

Para aprovisionar buckets "S3" con Minio, agregue una directiva buckets a su archivo Homestead.yaml. Después de definir sus buckets, debe ejecutar el comando vagrant reload --provision en su terminal:

buckets:
    - name: your-bucket
      policy: public
    - name: your-private-bucket
      policy: none

Los valores soportados para policy incluyen: none, download, upload y public.

#Laravel Dusk

Para ejecutar pruebas de Laravel Dusk dentro de Homestead, debe habilitar la funcionalidad webdriver en su configuración Homestead:

features:
    - webdriver: true

Después de habilitar la funcionalidad webdriver, debe ejecutar el comando vagrant reload --provision en su terminal.

#Compartiendo su Entorno

A veces puede querer compartir en qué está trabajando con compañeros o un cliente. Vagrant tiene soporte incorporado para esto mediante el comando vagrant share; sin embargo, esto no funcionará si tiene múltiples sitios configurados en su archivo Homestead.yaml.

Para resolver este problema, Homestead incluye su propio comando share. Para comenzar, conéctese vía SSH a su máquina virtual Homestead con vagrant ssh y ejecute el comando share homestead.test. Este comando compartirá el sitio homestead.test de su archivo de configuración Homestead.yaml. Puede sustituir cualquiera de sus otros sitios configurados por homestead.test:

share homestead.test

Después de ejecutar el comando, verá una pantalla de Ngrok que contiene el registro de actividad y las URLs públicas accesibles para el sitio compartido. Si desea especificar una región personalizada, subdominio u otra opción de tiempo de ejecución de Ngrok, puede agregarlas a su comando share:

share homestead.test -region=eu -subdomain=laravel

Si necesita compartir contenido sobre HTTPS en lugar de HTTP, usar el comando sshare en lugar de share le permitirá hacerlo.

Внимание

Recuerde, Vagrant es inherentemente inseguro y está exponiendo su máquina virtual a Internet al ejecutar el comando share.

#Depuración y Perfilado

#Depurando Peticiones Web con Xdebug

Homestead incluye soporte para depuración paso a paso usando Xdebug. Por ejemplo, puede acceder a una página en su navegador y PHP se conectará a su IDE para permitir la inspección y modificación del código en ejecución.

Por defecto, Xdebug ya está activo y listo para aceptar conexiones. Si necesita habilitar Xdebug en la CLI, ejecute el comando sudo phpenmod xdebug dentro de su máquina virtual Homestead. Luego, siga las instrucciones de su IDE para habilitar la depuración. Finalmente, configure su navegador para activar Xdebug con una extensión o bookmarklet.

Внимание

Xdebug hace que PHP funcione considerablemente más lento. Para deshabilitar Xdebug, ejecute sudo phpdismod xdebug dentro de su máquina virtual Homestead y reinicie el servicio FPM.

#Inicio Automático de Xdebug

Al depurar pruebas funcionales que hacen peticiones al servidor web, es más fácil iniciar la depuración automáticamente en lugar de modificar las pruebas para pasar un encabezado o cookie personalizado que active la depuración. Para forzar que Xdebug inicie automáticamente, modifique el archivo /etc/php/7.x/fpm/conf.d/20-xdebug.ini dentro de su máquina virtual Homestead y agregue la siguiente configuración:

; If Homestead.yaml contains a different subnet for the IP address, this address may be different...
xdebug.client_host = 192.168.10.1
xdebug.mode = debug
xdebug.start_with_request = yes

#Depurando Aplicaciones CLI

Para depurar una aplicación PHP CLI, use el alias de shell xphp dentro de su máquina virtual Homestead:

xphp /path/to/script

#Perfilando Aplicaciones con Blackfire

Blackfire es un servicio para perfilar peticiones web y aplicaciones CLI. Ofrece una interfaz interactiva que muestra datos de perfil en gráficos de llamadas y líneas de tiempo. Está diseñado para usarse en desarrollo, staging y producción, sin impacto para los usuarios finales. Además, Blackfire proporciona chequeos de rendimiento, calidad y seguridad en el código y en la configuración php.ini.

El Blackfire Player es una aplicación de código abierto para Web Crawling, pruebas web y scraping que puede trabajar conjuntamente con Blackfire para crear escenarios de perfilado.

Para habilitar Blackfire, use la configuración "features" en su archivo de configuración Homestead:

features:
    - blackfire:
        server_id: "server_id"
        server_token: "server_value"
        client_id: "client_id"
        client_token: "client_value"

Las credenciales del servidor y cliente Blackfire requieren una cuenta Blackfire. Blackfire ofrece varias opciones para perfilar una aplicación, incluyendo una herramienta CLI y una extensión para navegador. Por favor, revise la documentación de Blackfire para más detalles.

#Interfaces de Red

La propiedad networks del archivo Homestead.yaml configura las interfaces de red para su máquina virtual Homestead. Puede configurar tantas interfaces como necesite:

networks:
    - type: "private_network"
      ip: "192.168.10.20"

Para habilitar una interfaz bridged, configure una opción bridge para la red y cambie el tipo de red a public_network:

networks:
    - type: "public_network"
      ip: "192.168.10.20"
      bridge: "en1: Wi-Fi (AirPort)"

Para habilitar DHCP, simplemente elimine la opción ip de su configuración:

networks:
    - type: "public_network"
      bridge: "en1: Wi-Fi (AirPort)"

Para actualizar qué dispositivo usa la red, puede agregar una opción dev a la configuración de la red. El valor predeterminado de dev es eth0:

networks:
    - type: "public_network"
      ip: "192.168.10.20"
      bridge: "en1: Wi-Fi (AirPort)"
      dev: "enp2s0"

#Extendiendo Homestead

Puede extender Homestead usando el script after.sh en la raíz de su directorio Homestead. En este archivo, puede agregar cualquier comando shell necesario para configurar y personalizar adecuadamente su máquina virtual.

Al personalizar Homestead, Ubuntu puede preguntarle si desea conservar la configuración original de un paquete o sobrescribirla con un nuevo archivo de configuración. Para evitar esto, debe usar el siguiente comando al instalar paquetes para evitar sobrescribir cualquier configuración previamente escrita por Homestead:

sudo apt-get -y \
    -o Dpkg::Options::="--force-confdef" \
    -o Dpkg::Options::="--force-confold" \
    install package-name

#Personalizaciones de Usuario

Cuando usa Homestead con su equipo, puede querer ajustar Homestead para que se adapte mejor a su estilo personal de desarrollo. Para lograr esto, puede crear un archivo user-customizations.sh en la raíz de su directorio Homestead (el mismo directorio que contiene su archivo Homestead.yaml). En este archivo, puede hacer cualquier personalización que desee; sin embargo, el archivo user-customizations.sh no debe ser controlado por versiones.

#Configuraciones Específicas del Proveedor

#VirtualBox

#natdnshostresolver

Por defecto, Homestead configura la opción natdnshostresolver en on. Esto permite que Homestead use la configuración DNS del sistema operativo anfitrión. Si desea anular este comportamiento, agregue las siguientes opciones de configuración a su archivo Homestead.yaml:

provider: virtualbox
natdnshostresolver: 'off'