Desplegar aplicaciones PHP con Git: guía completa en tu VPS

desplegar aplicaciones PHP

📅 Publicado el 15 de septiembre, 2026 · Por Equipo RedServicio

Por qué desplegar aplicaciones PHP con Git es la mejor opción

Si llevas años subiendo archivos por FTP uno a uno, ya sabes cómo acaba esto: un archivo olvidado, una versión antigua que pisa a la nueva, y ese momento incómodo en el que tienes que deshacer un cambio… y no recuerdas cuál era. Desplegar aplicaciones PHP con Git resuelve todo eso. Cada push actualiza tu servidor de forma controlada, reproducible y en segundos. En este artículo te explico cómo montarlo en tu VPS de RedServicio, desde la configuración inicial hasta la automatización completa con hooks.

Antes de empezar, necesitas esto:

  • Un servidor VPS con acceso SSH (los planes VPS de RedServicio incluyen acceso root y soporte 24/7).
  • PHP 8.1 o superior instalado junto con Composer.
  • Git instalado tanto en tu máquina local como en el servidor.
  • Un proyecto PHP versionado en un repositorio (GitHub, GitLab, Bitbucket o un repositorio propio).

Paso 1: Prepara tu servidor VPS

Instala Git y las dependencias

Conéctate a tu VPS por SSH e instala lo necesario:

sudo apt update && sudo apt install git php-cli php-mbstring php-xml unzip composer -y

Verifica las versiones con git --version y php -v. Un consejo que ahorrarás disgustos: usa la misma versión de PHP en local y en producción. Las sorpresas de compatibilidad no son agradables.

Crea un usuario dedicado para despliegues

Desplegar como root es mala idea. Crea un usuario específico:

sudo adduser deploy && sudo usermod -aG www-data deploy

Luego configura la autenticación por clave SSH copiando tu clave pública con ssh-copy-id deploy@tu-servidor. Es mucho más seguro que las contraseñas y, de paso, facilita los despliegues automatizados.

Paso 2: Configura el repositorio en el servidor

Hay dos caminos. El más directo es clonar tu repositorio en el directorio web:

cd /var/www && sudo git clone [email protected]:usuario/mi-proyecto.git miapp

Funciona, sí. Pero el enfoque profesional es otro: un repositorio bare en el servidor con un hook que sincronice los archivos hacia el directorio web. Así separas el historial de Git del código que sirve Apache o Nginx, y evitas exponer cosas que no deberían verse:

git init --bare /home/deploy/miapp.git

Paso 3: Automatiza el despliegue con hooks de Git

Los hooks son scripts que Git ejecuta en momentos concretos. El hook post-receive es el que nos interesa para despliegues automáticos. Créalo así:

nano /home/deploy/miapp.git/hooks/post-receive

Y añade esto:

#!/bin/bash
GIT_WORK_TREE=/var/www/miapp git checkout -f master
cd /var/www/miapp && composer install --no-dev --optimize-autoloader
sudo systemctl reload php8.2-fpm

Dale permisos de ejecución con chmod +x /home/deploy/miapp.git/hooks/post-receive. Ahora, desde tu máquina local, añade el servidor como remoto:

git remote add produccion deploy@tu-servidor:/home/deploy/miapp.git

A partir de aquí, cada vez que ejecutes git push produccion master, tu aplicación se actualiza sola, Composer instala las dependencias y PHP-FPM se recarga. Primera vez que lo ves funcionar, cuesta creérselo.

Consejo pro: Usa la rama main para producción y una rama staging para pruebas. Puedes configurar dos hooks distintos para que cada rama se despliegue en un directorio diferente. Así testebas cambios reales antes de llegar a tus usuarios.

Paso 4: Buenas prácticas de seguridad y mantenimiento

Protege tus archivos sensibles

Los directorios .git, los archivos .env y las dependencias de Composer no deben ser accesibles desde el navegador. Si tu repositorio está dentro del directorio web, bloquea el acceso en Nginx:

location ~ /\.(git|env) { deny all; }

Otra opción, más limpia si me preguntas: apuntar el document root a la carpeta public del proyecto (es el estándar en Laravel y Symfony). Eso resuelve el problema de raíz.

Automatiza tareas post-despliegue

Según tu framework, añade al hook comandos adicionales:

  • Laravel: php artisan migrate --force y php artisan config:cache.
  • Symfony: php bin/console cache:clear --env=prod.
  • Proyectos genéricos: limpieza de cachés y reinicio de colas de trabajo.

Planifica la reversión

Todo buen despliegue contempla el rollback. Si algo falla, vuelves a la versión anterior con git checkout <commit-anterior> seguido de un nuevo despliegue. Para entornos críticos, merece la pena mirar los despliegues atómicos con enlaces simbólicos: mantienes varios directorios de releases (/releases/20240515, /releases/20240516) y un enlace current que apunta a la versión activa. Cambiar de versión es tan simple como actualizar el enlace simbólico. Literalmente, un comando.

Preguntas frecuentes

¿Necesito GitHub para desplegar con Git?
No. Puedes usar un repositorio bare directamente en tu VPS, sin depender de servicios externos. Es incluso más privado.

¿Puedo desplegar varias aplicaciones en el mismo VPS?
Sí. Cada aplicación puede tener su propio repositorio bare, su hook y su directorio web independiente, siempre que gestiones bien los recursos.

¿Qué hago si el push falla por permisos?
Verifica que el usuario deploy tenga escritura sobre el directorio del repositorio y pertenencia al grupo www-data.

Conclusión: despliega con confianza en tu VPS

Aprender a desplegar aplicaciones PHP con Git cambia tu forma de trabajar: actualizaciones en segundos, historial completo de cambios y la posibilidad de revertir errores sin drama. La configuración inicial lleva su tiempo, cierto. Pero el ahorro después es enorme en cada iteración de tu proyecto.

En RedServicio ponemos a tu disposición VPS con acceso root, almacenamiento NVMe y soporte técnico 24/7 en español para acompañarte en cada paso, desde la instalación de Git hasta la automatización de tus hooks de despliegue. Si tu proyecto PHP está listo para crecer, es buen momento para migrar a un entorno profesional. Empieza hoy mismo.

📝

Equipo RedServicio

Artículos escritos y revisados por nuestro equipo técnico especializado en hosting e infraestructura web en España.

¿Listo para un hosting de verdad?

Servidores en España · Soporte 24/7 en español · Migración gratuita

Ver Planes desde 3,95€/mes →

Te puede interesar:

Página Gratis — Crea tu web gratis

Clisec — Seguridad informática

Scroll al inicio