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 está en un contenedor o máquina virtual, asi que puedes darte 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é regresando 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 [email protected]
brew uninstall --force [email protected]
brew uninstall --force [email protected]
brew uninstall --force [email protected]
brew uninstall --force [email protected]
brew unlink [email protected] && brew uninstall [email protected]
brew unlink [email protected] && brew uninstall [email protected]
brew unlink [email protected] && brew uninstall [email protected]
brew unlink [email protected] && brew uninstall [email protected]
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 homebrew-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