Solución de problemas
Soluciones a problemas comunes y técnicas de depuración para el CMS XOOPS.
📋 Diagnóstico rápido
Sección titulada «📋 Diagnóstico rápido»Antes de profundizar en problemas específicos, compruebe estas causas comunes:
- Permisos de archivo - Los directorios necesitan 755, los archivos necesitan 644
- Versión de PHP - Asegúrese de tener PHP 7.4+ (8.x recomendado)
- Registros de error - Compruebe
xoops_data/logs/y los registros de error de PHP - Caché - Limpie caché en Admin → Sistema → Mantenimiento
🗂️ Contenido de sección
Sección titulada «🗂️ Contenido de sección»Problemas comunes
Sección titulada «Problemas comunes»- Pantalla blanca de la muerte (WSOD)
- Errores de conexión a base de datos
- Errores de permiso denegado
- Fallos en la instalación de módulos
- Errores de compilación de plantilla
Preguntas frecuentes
Sección titulada «Preguntas frecuentes»- FAQ de instalación
- FAQ de módulos
- FAQ de temas
- FAQ de rendimiento
Depuración
Sección titulada «Depuración»- Habilitación del modo de depuración
- Uso del depurador Ray
- Depuración de consultas de base de datos
- Depuración de plantillas Smarty
🚨 Problemas comunes y soluciones
Sección titulada «🚨 Problemas comunes y soluciones»Pantalla blanca de la muerte (WSOD)
Sección titulada «Pantalla blanca de la muerte (WSOD)»Síntomas: Página blanca en blanco, sin mensaje de error
Soluciones:
-
Habilitar visualización de error PHP temporalmente:
// Add to mainfile.php temporarilyerror_reporting(E_ALL);ini_set('display_errors', 1); -
Compruebe el registro de errores de PHP:
Ventana de terminal tail -f /var/log/php/error.log -
Causas comunes:
- Límite de memoria excedido
- Error fatal de sintaxis PHP
- Extensión requerida faltante
-
Corregir problemas de memoria:
// In mainfile.php or php.iniini_set('memory_limit', '256M');
Errores de conexión a base de datos
Sección titulada «Errores de conexión a base de datos»Síntomas: “No se puede conectar a la base de datos” o similar
Soluciones:
-
Verificar credenciales en mainfile.php:
define('XOOPS_DB_HOST', 'localhost');define('XOOPS_DB_USER', 'your_username');define('XOOPS_DB_PASS', 'your_password');define('XOOPS_DB_NAME', 'your_database'); -
Probar la conexión manualmente:
<?php$conn = new mysqli('localhost', 'user', 'pass', 'database');if ($conn->connect_error) {die("Connection failed: " . $conn->connect_error);}echo "Connected successfully"; -
Comprobar servicio MySQL:
Ventana de terminal sudo systemctl status mysqlsudo systemctl restart mysql -
Verificar permisos de usuario:
GRANT ALL PRIVILEGES ON xoops.* TO 'user'@'localhost';FLUSH PRIVILEGES;
Errores de permiso denegado
Sección titulada «Errores de permiso denegado»Síntomas: No se pueden cargar archivos, no se pueden guardar configuraciones
Soluciones:
-
Establecer permisos correctos:
Ventana de terminal # Directoriesfind /path/to/xoops -type d -exec chmod 755 {} \;# Filesfind /path/to/xoops -type f -exec chmod 644 {} \;# Writable directorieschmod -R 777 xoops_data/chmod -R 777 uploads/ -
Establecer la propiedad correcta:
Ventana de terminal chown -R www-data:www-data /path/to/xoops -
Comprobar SELinux (CentOS/RHEL):
Ventana de terminal # Check statussestatus# Allow httpd to writesetsebool -P httpd_unified 1
Fallos en la instalación del módulo
Sección titulada «Fallos en la instalación del módulo»Síntomas: El módulo no se instala, errores SQL
Soluciones:
-
Compruebe los requisitos del módulo:
- Compatibilidad de versión de PHP
- Extensiones de PHP requeridas
- Compatibilidad de versión de XOOPS
-
Instalación manual de SQL:
Ventana de terminal mysql -u user -p database < modules/mymodule/sql/mysql.sql -
Limpiar caché de módulo:
// In xoops_data/caches/rm -rf xoops_cache/*rm -rf smarty_cache/*rm -rf smarty_compile/* -
Compruebe la sintaxis de xoops_version.php:
Ventana de terminal php -l modules/mymodule/xoops_version.php
Errores de compilación de plantilla
Sección titulada «Errores de compilación de plantilla»Síntomas: Errores de Smarty, plantilla no encontrada
Soluciones:
-
Limpiar caché de Smarty:
Ventana de terminal rm -rf xoops_data/caches/smarty_cache/*rm -rf xoops_data/caches/smarty_compile/* -
Verificar sintaxis de plantilla:
{* Correct *}{$variable}{* Incorrect - missing $ *}{variable} -
Verificar que la plantilla existe:
Ventana de terminal ls modules/mymodule/templates/ -
Regenerar plantillas:
- Admin → Sistema → Mantenimiento → Plantillas → Regenerar
🐛 Técnicas de depuración
Sección titulada «🐛 Técnicas de depuración»Habilitar modo de depuración de XOOPS
Sección titulada «Habilitar modo de depuración de XOOPS»// In mainfile.phpdefine('XOOPS_DEBUG_LEVEL', 2);
// Levels:// 0 = Off// 1 = PHP debug// 2 = PHP + SQL debug// 3 = PHP + SQL + Smarty templatesUsando el depurador Ray
Sección titulada «Usando el depurador Ray»Ray es una excelente herramienta de depuración para PHP:
// Install via Composercomposer require spatie/ray --dev
// Usage in your coderay($variable);ray($object)->expand();ray()->measure();
// Database queriesray($sql)->label('Query');Consola de depuración de Smarty
Sección titulada «Consola de depuración de Smarty»{* Enable in template *}{debug}
{* Or in PHP *}$xoopsTpl->debugging = true;Registro de consultas de base de datos
Sección titulada «Registro de consultas de base de datos»// Enable query logging$GLOBALS['xoopsDB']->setLogger(new XoopsLogger());
// Get all queries$queries = $GLOBALS['xoopsLogger']->queries;foreach ($queries as $query) { echo $query['sql'] . " - " . $query['time'] . "s\n";}❓ Preguntas frecuentes
Sección titulada «❓ Preguntas frecuentes»Instalación
Sección titulada «Instalación»P: El asistente de instalación muestra una página en blanco R: Compruebe los registros de error de PHP, asegúrese de que PHP tenga suficiente memoria, verifique los permisos de archivo.
P: No se puede escribir en mainfile.php durante la instalación
R: Establezca permisos: chmod 666 mainfile.php durante la instalación, luego chmod 444 después.
P: Las tablas de base de datos no se crearon R: Compruebe que el usuario de MySQL tiene privilegios CREATE TABLE, verifique que la base de datos existe.
Módulos
Sección titulada «Módulos»P: La página de administración del módulo está en blanco R: Limpie caché, compruebe admin/menu.php del módulo para errores de sintaxis.
P: Los bloques del módulo no se muestran R: Compruebe permisos de bloque en Admin → Bloques, verifique que el bloque está asignado a páginas.
P: La actualización del módulo falla R: Copia de seguridad de base de datos, intente actualizaciones SQL manuales, compruebe requisitos de versión.
P: El tema no se aplica correctamente R: Limpie caché de Smarty, compruebe que theme.html existe, verifique permisos de tema.
P: El CSS personalizado no se carga R: Compruebe ruta de archivo, limpie caché de navegador, verifique sintaxis de CSS.
P: Las imágenes no se muestran R: Compruebe rutas de imagen, verifique permisos de carpeta de carga.
Rendimiento
Sección titulada «Rendimiento»P: El sitio es muy lento R: Habilite almacenamiento en caché, optimice la base de datos, compruebe consultas lentas, habilite OpCache.
P: Uso de memoria alto R: Aumente memory_limit, optimice consultas grandes, implemente paginación.
🔧 Comandos de mantenimiento
Sección titulada «🔧 Comandos de mantenimiento»Limpiar todos los cachés
Sección titulada «Limpiar todos los cachés»#!/bin/bashrm -rf xoops_data/caches/xoops_cache/*rm -rf xoops_data/caches/smarty_cache/*rm -rf xoops_data/caches/smarty_compile/*echo "Cache cleared!"Optimización de base de datos
Sección titulada «Optimización de base de datos»-- Optimize all tablesOPTIMIZE TABLE xoops_config;OPTIMIZE TABLE xoops_users;OPTIMIZE TABLE xoops_session;-- Repeat for other tables
-- Or optimize all at oncemysqlcheck -o -u user -p databaseComprobar integridad de archivo
Sección titulada «Comprobar integridad de archivo»# Compare against fresh installdiff -r /path/to/xoops /path/to/fresh-xoops🔗 Documentación relacionada
Sección titulada «🔗 Documentación relacionada»- Comenzar
- Mejores prácticas de seguridad
- Mapa de ruta de XOOPS 4.0
📚 Recursos externos
Sección titulada «📚 Recursos externos»#xoops #troubleshooting #debugging #faq #errors #solutions