Runtimes por proyecto en FlyEnv
FlyEnv permite que cada carpeta de proyecto lleve su propia versión de runtime, de modo que una base de código PHP antigua y una aplicación Node.js moderna pueden convivir en la misma máquina; consulta gestionar varias versiones de Node y PHP para conocer el lado del gestor de versiones. Registra un proyecto en la pestaña Projects de cualquier módulo de lenguaje, elige la versión exacta del binario que debe usar y FlyEnv guarda esa elección dentro del propio proyecto. A partir de ahí, los terminales, editores y comandos de ejecución lanzados para ese proyecto resuelven la toolchain correcta automáticamente; el flujo de trabajo paso a paso se explica en la guía de entorno de runtime a nivel de proyecto.

Cómo funciona .flyenv
Cuando añades un proyecto o cambias su versión vinculada, FlyEnv escribe un pequeño archivo .flyenv en el directorio del proyecto. Ese archivo es la única fuente de verdad del entorno del proyecto.
- PATH anteponiéndose: en macOS y Linux el archivo contiene una línea
export PATH="<bin>:<bin>/bin:<bin>/sbin:$PATH"que apunta a los directorios del runtime vinculado; en Windows usa la asignación equivalente de PowerShell$env:PATH. - Etiquetado e idempotente: cada línea que escribe FlyEnv está marcada con una etiqueta
#FlyEnv-ID-<projectId>, de modo que al volver a editar el proyecto se reescriben las mismas líneas en su lugar en lugar de añadir duplicados. - Por módulo de lenguaje: la pestaña Projects es común a los módulos de lenguaje — PHP, NodeJS, Python, Go, Ruby, Rust, Java, .NET, Bun, Deno y más — y cada uno mantiene su propia lista de proyectos con la versión vinculada junto a la ruta del proyecto.
- Editable en la app: el propio archivo
.flyenvpuede abrirse y ajustarse desde la vista de configuración del proyecto cuando necesitas algo más allá de la entrada PATH por defecto.

Hook de shell para zsh, bash y PowerShell
El archivo .flyenv surte efecto a través de un hook de shell que FlyEnv instala en tus archivos de arranque del shell.
- zsh y bash en macOS/Linux: FlyEnv carga su script auxiliar desde
~/.zshrcy~/.bashrc. El hook vigila los cambios de directorio y, cuando hacescda un proyecto registrado, carga el archivo.flyenvde ese proyecto, de modo quephp -vonode -vinforman inmediatamente de la versión vinculada. - Solo directorios en la lista de permitidos: el hook activa los archivos
.flyenvúnicamente para los directorios de proyecto que FlyEnv ha registrado y sincronizado en su lista de permitidos, así que un archivo suelto en otro lugar del disco nunca se ejecuta. - PowerShell en Windows: el mismo mecanismo está conectado al perfil de PowerShell, cubriendo tanto Windows PowerShell como las ediciones de PowerShell (pwsh).

Integración con IDEs y terminales
Como la vinculación vive en el proyecto y no en un ajuste global, cualquier herramienta lanzada sobre esa carpeta hereda el entorno correcto.
- Acciones de apertura: cada fila de proyecto ofrece atajos para abrir la carpeta en un terminal o un IDE — Terminal y PowerShell, además de editores como VSCode, PhpStorm, WebStorm, PyCharm o Sublime según el módulo de lenguaje — con el entorno del proyecto ya aplicado.
- Ejecutar como servicio: un proyecto puede ejecutarse opcionalmente directamente desde FlyEnv con un comando de arranque personalizado o un archivo de ejecución, un puerto elegido (3000 por defecto, enlazado como
http://127.0.0.1:<port>) y variables de entorno adicionales proporcionadas en línea o desde un archivo env; útil para mantener vivo un servidor de desarrollo sin una ventana de terminal. - Ediciones rápidas: al hacer doble clic en una fila de proyecto se abre un editor compacto para la versión vinculada, el puerto y el comentario, de modo que cambiar el runtime de un proyecto lleva segundos.
Selección de versión por sitio
La vinculación de proyectos cubre la línea de comandos; los sitios accedidos desde el navegador tienen su propia elección de versión. Cada sitio creado en el módulo Host selecciona la versión de PHP-FPM que lo sirve (o sigue siendo un sitio estático), y varias versiones de PHP-FPM pueden ejecutarse simultáneamente — cada una en su propio socket — de modo que distintos sitios son servidos por distintas builds de PHP al mismo tiempo. La lista de sitios muestra qué versión sirve a cada sitio, y la configuración de integración con el servidor web se regenera cuando una versión arranca. El conjunto completo de capacidades está documentado en la página de la característica PHP.

Guías, soluciones y demos relacionados
Continúa con una guía práctica, una solución, una demo o una perspectiva de la comunidad.
Notas de compatibilidad
El hook de shell requiere un shell de inicio de sesión soportado: zsh o bash en macOS y Linux, y PowerShell (Windows PowerShell o pwsh) en Windows; otros shells no se conectan automáticamente. El hook solo carga archivos .flyenv de directorios registrados en FlyEnv, y ajusta PATH para la sesión de shell actual; no modifica las variables de entorno de todo el sistema. La vinculación de versiones elige entre runtimes ya instalados o añadidos en FlyEnv; no puede proporcionar una versión que no esté presente en la máquina. La selección de PHP por sitio se aplica a sitios servidos a través de PHP-FPM (FastCGI en Windows); los sitios estáticos y los runtimes que no son PHP no la utilizan. Las diferencias entre plataformas — como los sockets Unix en macOS/Linux frente a los workers FastCGI en Windows — siguen el comportamiento del módulo PHP subyacente, y la página de descarga refleja lo que está disponible para tu sistema operativo.