Hosting Equipo Avantys 8 min

HestiaCP para Desarrolladores: Entorno PHP Profesional 2026

Guía completa para configurar HestiaCP como entorno de desarrollo PHP. Multi-PHP, Composer, Git, Xdebug, Node.js y despliegues automatizados.

// Compartir

HestiaCP para Desarrolladores: Entorno PHP Profesional 2026

// Índice de contenidos

HestiaCP como entorno de desarrollo PHP profesional

Un entorno de desarrollo profesional necesita flexibilidad: múltiples versiones de PHP para proyectos legacy y modernos, Composer para dependencias, Git para control de versiones, y herramientas de debugging como Xdebug.

HestiaCP ofrece todo esto en un solo panel, sin la complejidad de configurar cada herramienta manualmente. He usado HestiaCP como entorno de desarrollo para equipos de hasta 10 desarrolladores, con docenas de proyectos simultáneos en diferentes versiones de PHP.

En esta guía te muestro cómo convertir tu VPS con HestiaCP en una estación de desarrollo completa: desde la configuración de multi-PHP hasta despliegues automatizados con Git hooks.

Por qué HestiaCP para desarrollo

Ventajas frente a XAMPP/MAMP/Docker

CaracterísticaXAMPP/MAMPDockerHestiaCP VPS
Multi-PHP simultáneoLimitado✓ Complejo✓ Nativo
Entorno igual a producción
Gestión visual✓ Básica✓ Completa
Email testingRequiere config✓ Incluido
SSL realComplejo✓ Let’s Encrypt
Colaboración equipo
CosteGratisGratisVPS ~€5/mes

Casos de uso ideales

  • Freelancers con múltiples clientes y proyectos
  • Agencias que necesitan entornos de staging
  • Equipos que colaboran en los mismos proyectos
  • Proyectos legacy que requieren PHP antiguo

Requisitos mínimos

UsoRAMCPUDisco
Individual2 GB1 vCPU40 GB
Equipo pequeño4 GB2 vCPU60 GB
Equipo grande8 GB4 vCPU100 GB

Configurar Multi-PHP

Múltiples versiones de PHP en HestiaCP

HestiaCP soporta múltiples versiones de PHP simultáneamente, permitiendo que cada proyecto use la versión que necesita.

Versiones disponibles

PHPEstadoUso recomendado
8.3ActualNuevos proyectos
8.2LTSProducción estable
8.1Soporte seguridadLegacy reciente
8.0EOLSolo migración
7.4EOLLegacy obligatorio
7.2EOLLegacy muy antiguo

Habilitar versiones adicionales

Desde el panel:

  1. Ve a Server → Configure → Web Server
  2. Marca las versiones PHP que necesitas
  3. Guarda y espera la instalación

O por CLI:

# Ver versiones disponibles
v-list-sys-php

# Instalar PHP 8.1 adicional
apt install php8.1 php8.1-fpm php8.1-cli php8.1-common \
    php8.1-mysql php8.1-curl php8.1-gd php8.1-mbstring \
    php8.1-xml php8.1-zip php8.1-bcmath php8.1-intl

# Reiniciar servicios
systemctl restart php8.1-fpm
v-rebuild-web-domains admin

Asignar PHP por dominio

# Cambiar versión PHP de un dominio
v-change-web-domain-backend-tpl usuario dominio.com PHP-8.1

# Ver versión actual
v-list-web-domain usuario dominio.com | grep BACKEND

Crear templates personalizados

Para configuraciones PHP específicas por proyecto:

# Copiar template existente
cp /usr/local/hestia/data/templates/web/php-fpm/PHP-8.3.tpl \
   /usr/local/hestia/data/templates/web/php-fpm/PHP-8.3-dev.tpl

# Editar con configuración de desarrollo
nano /usr/local/hestia/data/templates/web/php-fpm/PHP-8.3-dev.tpl

Añade opciones de desarrollo:

