Jere

Virtual Host en Mac

Detallo las configuraciones en algunos archivos de la de apache para utilizar virtual hosts en local y no estar levantando todo el tiempo por ejemplo, artisan (Laravel). Todos los archivos los edite con vs code, que permite guardar como sudo, sino hay que hacerlo desde zsh con ' $ sudo nano ...'

Update No lean esto, usen docker y listo  


  • ~/private/etc/host

Al final del archivo agrego la url local que va a tener mi proyecto:

127.0.0.1   proyecto.local

  • ~/private/etc/apache2/httpd.conf

Acá vamos a editar algunas líneas, en primer lugar hay que descomentar (quitar el #)

Include /private/etc/apache2/extra/httpd-vhosts.conf

Como estoy trabajando con php7 tambien descomente la siguiente

LoadModule php7_module libexec/apache2/libphp7.so

Por último en httpd.conf tenemos que editar el usuario y grupo para que sepa quien va a acceder. Para saber tu grupo podés ir a Preferencias del sistema -> Usuarios y grupos -> (Desbloquear el candado) -> Click derecho sobre tu usuario -> Opciones avanzadas...

User miusuario
Group staff

  • ~/private/etc/apache2/extra/httpd-vhosts.conf

En este archivo tenemos un ejemplo de como configurar nuestro virtualhost

<VirtualHost *:80>
    ServerAdmin [email protected]
    DocumentRoot "/usr/docs/dummy-host2.example.com"
    ServerName dummy-host2.example.com
    ErrorLog "/private/var/log/apache2/dummy-host2.example.com-error_log"
    CustomLog "/private/var/log/apache2/dummy-host2.example.com-access_log" common
</VirtualHost>

No son necesarias todas las líneas y hay otras que tuve que agregar para que funcione, mi etiqueta VirtualHost debajo del ejemplo quedo asi:

<VirtualHost *:80>
    DocumentRoot "/Users/miusuario/proyecto/public"
    ServerName proyecto.local
    <Directory "/Users/miusuario/proyecto/public">
            Options Indexes FollowSymLinks Includes ExecCGI
            AllowOverride All
            Require all granted 
    </Directory>
</VirtualHost>

En muchos sitios vi que la etiqueta Directory se agregaba en un archivo aparte de nombre miusuario.conf, pero en mi caso causaba algún problema ya que no podía acceder al virtual host, por lo que quedó dentro de la etiqueta como esta arriba.


Por último solo queda dar acceso total al disco a la app httpd de apache, entre a Preferencias del sistema -> Seguridad y privacidad -> Acceso total a disco -> (Desbloqueamos el candado) -> +

Luego buscamos

~/usr/sbin/httpd 

y lo seleccionamos para que tenga acceso total al disco.

alt

Luego de estas configuraciones solo quedo reiniciar apache con el comando

sudo apachectl restart

y mi virtualhost ya está accesible localmente desde http://proyecto.local