certmundo.
es‑mx

7 min de lectura

¿Cómo desplegar tu aplicación PHP y MySQL en un hosting real?

Desplegar tu aplicación PHP y MySQL en un hosting real significa copiar tu proyecto local a un servidor web público para que cualquier persona en internet pueda usarlo.

El salto que todo desarrollador debe dar

Llevaste semanas construyendo tu sistema. Funciona perfecto en tu computadora. Le muestras la pantalla a tu cliente y dice: "¿Y cuándo lo puedo usar desde mi celular?". Ese momento llega siempre. Saber desplegarlo correctamente te separa de los desarrolladores que solo hacen proyectos de prueba.

En esta lección vas a aprender el sistema completo: elegir hosting, subir archivos, crear la base de datos en producción y ajustar la conexión. Paso a paso, sin omitir nada.

El sistema EMPACAR-SUBIR-CONECTAR

Este es el marco de trabajo que vas a seguir. Se llama EMPACAR-SUBIR-CONECTAR y tiene tres fases claras.

  • EMPACAR: Preparas tu código local para producción.
  • SUBIR: Llevas los archivos al servidor.
  • CONECTAR: Ajustas la base de datos y las credenciales reales.

Cada fase tiene pasos específicos. Si salteas una, el sitio falla.

Fase 1 — EMPACAR: prepara tu proyecto antes de subir

Antes de tocar el servidor, ordena tu proyecto local. Hay tres cosas que debes hacer.

1. Separa las credenciales en un archivo externo.

Nunca subas contraseñas escritas directamente en tu código. Crea un archivo llamado config.php fuera de la carpeta pública:

<?php
// config.php — fuera de public_html
define('DB_HOST', 'localhost');
define('DB_NAME', 'mi_base');
define('DB_USER', 'mi_usuario');
define('DB_PASS', 'mi_contrasena');

Luego en conexion.php lo llamas así:

<?php
require_once '../config.php';

try {
    $pdo = new PDO(
        'mysql:host=' . DB_HOST . ';dbname=' . DB_NAME . ';charset=utf8',
        DB_USER,
        DB_PASS
    );
    $pdo->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
    die('Error de conexión: ' . $e->getMessage());
}

2. Exporta tu base de datos local.

Abre phpMyAdmin en tu entorno local (XAMPP o Laragon). Selecciona tu base de datos, haz clic en "Exportar" y descarga el archivo .sql. Ese archivo contiene toda la estructura de tus tablas y los datos de prueba que quieras llevar.

3. Verifica las rutas de tus archivos.

En local usas rutas como C:/xampp/htdocs/miproyecto/. En el servidor esas rutas no existen. Usa siempre rutas relativas o la función __DIR__ de PHP para que funcione en cualquier entorno.

Fase 2 — SUBIR: lleva tu código al servidor

Elige un hosting mexicano

Para proyectos en México, tres opciones populares son Hostinger México, SiteGround y A2 Hosting. Los tres ofrecen PHP 8+ y MySQL incluido. Los precios arrancan desde $50 al mes en planes compartidos. Para un sistema interno de una empresa pequeña como una tortillería o una farmacia de barrio, ese plan es suficiente.

Conéctate por FTP

Usa un cliente FTP gratuito como FileZilla. Tu proveedor de hosting te da cuatro datos: servidor FTP, usuario, contraseña y puerto (casi siempre 21). Con esos datos abres FileZilla y ves dos paneles: tu computadora a la izquierda, el servidor a la derecha.

Sube todos tus archivos PHP a la carpeta public_html. Esa es la carpeta raíz que el mundo ve cuando escribe tu dominio.

Importante: el archivo config.php con tus contraseñas va una carpeta arriba de public_html, no dentro. Así nadie puede descargarlo desde el navegador.

Estructura recomendada en el servidor:

/home/tuusuario/
├── config.php          ← fuera del acceso web
└── public_html/
    ├── index.php
    ├── conexion.php
    ├── productos.php
    └── css/

Fase 3 — CONECTAR: crea y configura la base de datos en producción

Crea la base de datos desde cPanel

Casi todos los hostings mexicanos usan cPanel. Sigue estos pasos:

  1. Entra a cPanel y busca "Bases de datos MySQL".
  2. Escribe un nombre para tu base, por ejemplo misitiodb.
  3. Crea un usuario nuevo con una contraseña fuerte.
  4. Asigna el usuario a la base de datos con todos los privilegios.

Anota bien el nombre de la base, el usuario y la contraseña. Los vas a necesitar en config.php.

Importa tu archivo SQL

En cPanel, abre phpMyAdmin del servidor. Selecciona tu base de datos recién creada. Haz clic en "Importar" y sube el archivo .sql que exportaste en la fase 1. En segundos tendrás todas tus tablas y datos en producción.

Actualiza config.php con los datos reales

Ahora edita config.php con los datos del servidor:

<?php
define('DB_HOST', 'localhost');       // casi siempre es localhost
define('DB_NAME', 'tuusuario_misitiodb'); // cPanel suele añadir prefijo
define('DB_USER', 'tuusuario_dbuser');
define('DB_PASS', 'TuContrasenaMuySegura2024');

Nota que cPanel agrega el nombre de tu cuenta como prefijo. Si tu cuenta es ferretmx y tu base es misitiodb, el nombre real es ferretmx_misitiodb.

Diferencias clave entre local y producción

Esta tabla te ayuda a evitar los errores más comunes al hacer el cambio:

Aspecto Local (XAMPP) Producción (hosting)
URL localhost/miproyecto tudominio.com
Carpeta raíz htdocs/miproyecto public_html
Errores PHP visibles No (debes revisar logs)
Nombre de la base mibase usuario_mibase
Permisos de archivos Sin restricción Archivos: 644, Carpetas: 755

Activa los logs de error en producción

Cuando algo falla en el servidor, el navegador solo muestra una página en blanco. Para saber qué pasó, activa los logs. Al inicio de index.php agrega temporalmente:

<?php
ini_set('display_errors', 0);
ini_set('log_errors', 1);
ini_set('error_log', __DIR__ . '/error_log.txt');
error_reporting(E_ALL);

Eso guarda todos los errores en error_log.txt. Cuando termines de depurar, elimina ese archivo y quita estas líneas.

Errores comunes al desplegar por primera vez

Error 1: "No such file or directory" Causa: dejaste rutas absolutas de tu computadora en el código. Solución: reemplaza todas las rutas con __DIR__ o rutas relativas.

Error 2: "Access denied for user" Causa: las credenciales en config.php no coinciden con las que creaste en cPanel. Revisa el prefijo del nombre de usuario y de la base de datos.

Error 3: Caracteres extraños (é, ñ) Causa: falta el charset en la cadena de conexión PDO. Verifica que tienes ;charset=utf8 en el DSN y que importaste el SQL con codificación UTF-8.

Error 4: Página en blanco sin mensaje Causa: error fatal de PHP con display_errors apagado. Activa los logs como se mostró arriba y revisa error_log.txt.

Error 5: Imágenes o CSS que no cargan Causa: rutas relativas mal escritas. Usa rutas desde la raíz del dominio empezando con /, por ejemplo /css/estilos.css.

Lo que aprendiste en este curso

Llegaste desde cero hasta tener una aplicación PHP y MySQL desplegada en internet. Estos son los pilares que construiste:

  • Conectar PHP a MySQL con PDO de forma segura.
  • Leer, insertar, actualizar y eliminar registros con parámetros enlazados.
  • Proteger tu aplicación contra inyección SQL.
  • Construir un panel CRUD completo y reutilizable.
  • Desplegar todo en un servidor real con credenciales separadas.

Tus próximos pasos como desarrollador PHP

Ahora que tienes una base sólida, estos tres caminos te van a abrir más puertas:

  1. Aprende un framework: Laravel es el más usado en México. Empresas como Clip y Kubo Financiero lo usan en producción. Te da estructura, seguridad y velocidad.
  2. Agrega autenticación: Implementa login con sesiones PHP o con una librería como JWT para APIs. Casi todo sistema real lo necesita.
  3. Versiona tu código con Git: Sube tus proyectos a GitHub. Los reclutadores en México buscan candidatos con repositorios activos. Un portafolio con tres proyectos reales vale más que un CV con diez cursos listados.

Un desarrollador PHP junior en México puede ganar entre $12,000 y $18,000 al mes. Con experiencia en MySQL, PDO y despliegue en producción, ese número sube. El conocimiento que tienes hoy ya es suficiente para construir proyectos reales y cobrar por ellos.

El código que nunca sale de tu computadora no le sirve a nadie — despliega, itera y mejora.

Puntos clave

  • Usa el sistema EMPACAR-SUBIR-CONECTAR: prepara credenciales en un archivo separado, sube los archivos por FTP a `public_html` y configura la base de datos desde cPanel antes de hacer cualquier prueba en producción.
  • Nunca subas contraseñas directamente en el código fuente. Guarda `config.php` una carpeta arriba de `public_html` para que no sea accesible desde el navegador.
  • En cPanel, el nombre real de tu base de datos lleva el prefijo de tu cuenta de hosting. Si tu cuenta es `ferretmx` y tu base es `misitiodb`, la cadena correcta es `ferretmx_misitiodb`.
  • Activa el log de errores en producción con `ini_set('error_log', ...)` para diagnosticar páginas en blanco. Sin esto, depurar en un servidor remoto es casi imposible.
  • El conocimiento de PDO, CRUD y despliegue que construiste en este curso es suficiente para crear proyectos reales. El siguiente paso natural es aprender Laravel y control de versiones con Git.

Comparte esta lección:

¿Cómo desplegar tu aplicación PHP y MySQL en un hosting real? | PHP y MySQL: Desarrollo Web con Base de Datos | Certmundo