Guía de gestión de versiones PHP en ServBay: configuración por línea de comandos y entorno web
ServBay es una potente herramienta para entornos de desarrollo web local, diseñada específicamente para macOS, con soporte para varios lenguajes de programación y bases de datos. En este artículo explicamos cómo gestionar de forma flexible diferentes versiones de PHP para tus proyectos en ServBay, tanto al ejecutar scripts desde la terminal como al servir sitios web concretos. Dominar la gestión de versiones PHP en ServBay mejorará tu productividad, garantizando el aislamiento y estabilidad de tus entornos de desarrollo.
1. Entorno por línea de comandos: gestiona la versión PHP de cada proyecto con .servbay.config
Al crear un archivo de configuración .servbay.config
en el directorio raíz de tu proyecto, puedes especificar de manera independiente la versión de PHP que necesita cada proyecto al usar la línea de comandos. ServBay detecta automáticamente el archivo según el directorio donde abras la terminal y carga la versión de PHP correspondiente, asegurando el aislamiento de versiones entre proyectos y evitando conflictos de configuración global.
1.1. Función y funcionamiento de .servbay.config
- Control de versiones por proyecto: ServBay permite instalar y ejecutar múltiples versiones de PHP simultáneamente, desde PHP 5.6 hasta las últimas versiones estables y de desarrollo. Mediante
.servbay.config
, puedes indicar de forma precisa qué versión requiere cada proyecto. - Cambio no invasivo: Al navegar con
cd
a un directorio con el archivo.servbay.config
desde la terminal, ServBay lo detecta y modifica temporalmente las variables de entorno (principalmentePATH
) solo para esa sesión, de modo que los comandosphp
,composer
, etc., apuntan al ejecutable PHP especificado. Al salir de ese directorio, el entorno vuelve a la configuración global de ServBay sin ningún efecto secundario sobre el sistema.
1.2. Cómo configurarlo
En el directorio raíz de tu proyecto crea un archivo llamado .servbay.config
con el siguiente contenido para indicar la versión de PHP:
# Especifica la versión de PHP a usar en este proyecto (ejemplo: PHP 8.3)
PHP_VERSION=8.3
# Si tu proyecto requiere una versión específica de Node.js, especifícalo también (ejemplo: Node.js 20)
# NODE_VERSION=20
2
3
4
5
- El valor de
PHP_VERSION
debe ser un identificador de versión de PHP ya instalado en ServBay, normalmente con el número mayor o mayor-menor (7.4
,8.1
,8.3
,8.5
, etc.). Verifica que la versión exista y esté habilitada en ServBay. - La opción
NODE_VERSION
se configura igual y permite indicar la versión de Node.js a usar por proyecto.
Cómo verificar que funciona:
Abre una terminal en el directorio de tu proyecto que tiene .servbay.config
y ejecuta los siguientes comandos:
$ pwd # Verifica que el directorio es el raíz de tu proyecto
$ php -v # Comprueba si la versión de PHP es la que has configurado (ejemplo: PHP 8.3.x)
$ composer install # La instalación de dependencias se hará usando la versión de PHP activa
2
3
Si al modificar .servbay.config
la versión PHP no cambia, intenta cerrar y volver a abrir la terminal o usa el comando cd .
para forzar a ServBay a recargar la configuración.
1.3. Consejos y buenas prácticas
- Compatibilidad de versiones: Si te enfrentas a errores como "Class not found" o "Call to undefined function" al ejecutar comandos, revisa los requisitos de versión de PHP que pide tu proyecto (por ejemplo en el
composer.json
) y asegúrate de que coinciden con la versión especificada. Proyectos antiguos pueden requerir extensiones o funcionalidades eliminadas en versiones recientes (ejemplo: la extensiónmcrypt
removida desde PHP 7.2). - Valor por defecto global: Si no existe un archivo
.servbay.config
en el directorio actual o en sus padres, ServBay usará la versión PHP predeterminada configurada en la interfaz gráfica. - Gestión de múltiples servicios: Además de PHP,
.servbay.config
te permite especificar la versión de Node.js (NODE_VERSION
), ideal para proyectos donde PHP actúa como backend y Node.js como herramienta de construcción frontend (Webpack, Vite).
1.4. Ejemplo de uso
A continuación, un ejemplo de cómo .servbay.config
permite el cambio automático de versión PHP por proyecto:
Descripción de la imagen: En ServBay, al entrar en directorios con diferentes archivos
.servbay.config
y ejecutar php -v
, la terminal cambia automáticamente a la versión de PHP indicada en el archivo.
2. Entorno web: gestionar la versión PHP desde la interfaz gráfica de ServBay
La interfaz gráfica de ServBay facilita la configuración de una versión PHP distinta para cada sitio web. El entorno web y el de línea de comandos son independientes, por lo que puedes elegir la versión que tu sitio requiera.
2.1. Pasos para configurar
- Abre la interfaz gráfica de ServBay: Lanza la aplicación de ServBay.
- Entra en la gestión de sitios: Haz clic en la pestaña Sitios web (Websites) de la barra lateral izquierda.
- Añade o edita un sitio:
- Pulsa el botón + en la esquina inferior izquierda para agregar uno nuevo.
- O bien selecciona un sitio existente para editarlo.
- Define las propiedades del sitio:
- Directorio raíz: Especifica la carpeta donde están los archivos del sitio. Se recomienda una subcarpeta bajo
/Applications/ServBay/www/
, por ejemplo:/Applications/ServBay/www/tu-sitio/public
(para proyectos Laravel o Symfony). - Dominio: Define el dominio local para acceder al sitio, como
tu-sitio.servbay.demo
. ServBay configura automáticamente la resolución DNS local y certificados HTTPS (usando ServBay User CA o ServBay Public CA), facilitando el desarrollo y las pruebas. - Versión PHP: En el listado desplegable, selecciona la versión de PHP que usará el sitio. Podrás elegir entre todas las que tienes instaladas y habilitadas (7.4, 8.1, 8.3, 8.5, etc.).
- Directorio raíz: Especifica la carpeta donde están los archivos del sitio. Se recomienda una subcarpeta bajo
- Guarda la configuración: Haz clic en guardar cuando termines. ServBay aplicará los cambios automáticamente; es posible que se recargue o reinicie el servidor web y los procesos PHP-FPM correspondientes.
2.2. Detalles técnicos y ventajas
- Aislamiento de servicios: Cada sitio web puede ejecutar su versión de PHP aislada mediante un pool independiente de procesos PHP-FPM, garantizando que errores o fugas de memoria de un sitio no afecten a otros.
- Rendimiento optimizado: Los paquetes de ServBay (incluyendo distintas versiones de PHP) están optimizados tanto para ARM64 (Apple Silicon) como para X86_64, asegurando el mejor rendimiento en cualquier hardware.
- Depuración de errores:
- Consulta los logs de error de PHP en
/Applications/ServBay/var/log/php/php_error.log
. - Comprueba el estado de los procesos PHP-FPM con la herramienta de línea de comandos de ServBay: ejecuta
servbayctl status php 8.3
para ver el estado de PHP 8.3.
- Consulta los logs de error de PHP en
2.3. Integración con servidor web y base de datos
ServBay ofrece gran flexibilidad para seleccionar el servidor web y la base de datos según las necesidades de cada proyecto:
- Soporte para servidores web: Desde la versión 1.7.0 puedes cambiar el servidor web por sitio entre Apache, Nginx y Caddy, los cuales se integran perfectamente con los pools PHP-FPM gestionados por ServBay.
- Gestión de bases de datos: ServBay te permite instalar y administrar múltiples versiones de MySQL, MariaDB, PostgreSQL, MongoDB y Redis. Puedes conectar tu sitio en la configuración web o desde tu código a instancias específicas administradas por ServBay, ideal si tu proyecto depende de versiones concretas (por ejemplo, algunos proyectos Laravel prefieren MariaDB 11.x).
3. Colaboración entre entornos y mejores prácticas
Comprender la independencia entre la configuración de PHP por línea de comandos y por entorno web te permitirá seleccionar la mejor opción para cada escenario:
Escenario | Configuración CLI (.servbay.config ) | Configuración web (GUI de ServBay) | Comentario |
---|---|---|---|
Mantener sistemas antiguos | PHP_VERSION=5.6 en el raíz del proyecto | Selecciona PHP 5.6 en la configuración del sitio | Asegúrate de instalar en ServBay la versión y extensiones PHP necesarias. |
Desarrollar nuevos proyectos (ej. Laravel 11) | PHP_VERSION=8.3 (o superior), quizás NODE_VERSION=20 | Añade nuevo sitio, directorio raíz apuntando a public , selecciona PHP 8.3+, define dominio y HTTPS | Que la CLI (Composer, Artisan, build de Node) y el web utilicen la misma versión PHP. |
Testear versiones futuras de PHP | PHP_VERSION=8.5 en el proyecto de prueba | Añade un sitio de test con PHP 8.5 | Útil para verificar compatibilidad con versiones beta de PHP. |
Correr comandos Composer | Confirma que .servbay.config especifica la versión adecuada en el directorio actual o superior | N/A (Composer se usa por CLI) | Composer utiliza la versión PHP activa en la terminal. |
Consideraciones importantes
- Diferencias entre CLI y entorno web: Aunque uses el mismo número de versión PHP, la configuración por defecto y los módulos cargados pueden variar entre el modo línea de comandos (CLI) y el de servidor web (PHP-FPM). Por ejemplo, la extensión
opcache
suele estar habilitada por defecto en PHP-FPM para mejorar el rendimiento, pero generalmente está deshabilitada en CLI. Si notas comportamientos diferentes, revisa el archivophp.ini
correspondiente y los módulos cargados (cada versión en ServBay tiene su propio archivophp.ini
). - Actualiza ServBay Runtime: Mantén ServBay y su Runtime actualizados para disfrutar de las últimas versiones y parches de seguridad PHP. Las actualizaciones de ServBay suelen incluir renovaciones automáticas del entorno Runtime y las nuevas funcionalidades.
Preguntas frecuentes (FAQ)
P: ¿Qué hacer si la versión de PHP es diferente entre línea de comandos y el sitio web?
R: La configuración de PHP por línea de comandos (controlada por .servbay.config
) y la configuración web (definida en la GUI de ServBay) funcionan de forma independiente. .servbay.config
solo afecta los comandos lanzados en la terminal, mientras que la web elige la versión PHP mediante la configuración gráfica - es decir, qué ejecutable PHP-FPM usa el servidor web (Apache/Nginx/Caddy) para ese sitio. No hay conflicto directo entre ambas. Puedes usar una versión PHP en CLI (ej. para Composer o Artisan) y otra en la web para el mismo proyecto, aunque lo más recomendable es que ambas sean iguales para mantener coherencia entre desarrollo y producción.
Resumen
ServBay pone a tu disposición una potente y flexible gestión de versiones PHP, tanto mediante el archivo .servbay.config
como desde una interfaz gráfica intuitiva. Ya sea para mantener proyectos heredados que necesitan versiones antiguas de PHP o para desarrollar nuevas aplicaciones con las versiones más actuales, ServBay te ayuda a responder de forma ágil. Aprovechando estas características puedes asegurar que tu entorno local se aproxima al de producción, ganando eficiencia y estabilidad en tus desarrollos.