php_admin_value[display_errors] = On
php_admin_value[error_reporting] = E_ALL
php_admin_value[log_errors] = On
php_admin_value[memory_limit] = 512M
php_admin_value[max_execution_time] = 300

Instalar y usar Composer

Composer es esencial para cualquier proyecto PHP moderno.

Instalar Composer globalmente

# Descargar instalador
curl -sS https://getcomposer.org/installer | php

# Mover a PATH global
mv composer.phar /usr/local/bin/composer

# Verificar instalación
composer --version

Instalar para usuario específico

Si cada desarrollador necesita su propio Composer:

# Como usuario (no root)
su - usuario
cd ~
curl -sS https://getcomposer.org/installer | php
echo 'alias composer="php ~/composer.phar"' >> ~/.bashrc
source ~/.bashrc

Usar Composer por proyecto

# Navegar al proyecto
cd /home/usuario/web/proyecto.com/public_html

# Iniciar proyecto nuevo
composer init

# Instalar dependencias existentes
composer install

# Añadir paquete
composer require monolog/monolog

# Actualizar dependencias
composer update

Configurar autoload

En tu index.php o bootstrap:

<?php
require_once __DIR__ . '/vendor/autoload.php';

// Tu código aquí

Composer con diferentes versiones PHP

# Usar PHP específico para Composer
/usr/bin/php8.1 /usr/local/bin/composer install

# Crear alias por proyecto
alias composer81="/usr/bin/php8.1 /usr/local/bin/composer"

Configurar Git en el servidor

Git permite control de versiones y despliegues automatizados.

Instalar Git

# Probablemente ya está instalado
apt install git

# Configurar usuario global
git config --global user.name "Tu Nombre"
git config --global user.email "[email protected]"

Clonar repositorio en proyecto

# Como el usuario del dominio
su - usuario
cd /home/usuario/web/proyecto.com

# Clonar repo (reemplaza public_html)
rm -rf public_html
git clone [email protected]:tu-usuario/tu-repo.git public_html

# O clonar en subdirectorio
git clone [email protected]:tu-usuario/tu-repo.git public_html/app

Configurar SSH keys para GitHub/GitLab

# Generar key SSH
su - usuario
ssh-keygen -t ed25519 -C "servidor-desarrollo"

# Ver clave pública (añadir a GitHub/GitLab)
cat ~/.ssh/id_ed25519.pub

# Probar conexión
ssh -T [email protected]

Git hooks para despliegue automático

Crea /home/usuario/web/proyecto.com/public_html/.git/hooks/post-receive:

#!/bin/bash

# Variables
DEPLOY_DIR="/home/usuario/web/proyecto.com/public_html"
BRANCH="main"

# Checkout
cd $DEPLOY_DIR
git --work-tree=$DEPLOY_DIR --git-dir=$DEPLOY_DIR/.git checkout -f $BRANCH

# Instalar dependencias
composer install --no-dev --optimize-autoloader

# Limpiar caché (Laravel ejemplo)
php artisan cache:clear
php artisan config:cache
php artisan route:cache

echo "Despliegue completado: $(date)"
chmod +x /home/usuario/web/proyecto.com/public_html/.git/hooks/post-receive

VPS para desarrollo

El VPS HestiaCP incluye Multi-PHP, Composer, Git y todas las herramientas que necesitas para desarrollar. Entorno profesional desde €8.62/mes.

Ver VPS Desarrollo

Xdebug para debugging

Xdebug es imprescindible para debugging profesional.

Instalar Xdebug

# Para PHP 8.3
apt install php8.3-xdebug

# Para múltiples versiones
apt install php8.2-xdebug php8.1-xdebug

Configurar Xdebug 3

Crea /etc/php/8.3/mods-available/xdebug.ini:

zend_extension=xdebug.so

; Modo de operación
xdebug.mode=debug,develop

; Configuración de conexión
xdebug.client_host=tu-ip-local
xdebug.client_port=9003
xdebug.start_with_request=trigger

