Post actualizado el día octubre 29, 2026 by DeiviSanzPlay
Cuando alguien busca «XAMPP migrar a servidor real» casi siempre esconde la misma escena: la web funcionaba en tu portátil, subiste los archivos al hosting y aparece un error 500 o una página en blanco. No es magia ni mala suerte. El entorno local que montaste con XAMPP no es el mismo que el del servidor de producción, y esa diferencia es la que rompe todo.
He visto este caso decenas de veces con proyectos WordPress y con aplicaciones PHP a medida. La gente copia la carpeta htdocs por FTP, importa el .sql en phpMyAdmin y se pregunta por qué no carga. La respuesta suele estar en tres sitios: rutas absolutas, configuración de base de datos y versiones de PHP o MySQL distintas.
Por qué tu copia de XAMPP no es un servidor real
XAMPP es cómodo, pero está pensado para desarrollo. Apache viene con una configuración relajada, MySQL corre sin las restricciones de un entorno gestionado y las extensiones PHP activas no coinciden con las del hosting. Ese es el primer motivo por el que XAMPP migrar a servidor real se complica más de lo que parece.
Un ejemplo concreto: en local activas display_errors y todo se ve perfecto. En producción, el hosting lo tiene en off y tu script muere sin decir nada. Ese silencio es lo que más desconcierta.
También ojo con las rutas. Si en tu código escribiste C:/xampp/htdocs/miproyecto en algún require o en un archivo de configuración, al subirlo todo salta. En un servidor Linux esas rutas no existen. Usa rutas relativas o la constante __DIR__.
El fallo que casi nadie revisa: la codificación y el collation
XAMPP en Windows suele crear bases de datos con utf8mb4_general_ci o incluso latin1 según la versión. El hosting muchas veces usa utf8mb4_unicode_ci. Al importar el dump aparecen acentos raros o caracteres con signos de interrogación. Esto no es un fallo de XAMPP migrar a servidor real en sí, es una consecuencia del traslado a ciegas.
Antes de exportar, comprueba el collation de cada tabla. Si vas a mover una web con contenido en español, portugués o catalán, merece la pena normalizar todo a utf8mb4 desde el principio.
Archivos .htaccess y mod_rewrite
En XAMPP, si tienes la web en localhost/miproyecto, el .htaccess asume que la base es esa subcarpeta. En producción la web vive en la raíz del dominio. Las reglas de reescritura fallan y los enlaces internos llevan a 404. Revisa el RewriteBase y las rutas declaradas en tus scripts.
Y sí, hay un caso en el que esto no aplica: si tu proyecto usa un framework con enrutado propio (Laravel, Symfony) y el document root apunta correctamente a /public, el .htaccess queda en segundo plano. Aun así, comprueba que el hosting permita sobreescribir con AllowOverride.
Qué hacer antes de tocar el FTP
La forma más limpia de XAMPP migrar a servidor real pasa por replicar el entorno antes de subir nada. Compara la versión de PHP (no es lo mismo 7.4 que 8.2), revisa las extensiones activas en tu php.ini y mira la versión de MySQL o MariaDB del hosting. Muchos paneles como cPanel o Plesk te lo muestran en un par de clics.
Si tu web usa Composer, ejecuta composer install –no-dev con la misma versión de PHP del servidor. Si no lo haces, verás errores de dependencias incompatibles.
Y no olvides los permisos. En Windows los archivos heredan permisos que en Linux no significan nada. Sube con permisos 644 para archivos y 755 para carpetas. El hosting suele corregirlo, pero no siempre.
Errores que ni documentación ni tutoriales resuelven
Hay un error clásico que no aparece en ninguna guía: rutas hardcodeadas en la base de datos. Plugins de WordPress como los de backup o los page builders guardan la URL local en la tabla wp_options. Al migrar, todos los enlaces apuntan a http://localhost/miproyecto. Si migras WordPress desde XAMPP a un servidor real, necesitas hacer un search-replace de la URL, con WP-CLI o con una herramienta específica.
Y un aviso honesto: si tu proyecto depende de servicios externos configurados con credenciales locales (pasarelas de pago en modo test, APIs con claves de desarrollo), no esperes que funcione en producción solo por subir los archivos. Esa parte la tienes que reconfigurar a mano.
Checklist mínima antes de dar por terminada la migración
Comprueba que la conexión a la base de datos responde con las credenciales del hosting, que el document root apunta a la carpeta correcta, que las extensiones PHP que usas (gd, curl, mbstring, intl) están activas y que los logs de error del servidor no muestran avisos. Si algo falla, el log es tu mejor aliado, no los foros.
Migrar de XAMPP a un servidor real no es difícil, pero tampoco es copiar y pegar. Es trasladar un entorno a otro distinto y adaptar lo que no encaja. Quien lo entiende así ahorra horas de prueba y error.
Perfiles verificables: Sitio web
Publicado el 29 de October de 2026. Última revisión: 29 de October de 2026.