Bases de datos
Mi aplicación PHP con MySQL funciona en localhost pero no en el servidor de hosting. El login no funciona y parece que no se conecta a la base de datos, aunque una prueba de conexión simple da OK. ¿Qué puede estar causando este problema?
Aplicación PHP no conecta a BD en hosting aunque funciona localmente
Intermedio
Este es un problema común al migrar aplicaciones de un entorno local a hosting. Aunque una prueba de conexión simple funcione, hay varias causas potenciales:
**1. Diferencias en la configuración de la conexión:**
- Verifica que el archivo de configuración (config.php o similar) esté usando las credenciales correctas del hosting (servidor, usuario, contraseña y nombre de base de datos).
- El servidor de BD en hosting generalmente no es 'localhost' sino un dominio específico (ej: mysql.seudominio.com).
**2. Rutas de archivos:**
- Las rutas absolutas o relativas pueden ser diferentes en el servidor. Revisa las rutas en tus sentencias require() e include().
- Usa rutas relativas o define una constante con la ruta base.
**3. Permisos de archivos:**
- Verifica que los permisos de archivos sean los adecuados (generalmente 644 para archivos PHP).
- Los directorios deben tener permisos 755.
**4. Habilitación de extensiones PHP:**
- Comprueba que la extensión mysqli o PDO esté habilitada en el servidor (contacta a soporte si no lo está).
- Crea un archivo info.php con phpinfo() para verificar.
**5. Aislamiento de variables:**
- Si usas variables de sesión o globales, asegúrate de que $_POST, $_GET u otras superglobales estén siendo procesadas correctamente.
- Implementa registro de errores (error_log) para identificar fallos específicos.
**Pasos recomendados:**
1. Añade manejo de errores en tu conexión: try-catch (PDO) o mysqli_error().
2. Registra los errores en un archivo log para ver los detalles.
3. Compara línea por línea el código que funciona localmente con el del servidor.
4. Verifica que la base de datos y el usuario tengan los permisos necesarios en el panel de control.
Si después de estas verificaciones persiste el problema, contacta a soporte técnico con los detalles del error (sin credenciales).
**1. Diferencias en la configuración de la conexión:**
- Verifica que el archivo de configuración (config.php o similar) esté usando las credenciales correctas del hosting (servidor, usuario, contraseña y nombre de base de datos).
- El servidor de BD en hosting generalmente no es 'localhost' sino un dominio específico (ej: mysql.seudominio.com).
**2. Rutas de archivos:**
- Las rutas absolutas o relativas pueden ser diferentes en el servidor. Revisa las rutas en tus sentencias require() e include().
- Usa rutas relativas o define una constante con la ruta base.
**3. Permisos de archivos:**
- Verifica que los permisos de archivos sean los adecuados (generalmente 644 para archivos PHP).
- Los directorios deben tener permisos 755.
**4. Habilitación de extensiones PHP:**
- Comprueba que la extensión mysqli o PDO esté habilitada en el servidor (contacta a soporte si no lo está).
- Crea un archivo info.php con phpinfo() para verificar.
**5. Aislamiento de variables:**
- Si usas variables de sesión o globales, asegúrate de que $_POST, $_GET u otras superglobales estén siendo procesadas correctamente.
- Implementa registro de errores (error_log) para identificar fallos específicos.
**Pasos recomendados:**
1. Añade manejo de errores en tu conexión: try-catch (PDO) o mysqli_error().
2. Registra los errores en un archivo log para ver los detalles.
3. Compara línea por línea el código que funciona localmente con el del servidor.
4. Verifica que la base de datos y el usuario tengan los permisos necesarios en el panel de control.
Si después de estas verificaciones persiste el problema, contacta a soporte técnico con los detalles del error (sin credenciales).
Artículos relacionados
❓
❓
¿Por qué recibo un error 500 al generar archivos PDF desde mi base de datos MySQL?
Soluciona problemas al generar PDFs desde MySQL.
¿Es posible aumentar el número de conexiones simultáneas a las bases de datos en mi hosting compartido?
Límites de conexiones simultáneas en servidores compartidos.
🙋
¿No encontraste lo que buscabas?
Nuestro equipo de soporte está listo para ayudarte.
Contactar soporte