; Logs
xdebug.log=/var/log/xdebug.log
xdebug.log_level=3

; IDE key
xdebug.idekey=PHPSTORM

Habilitar Xdebug

# Habilitar para PHP-FPM
phpenmod -v 8.3 xdebug
systemctl restart php8.3-fpm

# Verificar
php -m | grep xdebug

Configurar VS Code

En .vscode/launch.json:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "pathMappings": {
                "/home/usuario/web/proyecto.com/public_html": "${workspaceFolder}"
            }
        }
    ]
}

Configurar PHPStorm

  1. File → Settings → PHP → Debug
  2. Xdebug port: 9003
  3. File → Settings → PHP → Servers
  4. Añade servidor con path mappings

Activar debugging por request

Añade a la URL: ?XDEBUG_SESSION_START=PHPSTORM

O usa extensión de navegador:

  • Chrome: Xdebug Helper
  • Firefox: Xdebug Helper

Desactivar en producción

# Deshabilitar Xdebug
phpdismod -v 8.3 xdebug
systemctl restart php8.3-fpm

Node.js y herramientas frontend

Proyectos modernos necesitan Node.js para compilar assets.

Instalar Node.js con NVM

# Instalar NVM
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash

# Cargar NVM
source ~/.bashrc

# Instalar Node LTS
nvm install --lts

# Verificar
node --version
npm --version

Instalar Node.js globalmente

# Usando NodeSource
curl -fsSL https://deb.nodesource.com/setup_20.x | bash -
apt install nodejs

# Verificar
node --version
npm --version

Herramientas comunes

# Instaladores de paquetes
npm install -g yarn pnpm

# Build tools
npm install -g vite webpack

# Utilidades
npm install -g npm-check-updates

Compilar assets por proyecto

cd /home/usuario/web/proyecto.com/public_html

# Instalar dependencias
npm install

# Desarrollo (watch mode)
npm run dev

# Producción
npm run build

PM2 para procesos Node

# Instalar PM2
npm install -g pm2

# Iniciar aplicación Node
pm2 start app.js --name "mi-app"

# Ver procesos
pm2 list

# Logs
pm2 logs mi-app

# Reiniciar con sistema
pm2 startup
pm2 save

Bases de datos de desarrollo

Crear base de datos por proyecto

# Desde CLI
v-add-database usuario proyecto_db db_user contraseña

# La base de datos será: usuario_proyecto_db
# El usuario será: usuario_db_user

phpMyAdmin

HestiaCP incluye phpMyAdmin. Accede en:

https://tu-servidor:8083/phpmyadmin/

Múltiples entornos de DB

Para desarrollo, staging y producción separados:

# Desarrollo
v-add-database usuario proyecto_dev dev_user pass123

# Staging
v-add-database usuario proyecto_staging stg_user pass456

# Producción (en otro servidor idealmente)

Exportar/Importar bases de datos

# Exportar
mysqldump -u root -p usuario_proyecto_db > backup.sql

# Importar
mysql -u root -p usuario_proyecto_dev < backup.sql

# Con compresión
mysqldump -u root -p usuario_proyecto_db | gzip > backup.sql.gz
gunzip < backup.sql.gz | mysql -u root -p usuario_proyecto_dev

Redis para desarrollo

# Instalar Redis
apt install redis-server php8.3-redis

# Configurar
systemctl enable redis-server
systemctl start redis-server

# Verificar
redis-cli ping
# Respuesta: PONG

Entornos por proyecto

Workflow de desarrollo con HestiaCP

Estructura recomendada

/home/usuario/web/
├── proyecto-cliente1.dev/
│   └── public_html/          # PHP 8.3
├── proyecto-legacy.dev/
│   └── public_html/          # PHP 7.4
├── staging-cliente1.dev/
│   └── public_html/          # PHP 8.3 (copia de prod)
└── api-proyecto.dev/
    └── public_html/          # PHP 8.2

Dominios de desarrollo

Usa subdominios o dominios .dev/.local:

