🚀 Módulo 9 - Despliegue

Desplegar tu app web con FTP y GitHub

¿Ya terminaste tu aplicación local y quieres que el mundo la vea? En esta guía aprenderás a preparar tu entorno de producción, exportar tu base de datos y subir archivos con FTP y Git.

⏱️ ~12 min de lectura 🎯 Nivel: Intermedio 🌐 Proyecto en producción

Tener tu proyecto en localhost es solo el primer paso. El verdadero reto es llevarlo a producción, donde cualquiera pueda acceder desde internet. En esta guía aprenderás a desplegar tu aplicación web de forma segura y profesional.

Repositorio en GitHub y operaciones básicas con Git

GitHub es una plataforma para alojar y colaborar en proyectos de código. Git es la herramienta que controla las versiones.

1

Instalar Git

Descarga desde git-scm.com

2

Configurar usuario

Nombre y email para commits

3

Inicializar repo

git init en tu proyecto

4

Subir a GitHub

Conectar remote y hacer push

⚙️ Configurar Git por primera vez
# Configurar nombre y email (se guardan globalmente)
git config --global user.name "Gustavo Arias Solórzano"
git config --global user.email "tuemail@email.com"

# Verificar configuración
git config --global --list
📦 Inicializar y subir tu primer commit
# Navegar a la carpeta de tu proyecto
cd /ruta/a/tu/proyecto

# Inicializar repositorio Git
git init

# Crear archivo .gitignore para excluir archivos sensibles
echo "config.php" >> .gitignore
echo ".env" >> .gitignore
echo "uploads/*" >> .gitignore

# Añadir todos los archivos al staging
git add .

# Crear primer commit
git commit -m "feat: proyecto full-stack inicial listo para producción"

# Conectar con repositorio remoto en GitHub
git remote add origin https://github.com/tuusuario/tu-proyecto.git

# Establecer rama principal y subir
git branch -M main
git push -u origin main

Resultado: Tu código ahora está versionado y disponible en GitHub para mostrar a empleadores o colaborar con otros desarrolladores.

⚠️ Seguridad: Nunca subas credenciales

Añade al .gitignore: config.php, .env, vendor/ y cualquier archivo con contraseñas o claves API.

Preparación del entorno de producción

Antes de subir tu app, asegúrate de que el servidor esté listo:

  • PHP: versión compatible (7.4 o superior recomendada)
  • MySQL: base de datos creada con usuario y permisos
  • phpMyAdmin: acceso para importar/exportar bases de datos
  • Permisos de carpetas: 755 para directorios, 644 para archivos
  • SSL/HTTPS: certificado activo para conexiones seguras
/public_html (raíz web)
├── index.php
├── config.php (fuera de web si es posible)
├── /app
│ ├── /models
│ ├── /views
│ └── /controllers
├── /assets
│ ├── /css
│ ├── /js
│ └── /img
└── /uploads (permisos 755)
✅ Checklist pre-despliegue

display_errors = Off en producción
• Credenciales de BD actualizadas para el servidor
• Rutas relativas verificadas (no usar C:\xampp\...)
• Archivos de log configurados para depuración segura

Exportación e importación de BD en servidor compartido

📤 Exportar desde localhost

  1. Abre phpMyAdmin en localhost
  2. Selecciona tu base de datos
  3. Ve a la pestaña Exportar
  4. Elige método Rápido o Personalizado
  5. Formato: SQL (por defecto)
  6. Click en Continuar y descarga el archivo

📥 Importar en producción

  1. Abre phpMyAdmin en tu hosting
  2. Crea una nueva base de datos
  3. Selecciona la BD recién creada
  4. Ve a la pestaña Importar
  5. Selecciona el archivo .sql exportado
  6. Click en Continuar para ejecutar
🔧 Actualizar configuración de BD en producción
// config.php - Versión para producción
<?php
$servername = "localhost"; // En hosting compartido suele ser localhost
$username = "usuario_hosting"; // Usuario creado en panel de hosting
$password = "contraseña_segura"; // Contraseña del usuario de BD
$dbname = "nombre_base_datos"; // Nombre exacto de la BD en hosting

$conn = new mysqli($servername, $username, $password, $dbname);

if ($conn->connect_error) {
    error_log("Error de conexión: " . $conn->connect_error);
    die("Error de conexión. Intenta más tarde.");
}
?>

Transferencia de archivos mediante FTP con FileZilla

FileZilla es un cliente FTP gratuito y multiplataforma para subir archivos al servidor.

🔌 Conectar FileZilla a tu hosting
# Datos que necesitas (proporcionados por tu hosting):
Servidor (Host):   ftp.tudominio.com o IP del servidor
Usuario:           usuario@tudominio.com
Contraseña:        tu_contraseña_ftp
Puerto:            21 (FTP) o 22 (SFTP recomendado)

# En FileZilla:
1. Abre el programa
2. Ingresa los datos en la barra superior
3. Click en "Conexión rápida"
4. Verifica que aparezcan tus archivos del servidor a la derecha

Tip: Usa SFTP (puerto 22) en lugar de FTP tradicional para transferencias cifradas y más seguras.

Subir archivos al servidor:

  • A la izquierda: tus archivos locales en tu computadora
  • A la derecha: archivos del servidor remoto
  • Navega a public_html (o la carpeta raíz de tu dominio)
  • Arrastra y suelta tu proyecto desde la izquierda hacia la derecha
  • Espera a que termine la transferencia (barra inferior)
⚠️ Errores comunes al subir archivos

• Subir a la carpeta equivocada (no es public_html)
• Olvidar archivos ocultos como .htaccess
• Permisos incorrectos en carpetas de uploads
• No actualizar config.php con credenciales de producción

Verifica que todo funcione

Una vez subido tu proyecto, realiza estas pruebas esenciales:

✅ Carga inicial

Visita https://tudominio.com y verifica que la página principal cargue sin errores.

✅ Autenticación

Prueba el login y registro: ¿se crean usuarios en la BD de producción?

✅ PHPMailer

Solicita recuperación de contraseña: ¿llega el correo al destinatario?

✅ CRUD completo

Crea, lee, actualiza y elimina registros: ¿se reflejan los cambios en la BD?

🔍 Depuración en producción

Si algo falla, revisa los logs de error de tu hosting (usualmente en public_html/error_log o desde el panel de control). Nunca muestres errores detallados al usuario final.

🎉 ¿Has completado el ciclo full-stack?

¡Felicidades! Has recorrido todo el camino: desde los fundamentos hasta el despliegue en producción. Ahora puedes crear aplicaciones web completas y llevarlas al mundo real.

🚀 Lo que puedes hacer ahora:

  • Mostrar tu proyecto a empleadores como portafolio
  • Conseguir clientes freelance con sistemas reales
  • Iterar y mejorar tu aplicación con nuevas funcionalidades
  • Aplicar a trabajos junior con experiencia demostrable

📚 ¿Quieres la versión completa del libro?

Esta guía es una versión resumida del libro "Programación Full-Stack", que incluye el código completo del sistema de login, ejercicios resueltos y explicaciones profundas de despliegue.

Comprar en Amazon →

¿Tienes dudas sobre FTP, Git o despliegue en producción? ¡Déjalas en los comentarios! 👇