Desarrollo y Despliegue

Cómo desplegar una aplicación Symfony en un VPS (paso a paso)

Del servidor a producción: hardening, PHP/NGINX, HTTPS y despliegue con Git (incluye CI/CD).

O
Online Toolset TeamEditorial Team
10 min de lectura

Guía paso a paso para desplegar Symfony 6.4 en un VPS (Ubuntu/Debian o Rocky/Alma/RHEL): NGINX/Apache + PHP‑FPM, TLS con Let’s Encrypt, configuración y secretos, migraciones de base de datos, flujos de despliegue (git pull, releases sin interrupciones, Docker), recomendaciones de infraestructura, rendimiento, monitorización/logging y CI/CD. SO objetivo: «todos los candidatos habituales».

Requisitos previos

  • VPS con SSH y usuario sudo no‑root; dominio apuntando a la IP pública (A/AAAA).
  • Git local y en el servidor; acceso al repo (clave SSH o token).
  • Proyecto Symfony 6.4 con Composer y Doctrine Migrations.

Consejo: Dimensiona CPU/RAM/disco/IOPS/swap según « los requisitos de tu aplicación ». Empieza pequeño, monitoriza y escala.

Preparación del servidor

Usuario de despliegue y endurecimiento SSH

Actualizaciones, firewall, utilidades

Instalar PHP, Composer, NGINX/Apache

Preparar la aplicación

Configurar NGINX (recomendado)

HTTPS (Let’s Encrypt)

Recomendaciones de infraestructura

Comparativa de proveedores Proveedor Opciones disponibles Funcionalidades clave Ventajas Inconvenientes DigitalOcean

  • Droplets (VPS)
  • DB/Redis gestionados
  • Spaces/CDN
  • Imágenes 1‑Click
  • Snapshots/Backups
  • Monitoring/Alerts
  • UX sencilla
  • Docs claras
  • Buena red
  • Menos opciones HF
  • Precio medio
  • Linodes (VPS)
  • DB/K8s gestionados
  • Object Storage
  • IPv6 nativo
  • StackScripts
  • Soporte valorado
  • Buena rel. precio/rend.
  • Red fiable
  • Facturación simple
  • Menos regiones
  • Menos add‑ons
  • Cloud Compute
  • High Frequency
  • Bare Metal
  • Muchas regiones
  • ISO personalizado
  • Snapshots
  • Buenas perfs CPU
  • Planes diversos
  • Despliegue rápido
  • Soporte variable
  • Backups opcionales

Dimensionamiento (según « los requisitos de tu aplicación »)

Criterio Valor recomendado Justificación Pequeño 1–2 vCPU, 1–2 GB RAM, 25–40 GB SSD, 1–2 GB swap Punto de partida frugal; monitoriza la carga y escala gradualmente. Medio 2–4 vCPU, 4–8 GB RAM Activar OPcache, caché HTTP y posiblemente CDN para absorber el tráfico. Alto 4–8 vCPU, 8–16 GB RAM BD gestionada, Redis y workers dedicados para escalar.

Flujos de despliegue

  1. git pull en el servidor (simple).
  2. Releases sin interrupciones (symlink current → release).
  3. Docker/docker‑compose (imágenes construidas en CI).

CI/CD (GitHub Actions — ejemplo)

Rendimiento

  • OPcache activado (validate_timestamps=0); recargar FPM en cada release.
  • Caché HTTP y CDN; minificación/bundling; gzip/brotli en NGINX.
  • Doctrine: evitar N+1, índices, profiling; Redis para caché/sesiones si es necesario.

Monitorización y logging

  • APM (Datadog/New Relic) o Prometheus/Grafana; alertas de uptime/latencia y 5xx.
  • Logs centralizados (journald, Loki, ELK); Sentry para errores de aplicación.

Recursos

  • Symfony 6.4 — Deployment
  • Configuración de servidor web
  • Certbot / Let’s Encrypt
SymfonyVPSNGINXPHP-FPMDevOps

Sobre el autor

O
Online Toolset TeamEditorial Team

The Online Toolset editorial team produces practical guides on web development, image optimization, productivity, and digital tools.

Web DevelopmentImage OptimizationDevOpsUI/UXProductivity