# Añadir dominio de desarrollo
v-add-web-domain usuario proyecto.dev

# Añadir SSL local (opcional)
v-add-letsencrypt-domain usuario proyecto.dev

Variables de entorno

Crea .env por proyecto:

# /home/usuario/web/proyecto.dev/public_html/.env
APP_ENV=development
APP_DEBUG=true
DB_HOST=localhost
DB_DATABASE=usuario_proyecto_dev
DB_USERNAME=usuario_dev_user
DB_PASSWORD=contraseña

Archivos de configuración

Para Laravel:

// config/app.php lee de .env
'env' => env('APP_ENV', 'production'),
'debug' => env('APP_DEBUG', false),

Para WordPress:

// wp-config.php
define('WP_DEBUG', true);
define('WP_DEBUG_LOG', true);
define('WP_DEBUG_DISPLAY', false);

Despliegues automatizados

Stack de desarrollo completo con HestiaCP

Script de despliegue básico

Crea /home/usuario/scripts/deploy.sh:

#!/bin/bash

# Configuración
PROJECT_DIR="/home/usuario/web/proyecto.com/public_html"
BRANCH="main"
LOG_FILE="/var/log/deploy.log"

echo "=== Despliegue iniciado: $(date) ===" >> $LOG_FILE

cd $PROJECT_DIR

# Pull cambios
git fetch origin
git reset --hard origin/$BRANCH

# Instalar dependencias PHP
composer install --no-dev --optimize-autoloader

# Instalar dependencias Node y compilar
npm ci
npm run build

# Migraciones (Laravel)
php artisan migrate --force

# Limpiar cachés
php artisan cache:clear
php artisan config:cache
php artisan route:cache
php artisan view:cache

# Permisos
chown -R usuario:usuario $PROJECT_DIR
find $PROJECT_DIR -type d -exec chmod 755 {} \;
find $PROJECT_DIR -type f -exec chmod 644 {} \;

echo "=== Despliegue completado: $(date) ===" >> $LOG_FILE

GitHub Actions + SSH

.github/workflows/deploy.yml:

name: Deploy to Production

on:
  push:
    branches: [main]

jobs:
  deploy:
    runs-on: ubuntu-latest
    steps:
      - name: Deploy via SSH
        uses: appleboy/ssh-action@master
        with:
          host: ${{ secrets.HOST }}
          username: ${{ secrets.USERNAME }}
          key: ${{ secrets.SSH_KEY }}
          script: |
            cd /home/usuario/web/proyecto.com/public_html
            git pull origin main
            composer install --no-dev
            npm ci && npm run build
            php artisan migrate --force

Webhook para despliegue

Crea endpoint en tu proyecto:

<?php
// /deploy-webhook.php

$secret = 'tu-secreto-webhook';
$signature = $_SERVER['HTTP_X_HUB_SIGNATURE_256'] ?? '';

$payload = file_get_contents('php://input');
$hash = 'sha256=' . hash_hmac('sha256', $payload, $secret);

if (!hash_equals($hash, $signature)) {
    http_response_code(401);
    exit('Unauthorized');
}

// Ejecutar despliegue
exec('/home/usuario/scripts/deploy.sh 2>&1', $output, $return);

echo implode("\n", $output);

Entorno de desarrollo listo

El VPS HestiaCP Administrado incluye configuración optimizada para desarrollo: Multi-PHP, Composer, Git hooks, y soporte técnico especializado.

Ver VPS Desarrollo

Herramientas CLI útiles

WP-CLI para WordPress

# Instalar WP-CLI
curl -O https://raw.githubusercontent.com/wp-cli/builds/gh-pages/phar/wp-cli.phar
chmod +x wp-cli.phar
mv wp-cli.phar /usr/local/bin/wp

# Usar
cd /home/usuario/web/sitio.com/public_html
wp core update
wp plugin update --all
wp cache flush

Laravel Artisan

cd /home/usuario/web/proyecto.com/public_html

