Ejecutar múltiples versiones de PHP con Homebrew
Uno de los desafíos de crear soluciones en WordPress es trabajar con los diversos entornos que proporciona cada host.
Es decir, algunos todavía ejecutan versiones muy antiguas de PHP; otros están ejecutando versiones más nuevas, pero incluso entonces hay variaciones entre ellos.
Caso en cuestión: he estado ejecutando PHP 7.2 en mi máquina local para desarrollo durante algún tiempo; sin embargo, actualmente estoy en un proyecto en el que algunas de las dependencias de la herramienta de integración continua ofrecen soporte solo para PHP 7.1.
Y como me gusta que mi entorno de desarrollo refleje los entornos de ensayo y producción, creo que es importante asegurarse de que haya paridad.
Si está utilizando un administrador de paquetes, es bastante fácil comenzar con varias versiones de PHP con Homebrew, pero puede encontrarse con un par de inconvenientes en lo que respecta a ejecutarlo junto con Valet.
Múltiples Versiones de PHP con Homebrew
Primero, debe asegurarse de tener PHP 7.1 instalado. Para hacer esto, simplemente ejecute el siguiente comando en su terminal. Esto instalará el paquete pero nada más. Seguirá ejecutando cualquier versión de PHP que esté ejecutando actualmente.
$ brew install php@7.1
Después de eso, deberá decirle a Homebrew que elimine el enlace simbólico que se creó a la versión actual de PHP que está ejecutando y luego vincularlo al paquete que acaba de descargar.
Para hacer eso, ingrese el siguiente comando:
$ brew unlink php && brew link --force php@7.1
¿Recuerdas toda esa charla sobre conchas? Deberá asegurarse de que su shell, en este caso, Bash, conozca la versión de PHP que desea usar.
export PATH="/usr/local/opt/php@7.1/bin:$PATH"
export PATH="/usr/local/opt/php@7.1/sbin:$PATH"
A continuación, enumere todos los servicios que brew está ejecutando. Puede hacerlo ingresando el siguiente comando:
$ brew services list
Una vez que haga esto, verá una lista de los servicios que se están ejecutando, así como la cuenta con la que se están ejecutando algunos de ellos.
Si algunos se ejecutan como root, necesitará iniciarlos y detenerlos usando sudo ; de lo contrario, puede detenerlos e iniciarlos usando sus comandos estándar.
$ sudo brew services stop php
$ sudo brew services stop php@7.1
$ sudo brew services start php@7.1
Después de eso, es probable que desee reiniciar Valet, ya que esto asegurará que PHP, Nginx y Dnsmasq se reinicien.
$ valet restart
Esto debería completar todo lo que necesita hacer para intercambiar versiones de PHP.
Verifica tu trabajo
Para verificar que su servidor web esté, de hecho, usando la última versión de Nginx, recomiendo crear un solo directorio (llamo al mío beta), vincularlo usando Valet y luego colocar un archivo index.php en el directorio que incluye el phpinfo(); Llamada de función.
De esta manera, puede obtener todo tipo de información sobre su entorno.
Desde aquí, debería ver alguna variación de PHP 7.1 (o lo que sea que haya instalado). Y si lo hace, entonces está listo para irse; de lo contrario, es posible que deba ver cómo desinstalar y reinstalar Valet nuevamente.
Pero ese es un paso un poco extremo, y todo lo que ves arriba debería solucionarlo.

