Valet Plus

Blazing fast macOS PHP development environment

Escuché acerca de Valet Plus hace algún tiempo y tengo que admitir que no presté mucha atenció al tema.

Cuando trabajas en una agencia, cada minuto cuenta y si tu entorno de desarrollo local no funciona y tienes que pasar tiempo reparándolo, estás muert@!.

Si vienes de trabajar en entornos como Vagrant o Docker, migrar a Valet Plus es mucho más sencillo porque todo esta en un contenedor o maquina virtual, asi que puedes dare el lujo de probar a instalar cosas en tu ordenador y si no funcionan y necesitas continuar con el trabajo simplemente ejecutas el comando vagrant up y continuas el experimento en otro momento. Desafortunadamente ese no fué mi caso porque, sí utilizo Vagrant en alguno de los proyectos en los que trabajo pero para la gran mayoría utilizo Mi entorno de desarrollo, en resumen, Apache, MySql, Redis, etc. Todo instalado directamente en MacOs.

Esto puede causar algunos problemas y es por eso que la primera vez que intenté Valet Plus no tuve éxito, y terminé regrezando a mi antigua configuración.

Recientemente decidí darle otra oportunidad. Las siguientes instrucciones son un resumen de lo que hice para finalmente instalarlo.

Primero desinstalé / borré todos los archivos de aplicaciones relacionados:

brew uninstall --force php56 php56-apcu php56-opcache php56-xdebug php56-yaml
brew uninstall --force php70 php70-apcu php70-opcache php70-xdebug php70-yaml
brew uninstall --force php71 php71-apcu php71-opcache php71-xdebug php71-yaml
brew uninstall --force php72 php72-apcu php72-opcache php72-xdebug php72-yaml
brew uninstall --force httpd
brew uninstall --force blackfire-php71
brew uninstall --force php
brew uninstall --force php@5.6
brew uninstall --force php@7.0
brew uninstall --force php@7.1
brew uninstall --force php@7.2
brew uninstall --force php@7.3
brew unlink valet-php@5.6 && brew uninstall valet-php@5.6
brew unlink valet-php@7.0 && brew uninstall valet-php@7.0
brew unlink valet-php@7.1 && brew uninstall valet-php@7.1
brew unlink valet-php@7.2 && brew uninstall valet-php@7.2
brew unlink php71 && brew uninstall php71 && brew uninstall --ignore-dependencies php71
rm -rf /usr/local/opt/valet-php@*
rm -rf /usr/local/opt/php*
rm -rf /usr/local/etc/valet-php/*
brew upgrade
brew update
brew cleanup
brew doctor

Asegúrate de solucionar cualquier problema / advertencia señalada por brew doctor.

A continuación, sigue las Instrucciones para instalar Valet Plus y asegúrate de que se instala todo sin errores.

Primer Problema

Cuando intenté navegar por uno de mis sitios, recibí un error que decía algo como:

value of `$valetConfig['paths']` in `/Users/rdiaz/.composer/vendor/weprovide/valet-plus/server.php:55` was not an array…

Luego de investigar un poco, descubrí que Valet intenta leer config.json desde $home/.valet/config.json pero por alguna razón, Valet crea el directorio .valet/ dentro de /var/root/

No instalé Valet usando sudo y mi directorio $home tenía permisos de escritura… no entendí por qué paso esto.

Solución

Arreglé el problema, creando un enlace simbólico desde var/root/.valet hasta $home/.valet/

Segundo problema

Cuando ejecuté valet fix apareció el siguiente mensaje:

No releases available for package “pecl.php.net/apcu_bc”
install failed

En mi caso hubo un problema con openssl.

pecl intenta conectarse apecl.php.net/apcu_bc pero parece que la version http ya no está disponible. Posteriormente intenta conectarse utilizando https, pero para eso, necesita openssl y como no lo tenía instalado... bumb!

Solución

Solucioné el problema reinstalando openssl:

brew reinstall openssl

Aunque ya se menciona en las Instrucciones para instalar Valet Plus, creo que merece la pena volverlo a menionar: Debes asegurarte de que NADA esté escuchando en el port 80.

Para eso puedes usar

sudo lsof -n -i -P | grep -i ":80 (LISTEN)"
$ sudo lsof -n -i -P | grep -i ":80 (LISTEN)"

nginx     34924           root    9u  IPv4 0xba753e697516dde7      0t0  TCP *:80 (LISTEN)
nginx     34933           john    9u  IPv4 0xba753e697516dde7      0t0  TCP *:80 (LISTEN)
nginx     34934           john    9u  IPv4 0xba753e697516dde7      0t0  TCP *:80 (LISTEN)
nginx     34935           john    9u  IPv4 0xba753e697516dde7      0t0  TCP *:80 (LISTEN)
nginx     34936           john    9u  IPv4 0xba753e697516dde7      0t0  TCP *:80 (LISTEN)

y si eso muestra algo, simplemente elimina los procesos como de costumbre o use top /htop para eliminar los procesos.

Tercer problema

Al ejecutar valet fix por segunda vez, apareció el siguiente mensaje:

Error: Calling needs :cxx11 is disabled! There is no replacement.

Después de mirar en el código y buscar en Internet al respecto, descubrí que este era un problema real en el repositorio de php que Valet utiliza.

Solución

Este fué bastante fácil. Solo tuve que ir al directorio de homebre-php:

cd /usr/local/Homebrew/Library/Taps/henkrehorst/homebrew-php/Formula

Y obtén los últimos cambios en la rama master:

git fetch origin
git rebase origin/master

Comentarios

Siguiente Entrada Entrada Anterior