# Comandos comunes
php artisan make:model Producto -mcr
php artisan migrate:fresh --seed
php artisan tinker
php artisan queue:work

Symfony Console

cd /home/usuario/web/proyecto.com/public_html

php bin/console cache:clear
php bin/console doctrine:migrations:migrate
php bin/console debug:router

Scripts personalizados

Crea aliases útiles en ~/.bashrc:

# Navegación rápida
alias web="cd /home/\$(whoami)/web"
alias proyecto="cd /home/\$(whoami)/web/proyecto.com/public_html"

# Logs
alias phplog="tail -f /var/log/php8.3-fpm.log"
alias nginxlog="tail -f /var/log/nginx/domains/*.log"

# Composer con PHP específico
alias composer81="/usr/bin/php8.1 /usr/local/bin/composer"
alias composer82="/usr/bin/php8.2 /usr/local/bin/composer"

# Git shortcuts
alias gs="git status"
alias gp="git pull origin main"
alias gc="git commit -am"

Buenas prácticas

Separar desarrollo de producción

AspectoDesarrolloProducción
display_errorsOnOff
error_reportingE_ALLE_ALL & ~E_DEPRECATED
XdebugHabilitadoDeshabilitado
OPcache validate0 (off)60 (segundos)
CacheDeshabilitadoHabilitado

Estructura de branches

  • main: Producción (siempre estable)
  • develop: Staging (pruebas integración)
  • feature/xxx: Desarrollo local

Preguntas frecuentes

¿Puedo desarrollar en Windows y desplegar en HestiaCP?

Sí. HestiaCP (Linux) es el entorno de servidor. Puedes desarrollar localmemente en Windows/Mac (usando Docker, XAMPP o WSL) y desplegar cambios a tu servidor HestiaCP via Git.

¿HestiaCP soporta Docker?

Sí, puedes instalar Docker en el mismo servidor. Sin embargo, HestiaCP gestiona el servidor web (Nginx/Apache) directamente. Lo ideal es usar Docker para servicios adicionales (Redis, ElasticSearch) o usar HestiaCP como entorno nativo sin Docker para la web.

¿Cómo accedo a la base de datos remotamente?

Por seguridad, MySQL suele estar cerrado al exterior. Lo mejor es usar un túnel SSH (soportado por la mayoría de clientes DB como TablePlus o DBeaver) conectando al puerto 3306 a través de SSH.

¿Puedo tener diferentes versiones de Node.js?

Sí, usando NVM (Node Version Manager) puedes instalar y cambiar entre múltiples versiones de Node.js por usuario o por proyecto.

¿Es seguro dejar Xdebug habilitado?

No en producción. Xdebug añade una sobrecarga de rendimiento significativa y puede exponer información sensible. Úsalo solo en entornos de desarrollo y deshabilítalo cuando no lo uses.

Conclusión

HestiaCP no es solo un panel para alojar sitios; es una potente suite de desarrollo. Al combinar las herramientas nativas de Linux (Git, Composer, Bash) con la facilidad de gestión de HestiaCP, obtienes un entorno profesional, flexible y gratuito.

Ya no necesitas pagar licencias costosas de cPanel o luchar con configuraciones manuales de servidores “bare metal”. HestiaCP te da lo mejor de ambos mundos.

Si quieres un entorno de desarrollo llave en mano, con soporte para resolver dudas de configuración, el VPS HestiaCP Administrado de Avantys es la solución ideal para tu equipo.


Guías relacionadas


Parte de la guía principal
Volver a VPS HestiaCP Administrado

VPS HestiaCP Administrado

Tu servidor HestiaCP con soporte técnico profesional. Nos encargamos de la administración para que tú te dediques a tus clientes.

Ver Planes HestiaCP

VPS HestiaCP Administrado

La potencia de un VPS con el panel HestiaCP, montado y gestionado por nosotros.

Ver VPS gestionado
// Boletín

Suscríbete al boletín

Guías nuevas, sin spam. Cancela cuando quieras.