<?xml version="1.0" encoding="UTF-8" standalone="no"?><?xml-stylesheet href="http://www.blogger.com/styles/atom.css" type="text/css"?><rss xmlns:itunes="http://www.itunes.com/dtds/podcast-1.0.dtd" version="2.0"><channel><title>Wiki -  Linux - Linuxeros FAQ</title><description>Blog basado en el foro de www.softwarelibre.org.bo y autorizado por sus moderadores. Está destinado a quienes tienen conocimientos sobre Linux y desean despejar dudas. Este blog está compuesto por una compilación de las mejores consultas con sus respectivas respuestas. Nuestra única fuente es el foro anteriormente mencionado y no nos hacemos responsables por las preguntas y respuestas compiladas ni por los enlaces que puedan figurar en las mismas.</description><managingEditor>noreply@blogger.com (Unknown)</managingEditor><pubDate>Sun, 31 May 2026 10:24:31 -0400</pubDate><generator>Blogger http://www.blogger.com</generator><openSearch:totalResults xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">640</openSearch:totalResults><openSearch:startIndex xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">1</openSearch:startIndex><openSearch:itemsPerPage xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/">25</openSearch:itemsPerPage><link>http://linuxeros-faq.blogspot.com/</link><language>en-us</language><item><title>Cómo instalar y configurar Dovecot en linux</title><link>http://linuxeros-faq.blogspot.com/2026/05/como-instalar-y-configurar-dovecot-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 18 May 2026 09:14:09 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-6435409506419740475</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificila de Google, cómo instalar y configurar Dovecot en linux&lt;/p&gt;

Explicanos detallladamente cómo instalar y configurar Dovecot en linux
&lt;br /&gt;
&lt;br /&gt;
Si estás montando tu propio servidor de correo en Linux, Dovecot es una pieza innegociable. Si Postfix (o cualquier otro MTA) es el cartero que trae las cartas a la oficina, Dovecot es el recepcionista y los casilleros: se encarga de almacenar los correos de forma segura y permitir que tus usuarios los lean desde su móvil o cliente de correo (como Outlook o Thunderbird) usando IMAP o POP3.
&lt;br /&gt;
&lt;br /&gt;
Es rápido, increíblemente ligero y escala de maravilla. Vamos a ver cómo instalarlo y configurarlo detalladamente en Ubuntu/Debian usando el formato moderno de almacenamiento (Maildir).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El Ecosistema del Correo
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Antes de tocar código, es vital entender dónde se posiciona Dovecot en la red:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Paso 1: Instalación de Dovecot
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Instalaremos los paquetes base junto con los demonios para IMAP y POP3 (aunque hoy en día POP3 está casi en desuso, es bueno saber cómo activarlo).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install dovecot-core dovecot-imapd dovecot-pop3d -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Al terminar, el servicio se iniciará automáticamente, pero estará usando una configuración genérica que no es segura.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Paso 2: Habilitar los Protocolos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
La configuración de Dovecot está fragmentada en la carpeta /etc/dovecot/conf.d/ para que sea más modular, aunque el archivo maestro es /etc/dovecot/dovecot.conf.
&lt;br /&gt;
&lt;br /&gt;
Abre el archivo principal:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo nano /etc/dovecot/dovecot.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Busca la línea protocols (si está comentada con un #, quítalo) y asegúrate de que incluya los protocolos que necesitas:
&lt;br /&gt;
&lt;br /&gt;
Ini, TOML

&lt;br /&gt;
&lt;br /&gt;

protocols = imap pop3 lmtp
&lt;br /&gt;
&lt;br /&gt;
(LMTP es útil si planeas conectar Dovecot directamente con Postfix para la entrega local).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Paso 3: Configurar el Almacenamiento (Maildir)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Por defecto, muchos sistemas antiguos usan mbox (un solo archivo gigante para todos los correos), lo cual es una pesadilla de rendimiento. Nosotros usaremos Maildir, que crea un archivo individual por cada correo electrónico.
&lt;br /&gt;
&lt;br /&gt;
Abre el archivo de configuración de correo:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
   sudo nano /etc/etc/dovecot/conf.d/10-mail.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Modifica la directiva mail_location para que apunte al directorio del usuario:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
Ini, TOML
&lt;br /&gt;
&lt;br /&gt;
mail_location = maildir:~/Maildir
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Configura los privilegios mínimos para que Dovecot pueda gestionar los buzones sin problemas de permisos:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
Ini, TOML
&lt;br /&gt;
&lt;br /&gt;
   mail_privileged_group = mail
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Paso 4: Autenticación de Usuarios
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Queremos que los usuarios se autentiquen de forma segura utilizando las propias cuentas del sistema Linux (usuarios del archivo /etc/passwd).
&lt;br /&gt;
&lt;br /&gt;
Abre el archivo de autenticación:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
   sudo nano /etc/dovecot/conf.d/10-auth.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Descomenta o modifica la siguiente línea para prohibir textos planos si no hay cifrado activo (vital para la seguridad):
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
Ini, TOML
&lt;br /&gt;
&lt;br /&gt;
disable_plaintext_auth = yes
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Asegúrate de que los mecanismos permitidos incluyan plain y login:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
Ini, TOML
&lt;br /&gt;
&lt;br /&gt;
auth_mechanisms = plain login
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Paso 5: Cifrado SSL/TLS (¡Obligatorio!)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Hacer correr un servidor de correo en el siglo XXI sin SSL es regalarle tus contraseñas a cualquiera. Vamos a configurar Dovecot para que use certificados válidos (puedes usar los de Let's Encrypt si ya los tienes).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Abre el archivo de SSL:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
   sudo nano /etc/dovecot/conf.d/10-ssl.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Fuerza el uso de SSL cambiando el parámetro a required:
&lt;br /&gt;
&lt;span style="background-color: #fce5cd;"&gt;&lt;br /&gt;
Ini, TOML
&lt;br /&gt;
&lt;br /&gt;
ssl = required
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Especifica las rutas de tu certificado y tu clave privada:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
Ini, TOML
&lt;br /&gt;
&lt;br /&gt;
   ssl_cert = &amp;lt;/etc/letsencrypt/live/tudominio.com/fullchain.pem&lt;/span&gt;&lt;div&gt;&lt;span style="background-color: #fce5cd;"&gt;ssl_key = &amp;lt;/etc/letsencrypt/live/tudominio.com/privkey.pem&lt;/span&gt;&lt;/div&gt;

&lt;br /&gt;
(Nota el carácter &amp;lt;; es obligatorio en la sintaxis de Dovecot para indicarle que lea el contenido del archivo).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;                     
7. Paso 6: Integración con Postfix (El socket de autenticación)

&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;Si estás usando Postfix para enviar correos, este necesitará "preguntarle" a Dovecot si un usuario es legítimo antes de permitirle enviar un email hacia el exterior (SASL Auth).Abre el archivo maestro de sockets:
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Bash   
&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo nano /etc/dovecot/conf.d/10-master.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Busca la sección service auth y configúrala para que cree un socket compatible con Postfix dentro de su jaula de ejecución:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
Ini, TOML   service auth {
&lt;br /&gt;
&lt;br /&gt;
     unix_listener /var/spool/postfix/private/auth {
&lt;br /&gt;
&lt;br /&gt;
       mode = 0660
&lt;br /&gt;
&lt;br /&gt;
       user = postfix
&lt;br /&gt;
&lt;br /&gt;
       group = postfix
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;}
&lt;br /&gt;
&lt;br /&gt;
   }
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
8. Aplicar Cambios y Pruebas
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Reinicia el servicio para que absorba toda la nueva configuración:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo systemctl restart dovecot
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status dovecot
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Tabla de Puertos a abrir en tu Firewall (ufw)&lt;br /&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="97"&gt;&lt;/col&gt;&lt;col width="72"&gt;&lt;/col&gt;&lt;col width="84"&gt;&lt;/col&gt;&lt;col width="288"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Protocolo&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Puerto&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Tipo&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Descripción&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;IMAPS&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;993&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Seguro&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;IMAP sobre SSL/TLS (Recomendado)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;POP3S&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;995&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Seguro&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;POP3 sobre SSL/TLS&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;IMAP&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;143&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Estándar&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Solo funcionará si inicia una conexión cifrada vía STARTTLS&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
Para comprobar que el puerto seguro está escuchando desde el propio servidor, puedes ejecutar:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Bash
&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
openssl s_client -connect localhost:993
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si te devuelve el certificado SSL y un saludo de Dovecot (* OK [CAPABILITY ...] Dovecot ready), tu servidor está listo para recibir conexiones de cualquier cliente de correo moderno.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un consejo de "viejo lobo" de red
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si los correos no aparecen en el cliente de correo tras la configuración, el problema suele ser que la carpeta ~/Maildir no existe en el home del usuario o no tiene los permisos correctos. Dovecot intentará crearla automáticamente la primera vez que llegue un correo, pero si falla, puedes forzar su creación en los usuarios nuevos modificando el esqueleto del sistema en /etc/skel/Maildir/.
&lt;br /&gt;
&lt;br /&gt;
¿Estás configurando este servidor Dovecot para que trabaje en conjunto con Postfix utilizando usuarios locales del sistema, o estás planeando usar una base de datos MySQL/MariaDB para gestionar usuarios virtuales (sin cuenta en el Linux)?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo solucionar problemas de Znuny en linux</title><link>http://linuxeros-faq.blogspot.com/2026/05/como-solucionar-problemas-de-znuny-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 15 May 2026 11:12:16 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-8323851660946615510</guid><description>&lt;p&gt;Le preguntamos a Gemini, la inteligencia artificial de Google&amp;nbsp; cómo solucionar problemas de Zbuby en linux&lt;/p&gt;

Explicanos detalladamente cómo solucionar problemas de Znuny en linux
&lt;br /&gt;
&lt;br /&gt;
Cuando Znuny (el robusto sucesor de OTRS) decide ponerse difícil, generalmente no se debe a un fallo en su código, sino a una desincronización en su ecosistema: el demonio interno, los módulos de Perl, la caché o, el enemigo número uno de todo administrador de sistemas, los permisos de archivos.
&lt;br /&gt;
&lt;br /&gt;
Al ser un sistema de nivel empresarial basado en Perl, su arquitectura es muy estricta. Aquí tienes la guía técnica paso a paso para diagnosticar, depurar y solucionar problemas en Znuny como un experto.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. La Herramienta Suprema: otrs.Console.pl
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
El 90% de las tareas de reparación en Znuny se gestionan desde su CLI integrada.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
[!CRITICAL]
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
Regla de oro inquebrantable:&lt;/b&gt; Nunca ejecutes estos comandos como root. Si lo haces, cambiarás el propietario de los archivos de caché y el servidor web (Apache/Nginx) no podrá leerlos, provocando un Error 500 inmediato. Usa siempre el usuario otrs.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# Cambia al entorno del usuario otrs
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si ejecutas este comando sin argumentos, desplegará el catálogo completo de herramientas de diagnóstico. Las más importantes para resolver problemas están bajo el espacio de nombres Maint::.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. El Síntoma #1: Los tickets no se actualizan ni entran correos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si la interfaz web funciona pero el sistema parece "sordo y mudo" (no descarga correos, no envía notificaciones, las tareas programadas no se ejecutan), el Znuny Daemon se ha detenido o está bloqueado.
&lt;br /&gt;
&lt;br /&gt;
El Daemon es el motor que procesa todas las colas de eventos en segundo plano.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Diagnóstico y solución:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# Verificar si el demonio está vivo
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl status
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Si está detenido o responde de forma errática, reinícialo:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl stop
&lt;br /&gt;
&lt;br /&gt;
sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl start
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. El Clásico "Error 500" o Pantalla Blanca (Permisos)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si acabas de restaurar una copia de seguridad, migrar el servidor o (accidentalmente) ejecutaste un comando como root, los permisos del sistema de archivos se habrán roto. Znuny bloquea la ejecución si detecta que el servidor web (www-data) no es dueño o no tiene acceso de lectura/escritura a sus directorios críticos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La solución definitiva:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Znuny cuenta con un script especializado que restablece la estructura de permisos correcta para los directorios var/, Kernel/ y los archivos de configuración:
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="background-color: #fce5cd;"&gt;&lt;br /&gt;
cd /opt/otrs
&lt;br /&gt;
&lt;br /&gt;
sudo bin/otrs.SetPermissions.pl --web-group=www-data
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. La Interfaz se ve "Rota" o los Menús no Despliegan
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si tras instalar un paquete (opm), actualizar el sistema o modificar el archivo Config.pm la web pierde los estilos CSS o el JavaScript falla, el problema está en la caché del Loader. Znuny precompila estos archivos para mejorar la velocidad.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Forzar la reconstrucción visual:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# 1. Eliminar la caché de datos general
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Cache::Delete
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# 2. Limpiar la caché del cargador de CSS y JS
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Loader::CacheCleanup
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# 3. Reconstruir la configuración del sistema
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Config::Rebuild
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Atascos en la Cola de Correos (Mail Queue)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si un agente envía un ticket con un archivo adjunto gigantesco o malformado, la cola de salida de correo puede atascarse, impidiendo que salgan las notificaciones del resto de los usuarios.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Comandos de rescate para el correo:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# Listar los correos retenidos en la cola de salida
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Email::MailQueue --list
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Forzar el envío de los correos pendientes
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Email::MailQueue --send
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Si un correo específico está rompiendo el bucle, puedes eliminarlo de la cola:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Email::MailQueue --delete --message-id=X
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Revisión de Dependencias de Perl tras una Actualización del SO
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
A veces, un comando general apt upgrade en el servidor Linux actualiza la versión de Perl o de sus librerías compartidas, dejando a Znuny sin acceso a módulos críticos (como los de conexión a bases de datos o encriptación SSL).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Verificar la salud de Perl:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo /opt/otrs/bin/otrs.CheckModules.pl
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Revisa el output con atención. Si algún módulo marcado como Required aparece como Not installed, instálalo inmediatamente usando el gestor de paquetes de tu distribución (por ejemplo, sudo apt install libjson-xs-perl).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Referencia Rápida de Errores
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="214"&gt;&lt;/col&gt;&lt;col width="172"&gt;&lt;/col&gt;&lt;col width="217"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Qué observas&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Causa probable&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Acción correctora&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Log: "Can't write /opt/otrs/var/..."&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Conflicto de privilegios en Linux.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Ejecuta otrs.SetPermissions.pl.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;"Database connection broken"&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;MariaDB se quedó sin conexiones o el paquete es muy grande.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Sube max_allowed_packet = 64M en tu my.cnf.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Falta el botón de "Responder"&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;El ticket está bloqueado por otro agente o la respuesta automática no tiene plantilla.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Revisa el estado del ticket en la DB o asigna una plantilla al flujo de trabajo.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Los cambios en el SysConfig no se aplican&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;La caché del despliegue sigue activa.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Ejecuta Maint::Config::Rebuild.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Dónde buscar si el sistema no arranca (Logs)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si la pantalla sigue en blanco y la consola de Znuny no responde, el error está registrado a nivel de servidor web o de sistema operativo. Monitorea estos archivos en tiempo real mientras intentas recargar la página:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Log de Apache/Nginx:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;tail -f /var/log/apache2/error.log &lt;/span&gt;(Esencial para ver fallos de comunicación con mod_perl).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Log de Znuny:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;tail -f /opt/otrs/var/log/otrs.log&lt;/span&gt; (Ideal para ver rechazos de credenciales SMTP/IMAP).
&lt;br /&gt;
&lt;br /&gt;
¿Estás lidiando actualmente con un código de error específico en el archivo otrs.log o el problema comenzó inmediatamente después de aplicar una actualización del sistema operativo?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo instalar y configurar Znuny en linux</title><link>http://linuxeros-faq.blogspot.com/2026/05/como-instalar-y-configurar-znuny-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 11 May 2026 09:03:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-8364963125236465978</guid><description>&lt;p&gt;&amp;nbsp;Le pedimos a Gemini, la inteligencia artificial de Google cómo instalar y configurar Znuny en linux&lt;/p&gt;&lt;p&gt;Explicanos detalladamente cómo instalar y configurar Znuny en linux&lt;/p&gt;
Znuny es el sucesor espiritual y el fork comunitario de OTRS. Es un sistema de gestión de servicios (ITSM) de "clase empresarial" que destaca por su potencia y modularidad. A diferencia de otras herramientas basadas en PHP, Znuny utiliza Perl, lo que requiere una configuración de servidor específica y robusta.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la guía técnica detallada para desplegarlo en un entorno Linux (como Ubuntu 24.04/22.04).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El Ecosistema: Stack LAMP + Perl
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para que Znuny funcione, no basta con Apache y MariaDB ; necesitas un conjunto extenso de módulos de Perl que gestionan desde el procesamiento de XML hasta la comunicación con servidores de correo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instalación de dependencias
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ejecuta el siguiente comando para instalar el servidor web, la base de datos y las librerías necesarias:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install apache2 mariadb-server libapache2-mod-perl2 git -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;

# Instalación de módulos de Perl críticos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install libapache-dbi-perl libarchive-zip-perl libauthen-ntlm-perl libcgi-pm-perl libcrypt-openssl-rsa-perl libcrypt-ssleay-perl libdbd-mysql-perl libencode-hanextra-perl libgd-gd2-perl libgd-graph-perl libgd-text-perl libio-socket-ssl-perl libjson-xs-perl libmail-imapclient-perl libnet-dns-perl libnet-ldap-perl libpdf-api2-perl libtemplate-perl libtext-csv-xs-perl libxml-libxml-perl libxml-libxslt-perl libxml-parser-perl libyaml-libyaml-perl -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Preparación de la Base de Datos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Znuny maneja grandes cantidades de datos y archivos adjuntos, por lo que MariaDB requiere ajustes específicos en su configuración para evitar errores de paquetes grandes.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Optimiza MariaDB :&lt;/b&gt; Edita &lt;span style="background-color: #fce5cd;"&gt;/etc/mysql/mariadb.conf.d/50-server.cnf &lt;/span&gt;y añade lo siguiente bajo la sección [mysqld]:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
max_allowed_packet = 64M
&lt;br /&gt;
&lt;br /&gt;
innodb_log_file_size = 256M
&lt;br /&gt;
&lt;br /&gt;
innodb_buffer_pool_size = 1G (o el 50% de tu RAM)
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Reinicia el servicio: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo systemctl restart mariadb.
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Crea la base de datos:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
SQL
&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE znuny CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
&lt;br /&gt;
&lt;br /&gt;
CREATE USER 'znuny_user'@'localhost' IDENTIFIED BY 'TuPasswordSegura';
&lt;br /&gt;
&lt;br /&gt;
GRANT ALL PRIVILEGES ON znuny.* TO 'znuny_user'@'localhost';
&lt;br /&gt;
&lt;br /&gt;
FLUSH PRIVILEGES;
&lt;br /&gt;
&lt;br /&gt;
EXIT;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Instalación de Znuny
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Por seguridad, el sistema debe correr bajo su propio usuario y no como root.
&lt;br /&gt;
&lt;br /&gt;
Crear usuario de sistema: sudo useradd -d /opt/otrs -c 'Znuny user' -g www-data -s /bin/bash otrs.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Descargar y extraer:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
    cd /opt
&lt;br /&gt;
&lt;br /&gt;
    sudo wget https://download.znuny.org/releases/znuny-latest.tar.gz
&lt;br /&gt;
&lt;br /&gt;
    sudo tar -xzf znuny-latest.tar.gz
&lt;br /&gt;
&lt;br /&gt;
    sudo mv znuny-* otrs
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
    ```
&lt;br /&gt;
&lt;br /&gt;
---
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
## 4. Configuración de Permisos y Módulos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Znuny incluye herramientas de diagnóstico que son vitales antes de iniciar el instalador web.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1.  **Verificar módulos de Perl**:
&lt;br /&gt;
&lt;br /&gt;    
```bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
    sudo /opt/otrs/bin/otrs.CheckModules.pl
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
    ```
&lt;br /&gt;
&lt;br /&gt;
    *Si falta algún módulo marcado como "Not installed", instálalo mediante `apt`*.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2.  **Establecer permisos**:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;    
```bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
    cd /opt/otrs
&lt;br /&gt;
&lt;br /&gt;
    sudo cp Kernel/Config.pm.dist Kernel/Config.pm
&lt;br /&gt;
&lt;br /&gt;
    sudo bin/otrs.SetPermissions.pl --web-group=www-data
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
    ```
&lt;br /&gt;
&lt;br /&gt;
---
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
## 5. Configuración del Servidor Web Apache
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Debes habilitar el módulo de Perl en Apache y vincular la configuración que Znuny trae por defecto.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
1.  **Vincular configuración**: &lt;/b&gt;`s&lt;span style="background-color: #fce5cd;"&gt;udo ln -s /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/sites-available/znuny.conf`&lt;/span&gt;.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2.  **Activar sitio y módulos**:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;    
```bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
    sudo a2enmod perl
&lt;br /&gt;
&lt;br /&gt;
    sudo a2enmod headers
&lt;br /&gt;
&lt;br /&gt;
    sudo a2ensite znuny.conf
&lt;br /&gt;
&lt;br /&gt;
    sudo systemctl restart apache2
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
    ```
&lt;br /&gt;
&lt;br /&gt;
---
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
## 6. Asistente de Instalación Web &#127760;
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Accede a `&lt;span style="background-color: #fce5cd;"&gt;http://tu-ip-o-dominio/otrs/installer.pl&lt;/span&gt;` desde tu navegador.
&lt;br /&gt;
&lt;br /&gt;
*   **Paso 1**: Acepta la licencia.
&lt;br /&gt;
&lt;br /&gt;
*   **Paso 2**: Introduce las credenciales de la base de datos creadas en el Paso 2.
&lt;br /&gt;
&lt;br /&gt;
*   **Paso 3**: Define el FQDN (ej. `tickets.tuempresa.com`) y el idioma.
&lt;br /&gt;
&lt;br /&gt;
*   **Final**: Anota la contraseña generada para el usuario `root@localhost`.
&lt;br /&gt;
&lt;br /&gt;

---
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
## 7. Activación de Demonios (El "Corazón" del sistema)&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Znuny no procesará correos ni tareas automáticas si su demonio interno no está activo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
1.  **Iniciar el Daemon**:&lt;/b&gt; `&lt;span style="background-color: #fce5cd;"&gt;sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl start&lt;/span&gt;`.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
2.  **Configurar Cron**:
 &lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="font-size: large;"&gt;   
```bash
&lt;/span&gt;&lt;br /&gt;
&lt;span style="background-color: #fce5cd;"&gt;&lt;br /&gt;
    cd /opt/otrs/var/cron
&lt;br /&gt;
&lt;br /&gt;
    for foo in *.dist; do sudo -u otrs cp $foo ${foo%%.dist}; done
&lt;br /&gt;
&lt;br /&gt;
    sudo -u otrs /opt/otrs/bin/Cron.sh start
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
    ```
&lt;br /&gt;
&lt;br /&gt;
---
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
### Mantenimiento Preventivo
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
| Tarea | Propósito | Comando |
&lt;br /&gt;
&lt;br /&gt;
| :--- | :--- | :--- |
&lt;br /&gt;
&lt;br /&gt;
| **Limpiar Caché** | Resuelve lentitud o errores visuales. | `&lt;span style="background-color: #fce5cd;"&gt;sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Cache::Delete&lt;/span&gt;` |
&lt;br /&gt;
&lt;br /&gt;
| **Loader** | Refresca archivos JS y CSS tras cambios. | `&lt;span style="background-color: #fce5cd;"&gt;sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Loader::CacheCleanup&lt;/span&gt;` |
&lt;br /&gt;
&lt;br /&gt;
| **Estado** | Verifica si el motor está vivo. | `&lt;span style="background-color: #fce5cd;"&gt;sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl status&lt;/span&gt;` |
&lt;br /&gt;
&lt;br /&gt;
Znuny es excepcionalmente estable una vez configurado, pero recuerda siempre realizar los cambios de archivos o ejecución de scripts como el usuario `otrs` para no romper los permisos del sistema.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te explicara cómo configurar el primer buzón de correo para que Znuny empiece a convertir tus emails en tickets automáticamente?
&lt;br /&gt;
&lt;br /&gt;</description></item><item><title>Cómo solucionar problemas de OTRS  en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-solucionar-problemas-de-otrs-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 29 Apr 2026 09:14:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-1228939772379142250</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a gemini, la inteligencia artificial de Google cómo solucionar problemas de OTRS&amp;nbsp; en linux&lt;/p&gt;

Explicanos detalladamente cómo solucionar problemas de OTRS  en linux
&lt;br /&gt;
&lt;br /&gt;
Reparar OTRS (o su versión comunitaria Znuny) es un arte que requiere entender cómo interactúan Perl, Apache y el "Daemon" del sistema. A diferencia de otros sistemas, OTRS es extremadamente sensible a los cambios de usuario; si ejecutas un comando como root en lugar del usuario otrs, puedes romper los permisos de todo el sistema de archivos en un segundo.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la guía de "mecánica avanzada" para diagnosticar y solucionar fallos en OTRS/Znuny.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El "Panel de Control": El Comando Console.pl
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Casi todos los problemas de OTRS se resuelven o se diagnostican usando la herramienta de consola. Regla de oro: Ejecútala siempre como el usuario otrs.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# Entrar como usuario otrs
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si ejecutas este comando sin parámetros, verás una lista masiva de herramientas de reparación. Las más importantes para solucionar problemas son las de la familia Maint::.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. El "Corazón" detenido: El OTRS Daemon
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si los tickets no llegan, las notificaciones no salen o las tareas programadas no se ejecutan, el Daemon se ha detenido. Es el motor que procesa todo en segundo plano.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Diagnóstico:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl status
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Solución:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si no está corriendo, inícialo. Si está "atascado", reinícialo:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl stop
&lt;br /&gt;
&lt;br /&gt;
sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl start
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Problemas de Interfaz (CSS/JS roto o lento)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
¿Has instalado un paquete o editado un archivo y la web se ve "rota" o no cargan los menús? OTRS usa un sistema llamado Loader que cachea archivos estáticos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La solución de limpieza total:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# Borrar la caché del sistema
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Cache::Delete
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Borrar la caché del cargador de archivos (JS/CSS)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Loader::CacheCleanup
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. El Infierno de los Permisos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Es el error más común tras una migración o una actualización. Si el servidor web no puede escribir en var/ o Kernel/, OTRS morirá con un error "500".
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Cómo arreglarlo de una vez por todas:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Usa el script oficial de OTRS para restablecer los permisos correctos:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
cd /opt/otrs
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo bin/otrs.SetPermissions.pl --web-group=www-data
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Fallos en el Envío/Recepción de Correos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si el Daemon está corriendo pero los correos no entran, el problema suele estar en la comunicación con el servidor IMAP/SMTP o en un ticket "pesado" que bloquea la cola.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Verificar errores de comunicación:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Email::MailQueue --list
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Forzar el envío de la cola:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Email::MailQueue --send
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Ver los logs en tiempo real:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
No mires solo el log de OTRS; mira el log del sistema para errores de Perl:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
tail -f /opt/otrs/var/log/otrs.log
&lt;br /&gt;
&lt;br /&gt;
journalctl -u apache2 -f
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Comprobación de Módulos de Perl
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
A veces, una actualización del sistema operativo (apt upgrade) actualiza Perl pero deja huérfanas algunas librerías que OTRS necesita.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Comando de verificación:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo /opt/otrs/bin/otrs.CheckModules.pl
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si ves algún módulo marcado como "Not installed" que sea crítico (como DBI o XML::Parser), instálalo de inmediato usando apt o cpan.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Rescate Rápido&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="149"&gt;&lt;/col&gt;&lt;col width="208"&gt;&lt;/col&gt;&lt;col width="231"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Síntoma&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Causa Probable&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Comando de Rescate&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Error 500 al entrar a la web&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Permisos incorrectos o Apache mal configurado.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;otrs.SetPermissions.pl&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Cambios en Config.pm no se ven&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Caché de configuración activa.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;otrs.Console.pl Maint::Config::Rebuild&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Tickets no se indexan/buscan&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Índice de búsqueda corrupto.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;otrs.Console.pl Maint::Search::Zebra::Rebuild&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Base de datos lenta&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Tablas necesitan optimización.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;otrs.Console.pl Maint::Database::Check&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de "candor" técnico
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
OTRS es como un reloj suizo de los años 80: es increíblemente preciso pero si le entra una mota de polvo (un error de sintaxis en el archivo Config.pm), se detiene por completo.&amp;nbsp;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;b&gt;Consejo de amigo: &lt;/b&gt;Antes de editar cualquier archivo en /opt/otrs/Kernel/, haz una copia de seguridad (.bak). Un solo punto y coma ; olvidado en Perl puede tumbar todo tu Help Desk.
&lt;br /&gt;
&lt;br /&gt;
¿Te ha salido algún error específico sobre "Can't create PID file" o es más un problema de que la base de datos está alcanzando el límite de conexiones?
&lt;br /&gt;
&lt;br /&gt;
Expert Guide: Solo si necesitas algo muy puntual, puedo darte el comando exacto para debugear una tabla específica de la base de datos.
&lt;br /&gt;
&lt;br /&gt;


&lt;/div&gt;</description></item><item><title>Cómo instalar y configurar OTRS  en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-instalar-y-configurar-otrs-en-linux.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 27 Apr 2026 09:51:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-6810431639517518072</guid><description>&lt;p&gt;&amp;nbsp;Le pedimos a Gemini, la inteligencia artificial de Google nos explique cómo instalar y configurar OTRS&amp;nbsp; en linux&lt;/p&gt;

Explicanos detalladamente cómo instalar y configurar OTRS  en linux
&lt;br /&gt;
&lt;br /&gt;
Instalar OTRS ( Open Ticket Request System ) —o su versión comunitaria actual, Znuny —&amp;nbsp; es entrar en las ligas mayores de la gestión de servicios ( ITSM ). A diferencia de otros sistemas que hemos visto, OTRS no corre sobre el típico PHP; su motor es Perl. Esto lo hace extremadamente potente y modular, pero también requiere una configuración de servidor un poco más "exótica".
&lt;br /&gt;
&lt;br /&gt;
En 2026, la mayoría de la comunidad se ha movido a Znuny (el fork de código abierto), ya que OTRS AG dejó de dar soporte a la versión gratuita. Aquí tienes la guía definitiva para instalarlo en Ubuntu 24.04/22.04.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El Ecosistema: Stack LAMP + Perl
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
OTRS/Znuny necesita un servidor web (Apache), una base de datos (MariaDB) y una gran cantidad de módulos de Perl para procesar la lógica de negocio.
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
Instalación de dependencias:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install apache2 mariadb-server libapache2-mod-perl2 git -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Módulos de Perl necesarios (son bastantes)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install libapache-dbi-perl libarchive-zip-perl libauthen-ntlm-perl libcgi-pm-perl libcrypt-openssl-rsa-perl libcrypt-ssleay-perl libdbd-mysql-perl libencode-hanextra-perl libgd-gd2-perl libgd-graph-perl libgd-text-perl libio-socket-ssl-perl libjson-xs-perl libmail-imapclient-perl libnet-dns-perl libnet-ldap-perl libpdf-api2-perl libtemplate-perl libtext-csv-xs-perl libxml-libxml-perl libxml-libxslt-perl libxml-parser-perl libyaml-libyaml-perl -y
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Preparación de la Base de Datos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
OTRS es "hambriento" de recursos de base de datos. Necesitamos ajustar MariaDB para que acepte paquetes grandes, algo vital para los archivos adjuntos en los tickets.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Configura MariaDB :&lt;/b&gt; Edita &lt;span style="background-color: #fce5cd;"&gt;/etc/mysql/mariadb.conf.d/50-server.cnf&lt;/span&gt; y añade/ajusta esto bajo&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color: #fce5cd;"&gt;[mysqld]:
&lt;br /&gt;
&lt;br /&gt;
Ini, TOML
&lt;br /&gt;
&lt;br /&gt;
max_allowed_packet = 64M
&lt;br /&gt;
&lt;br /&gt;
innodb_log_file_size = 256M
&lt;br /&gt;
&lt;br /&gt;
innodb_buffer_pool_size = 1G # O el 50% de tu RAM
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Reinicia MariaDB: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo systemctl restart mariadb
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Crea el entorno:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
SQL
&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE znuny CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
&lt;br /&gt;
&lt;br /&gt;
CREATE USER 'znuny_user'@'localhost' IDENTIFIED BY 'TuPasswordSegura';
&lt;br /&gt;
&lt;br /&gt;
GRANT ALL PRIVILEGES ON znuny.* TO 'znuny_user'@'localhost';
&lt;br /&gt;
&lt;br /&gt;
FLUSH PRIVILEGES;
&lt;br /&gt;
&lt;br /&gt;
EXIT;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Instalación de Znuny/OTRS
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Vamos a crear un usuario de sistema dedicado para que el software no corra como root.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Crear usuario:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo useradd -d /opt/otrs -c 'OTRS user' -g www-data -s /bin/bash otrs
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Descargar el software:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
cd /opt
&lt;br /&gt;
&lt;br /&gt;
sudo wget https://download.znuny.org/releases/znuny-latest.tar.gz
&lt;br /&gt;
&lt;br /&gt;
sudo tar -xzf znuny-latest.tar.gz
&lt;br /&gt;
&lt;br /&gt;
sudo mv znuny-* otrs
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Configuración del Sistema y Permisos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
OTRS incluye un script que verifica si te falta algún módulo de Perl. Es tu mejor amigo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Verificar módulos:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo /opt/otrs/bin/otrs.CheckModules.pl
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si alguno aparece como "Not installed", instálalo antes de seguir.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Configurar permisos:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
cd /opt/otrs
&lt;br /&gt;
&lt;br /&gt;
sudo cp Kernel/Config.pm.dist Kernel/Config.pm
&lt;br /&gt;
&lt;br /&gt;
sudo bin/otrs.SetPermissions.pl --web-group=www-data
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Configuración de Apache
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Necesitamos decirle a Apache cómo manejar los scripts .pl de OTRS.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Enlaza el archivo de configuración:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo ln -s /opt/otrs/scripts/apache2-httpd.include.conf /etc/apache2/sites-available/otrs.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Habilita los módulos y el sitio:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo a2enmod perl
&lt;br /&gt;
&lt;br /&gt;
sudo a2enmod headers
&lt;br /&gt;
&lt;br /&gt;
sudo a2ensite otrs.conf
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. El Asistente Web Final&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Abre tu navegador en &lt;span style="background-color: #fce5cd;"&gt;http://tu-ip/otrs/installer.pl&lt;/span&gt;.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Aceptar Licencia: &lt;/b&gt;(GPL).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Base de Datos:&lt;/b&gt; Selecciona MySQL/MariaDB y usa los datos del Paso 2.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Configuración del Sistema: &lt;/b&gt;Define el FQDN (ej. soporte.tuempresa.com) y el idioma.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Cuentas de Correo: &lt;/b&gt;Puedes saltar esto y configurarlo después dentro del panel.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Finalización: &lt;/b&gt;El instalador te dará la contraseña del usuario root@localhost. ¡Guárdala bien!
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
7. Activación de Demonios y Cron&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
OTRS no funciona sin su "corazón" latiendo en segundo plano.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Iniciar el Demonio de OTRS:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl start
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Configurar tareas Cron:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
cd /opt/otrs/var/cron
&lt;br /&gt;
&lt;br /&gt;
for foo in *.dist; do sudo -u otrs cp $foo ${foo%%.dist}; done
&lt;br /&gt;
&lt;br /&gt;
sudo -u otrs /opt/otrs/bin/Cron.sh start
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Mantenimiento Crítico
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="121"&gt;&lt;/col&gt;&lt;col width="136"&gt;&lt;/col&gt;&lt;col width="397"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Componente&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Función&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Cómo reiniciar/revisar&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; color: #1155cc; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; text-decoration: underline; vertical-align: middle;"&gt;&lt;a class="in-cell-link" href="http://Daemon.pl" target="_blank"&gt;Daemon.pl&lt;/a&gt;&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Procesa colas, correos y eventos.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;sudo -u otrs /opt/otrs/bin/otrs.Daemon.pl status&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Maint::Cache&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Limpia la caché del sistema.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Cache::Delete&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Loader&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Refresca archivos JS y CSS.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;sudo -u otrs /opt/otrs/bin/otrs.Console.pl Maint::Loader::CacheCleanup&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de "candor" técnico
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
Instalar OTRS es como montar un motor de combustión: &lt;/b&gt;hay muchas piezas móviles. Si la interfaz se siente lenta, es casi seguro que el OTRS Daemon no está corriendo o que no has configurado correctamente el opcache de Perl. No te asustes si al principio ves muchos menús; OTRS está diseñado para que lo configures una vez y te olvides por años.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que profundizáramos en cómo configurar los "SLA" (Acuerdos de Nivel de Servicio) para que el sistema te avise automáticamente cuando un ticket lleva demasiado tiempo sin respuesta?
&lt;br /&gt;
&lt;br /&gt;
Expert Guide: ¿Cuál de estas áreas te interesa configurar primero?
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;</description></item><item><title>Cómo solucionar problemas de osticket en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-solucionar-problmas-de-osticket-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 24 Apr 2026 08:47:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-7410248701302328164</guid><description>&lt;p&gt;&amp;nbsp;Le pedimos a Gemini, la inteligencia artificial de Google que nos explique cómo solucionar problmas de osticket en linux&lt;/p&gt;

Explicanos detalladamente cómo solucionar problmas de osticket en linux
&lt;br /&gt;
&lt;br /&gt;
Aunque osTicket es famoso por ser el "tanque" de los Help Desks —pesa poco y aguanta mucho—, no es inmune a los caprichos de las actualizaciones de PHP o a los bloqueos de seguridad de los servidores de correo modernos.
&lt;br /&gt;
&lt;br /&gt;
Si tu sistema de tickets ha empezado a dar errores o se ha quedado "mudo", aquí tienes la guía técnica para diagnosticarlo y repararlo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El Oráculo: Los Logs de Errores
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
En osTicket, la información de lo que falla está repartida en tres lugares. Debes revisarlos en este orden:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Log Interno de osTicket: &lt;/b&gt;Si puedes entrar al panel, ve a Panel de Administración &amp;gt; Diagnóstico &amp;gt; Registros del sistema. Aquí verás errores de login, fallos en el envío de correos y alertas de seguridad.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Log de Apache/Nginx: &lt;/b&gt;Si ves un error "500 Internal Server Error", la respuesta está aquí.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo tail -f /var/log/apache2/error.log
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
Log de MySQL:&lt;/b&gt; Si el problema es que no se guardan los tickets o las búsquedas fallan.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo tail -f /var/log/mysql/error.log
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Pantalla Blanca (WSOD) tras Actualizar
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si después de actualizar PHP o el propio osTicket ves una página en blanco, el problema suele ser una extensión de PHP faltante o un error de sintaxis que PHP no se atreve a mostrar.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La solución&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Asegúrate de tener instaladas las extensiones vitales. osTicket 1.17+ es muy estricto con &lt;span style="background-color: #fce5cd;"&gt;php-apcu, php-intl y php-zend-opcache.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Verifica los módulos activos:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
php -m | grep -E "imap|gd|intl|xml|mbstring"
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si falta alguno, instálalo (ej. &lt;span style="background-color: #fce5cd;"&gt;sudo apt install php-intl)&lt;/span&gt; y reinicia Apache.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. El Problema #1: Los correos no se descargan
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Este es el fallo más común. osTicket no "escucha" los correos en tiempo real; espera a que alguien (el servidor) le dé un "toque".
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Causa A: El Cron Job se detuvo.
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Verifica si el cron está activo para el usuario web:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo crontab -u www-data -l
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si no ves la línea de api/cron.php, el sistema no está procesando el correo de fondo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Causa B: El "Auto-Cron" está desactivado.
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si no usas una tarea programada en Linux, asegúrate de que en Ajustes &amp;gt; Correos electrónicos esté marcada la opción "Obtener correos electrónicos mediante el autocron". Nota: Esto solo funciona cuando un agente humano está navegando por el panel.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Error de Permisos en ost-config.php
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
osTicket es muy "quisquilloso" con la seguridad de su archivo de configuración. Si ves un aviso persistente en el panel o el sistema no te deja guardar cambios:
&lt;br /&gt;
&lt;br /&gt;
El archivo debe tener permisos de lectura pero no de escritura para el servidor web una vez instalado.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chmod 644 /var/www/html/osticket/upload/include/ost-config.php
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si necesitas cambiar la configuración de la base de datos, cámbialo temporalmente a 666, guarda y vuelve a 644.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Problemas con la Base de Datos (MySQL)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si el error dice "Error connecting to database", verifica estos tres puntos:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Espacio en disco: &lt;/b&gt;Si el disco está al 100%, MySQL no puede crear archivos temporales y se bloquea. Usa &lt;span style="background-color: #fce5cd;"&gt;df -h.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Modo SQL : &lt;/b&gt;Las versiones nuevas de MySQL son muy estrictas. Si ves errores de "Strict Mode", intenta editar tu my.cnf para relajar las reglas o asegúrate de que osTicket esté actualizado a la última versión compatible con tu versión de MySQL.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Reparación de tablas: &lt;/b&gt;Si hubo un apagón, las tablas pueden marcarse como corruptas.
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
SQL
&lt;br /&gt;
&lt;br /&gt;
REPAIR TABLE ost_ticket, ost_ticket_thread;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Problemas con OAuth2 (Gmail/Microsoft 365)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Desde que Google y Microsoft eliminaron la "autenticación básica", configurar el correo en osTicket se volvió un dolor de cabeza.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Síntoma:&lt;/b&gt; El sistema funcionaba y de pronto dejó de recibir correos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Solución&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Asegúrate de tener instalado el plugin oficial de OAuth2 en la carpeta include/plugins.
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Verifica que el Token no haya expirado.&lt;/b&gt; A veces hay que entrar al panel de Azure o Google Cloud y refrescar el "Secret Key" porque caducó tras un año.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Referencia Rápida&lt;br /&gt;


&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="129"&gt;&lt;/col&gt;&lt;col width="159"&gt;&lt;/col&gt;&lt;col width="210"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Síntoma&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Posible Causa&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Acción Recomendada&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Error 500 al subir archivos&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Límite de PHP excedido&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Aumenta upload_max_filesize en php.ini.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Emails llegan duplicados&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Doble ejecución de Cron&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Revisa que no tengas el Cron de Linux y el Autocron activos a la vez.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Caracteres extraños (UTF-8)&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Cotejamiento de DB incorrecto&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Cambia el Collation de las tablas a utf8mb4_general_ci.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Lentitud extrema&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Caché APCu desactivada&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Instala php-apcu para acelerar la carga de plantillas.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un consejo de "amigo" técnico:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si vas a realizar cualquier cambio importante, ve a la carpeta de osTicket y haz un backup rápido de la base de datos:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
mysqldump -u usuario -p base_de_datos &amp;gt; backup_fecha.sql
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
osTicket es muy agradecido; una vez que los permisos y el cron están bien configurados, puede pasar años sin dar un solo problema. Pero si ves que el sistema se vuelve inestable tras subir muchos archivos, revisa la carpeta /attachments (si usas el plugin de almacenamiento en disco), porque si esa carpeta pierde permisos, el sistema se colapsa al intentar escribir un nuevo ticket.
&lt;br /&gt;
&lt;br /&gt;
¿Te está dando algún error específico de autenticación LDAP o es más un problema de configuración de SMTP para enviar correos?
&lt;br /&gt;
&lt;br /&gt;



</description></item><item><title>Cómo instalar y configurar osTicket en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-instalar-y-configurar-osticket-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 22 Apr 2026 09:27:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-232173130059272832</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google sobre cómo instalar y configurar osTicket en linux&lt;/p&gt;

Explicanos detalladamente cómo instalar y configurar osTicket en linux
&lt;br /&gt;
&lt;br /&gt;
Si buscas un sistema de tickets que sea el "viejo confiable" de la industria, osTicket es la respuesta. Es extremadamente estable, ligero y no intenta reinventar la rueda; simplemente funciona. A diferencia de Zammad, que es un devorador de recursos, osTicket corre feliz en prácticamente cualquier servidor con un stack LAMP (Linux, Apache, MySQL/MariaDB, PHP).
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la hoja de ruta para desplegarlo en Ubuntu 24.04/22.04 como un profesional.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El Cimiento: Entorno LAMP
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
osTicket requiere versiones específicas de PHP para ser estable. Actualmente, la versión 1.18.x funciona de maravilla con PHP 8.1 o 8.2.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instala Apache y MariaDB&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install apache2 mariadb-server -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instala PHP y las extensiones críticas:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
osTicket depende mucho de extensiones como imap (para leer correos) y apcu (para rendimiento).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install php libapache2-mod-php php-mysql php-cgi php-fpm php-cli php-curl php-gd php-mbstring php-xml php-apcu php-intl php-imap -y
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Preparación de la Base de Datos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
osTicket es muy ordenado con sus tablas, pero necesita una base de datos lista para recibir toda la información de los tickets.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Entra a MariaDB:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;sudo mysql -u root
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Configura el entorno:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
SQL
&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE osticket_db;
&lt;br /&gt;
&lt;br /&gt;
CREATE USER 'osticket_user'@'localhost' IDENTIFIED BY 'TuPasswordSegura';
&lt;br /&gt;
&lt;br /&gt;
GRANT ALL PRIVILEGES ON osticket_db.* TO 'osticket_user'@'localhost';
&lt;br /&gt;
&lt;br /&gt;
FLUSH PRIVILEGES;
&lt;br /&gt;
&lt;br /&gt;
EXIT;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Descarga y "Truco" de Configuración
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
A diferencia de otros softwares, osTicket viene con un archivo de configuración de ejemplo que debemos renombrar manualmente para que el instalador lo reconozca.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Descarga los archivos:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
(Ve a la web oficial para obtener el link más reciente, o usa este ejemplo):
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
cd /tmp
&lt;br /&gt;
&lt;span style="background-color: #fce5cd;"&gt;&lt;br /&gt;
wget https://github.com/osTicket/osTicket/releases/download/v1.18.1/osTicket-v1.18.1.zip
&lt;br /&gt;
&lt;br /&gt;
sudo apt install unzip -y
&lt;br /&gt;
&lt;br /&gt;
sudo unzip osTicket-v1.18.1.zip -d /var/www/html/osticket
&lt;br /&gt;&lt;/span&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
El paso del archivo de configuración:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
cd /var/www/html/osticket/upload/include
&lt;br /&gt;
&lt;br /&gt;
sudo cp ost-sampleconfig.php ost-config.php
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Permisos de escritura:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chown -R www-data:www-data /var/www/html/osticket
&lt;br /&gt;
&lt;br /&gt;
sudo chmod 0666 /var/www/html/osticket/upload/include/ost-config.php
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Nota: Después de la instalación cambiaremos este permiso a uno más restrictivo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Configuración del Servidor Web (Apache)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Crearemos un "Site" para que puedas acceder mediante un dominio o subdominio.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Crea el archivo:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;sudo nano /etc/apache2/sites-available/osticket.conf
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Pega la configuración básica:
&lt;br /&gt;
&lt;br /&gt;
Apache
&lt;br /&gt;
&lt;br /&gt;
&lt;virtualhost&gt;&amp;lt;virtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ServerName soporte.tudominio.com
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentRoot /var/www/html/osticket/upload
  &lt;br /&gt;
&lt;br /&gt;
    &lt;directory html="" osticket="" upload="" var="" www=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Directory /var/www/html/osticket/upload&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AllowOverride All
      &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Require all granted
      &lt;br /&gt;
&lt;br /&gt;
    &lt;/directory&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;/virtualhost&gt;&amp;lt;/VistualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Activa y reinicia:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo a2ensite osticket.conf
&lt;br /&gt;
&lt;br /&gt;
sudo a2enmod rewrite
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. El Asistente de Instalación Web
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Abre tu navegador en http://soporte.tudominio.com. Verás una lista de verificación:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Dashboard:&lt;/b&gt; Asegúrate de que todas las extensiones de PHP (especialmente IMAP) estén en verde.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Configuración del sistema:&lt;/b&gt; Introduce el nombre de tu Help Desk y los datos del administrador.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Configuración de DB : &lt;/b&gt;Usa los datos del Paso 2 (osticket_user, TuPasswordSegura, osticket_db).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Seguridad y Automatización Post-Instalación&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Una vez veas el mensaje de "Congratulations", no cierres la terminal todavía. Hay dos cosas vitales por hacer:
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
A. Cerrar los permisos de configuración
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chmod 0644 /var/www/html/osticket/upload/include/ost-config.php
&lt;br /&gt;
&lt;br /&gt;
sudo rm -rf /var/www/html/osticket/upload/setup
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
B. Activar el sistema de "Fetching" (Cron)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
osTicket necesita que alguien le diga "ve a buscar correos nuevos ahora". Esto se hace con una tarea cron.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Edita el crontab: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo crontab -u www-data -e
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Añade esta línea:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
*/5 * * * * /usr/bin/php /var/www/html/osticket/upload/api/cron.php
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Esto revisará el correo cada 5 minutos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Mantenimiento Rápido&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="146"&gt;&lt;/col&gt;&lt;col width="391"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Acción&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Ubicación / Comando&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Directorio de Plugins&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;/var/www/html/osticket/upload/include/plugins&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Configuración PHP&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;/etc/php/8.x/apache2/php.ini&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Logs de errores&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;/var/log/apache2/error.log&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Modo Debug&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Panel Admin &amp;gt; Dashboard &amp;gt; Information&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de "candor" técnico
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
osTicket es excelente, pero su interfaz parece sacada de 2012. Si necesitas algo que se vea más moderno, puedes instalar el plugin "osTicket Awesome" (que es de pago) o simplemente centrarte en la funcionalidad, que es donde realmente brilla. Es de los pocos sistemas que no se "rompe" tras una actualización de seguridad del servidor.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te explicara cómo configurar el "Email Fetching" con OAuth2 para Gmail o Microsoft 365? (Es un poco más complejo debido a las nuevas restricciones de seguridad de Google y Microsoft).
&lt;br /&gt;
&lt;br /&gt;


&lt;/div&gt;</description></item><item><title>Cómo configurar el Botón de Pánico"  para cortar el internet de los niños instantáneamente con un solo clic desde tu móvil en OpenWRT</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-configurar-el-boton-de-panico-para.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 17 Apr 2026 09:17:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-5984487299120132677</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google cómo configurar el Botón de Pánico"&amp;nbsp; para cortar el internet de los niños instantáneamente con un solo clic desde tu móvil en OpenWRT&lt;/p&gt;

Explicanos detalladamente cómo configurar el Botón de Pánico"  para cortar el internet de los niños instantáneamente con un solo clic desde tu móvil en OpenWRT
&lt;br /&gt;
&lt;br /&gt;
Configurar un "Botón de Pánico" para desconectar dispositivos específicos en OpenWRT es, esencialmente, crear un interruptor lógico que active o desactive una regla de firewall. La magia aquí no es solo la regla, sino cómo activarla desde tu móvil sin tener que entrar a la interfaz web (LuCI) y navegar por menús complejos.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la guía técnica para construir esta "opción nuclear" de forma elegante y funcional.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Preparación: Identificación de los dispositivos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para que el botón sea preciso, no podemos depender de IPs dinámicas que cambian. Necesitamos IPs Estáticas o los Nombres de Host de los dispositivos de los niños.
&lt;br /&gt;
&lt;br /&gt;
Entra en LuCI (Network &amp;gt; DHCP and DNS &amp;gt; Static Leases).
&lt;br /&gt;
&lt;br /&gt;
Asigna una IP fija a cada dispositivo (consola, tablet, móvil).
&lt;br /&gt;
&lt;br /&gt;
Anota el nombre de la regla que crearemos (ejemplo: bloqueo_niños).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Fase 1: Crear la Regla de Firewall (El "Muro")
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Primero, definimos qué significa "cortar el internet" en el archivo de configuración del firewall de OpenWRT (/etc/config/firewall).
&lt;br /&gt;
&lt;br /&gt;
Puedes hacerlo desde la interfaz web en Network &amp;gt; Firewall &amp;gt; Traffic Rules, o más rápido por terminal (SSH):
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# Crear la regla de bloqueo (deshabilitada por defecto)
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
uci add firewall rule
&lt;br /&gt;
&lt;br /&gt;
uci set firewall.@rule[-1].name='bloqueo_niños'
&lt;br /&gt;
&lt;br /&gt;
uci set firewall.@rule[-1].src='lan'
&lt;br /&gt;
&lt;br /&gt;
uci set firewall.@rule[-1].dest='wan'
&lt;br /&gt;
&lt;br /&gt;
uci add_list firewall.@rule[-1].src_ip='192.168.1.50'  # IP del niño 1
&lt;br /&gt;
&lt;br /&gt;
uci add_list firewall.@rule[-1].src_ip='192.168.1.51'  # IP del niño 2
&lt;br /&gt;
&lt;br /&gt;
uci set firewall.@rule[-1].target='REJECT'
&lt;br /&gt;
&lt;br /&gt;
uci set firewall.@rule[-1].enabled='0'                # Empezamos con internet ON
&lt;br /&gt;
&lt;br /&gt;
uci commit firewall
&lt;br /&gt;
&lt;br /&gt;
/etc/init.d/firewall restart
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Fase 2: Los Comandos de Activación/Desactivación
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para que el botón funcione, necesitamos dos comandos simples que cambien ese '0' por un '1'.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Para CORTAR el internet:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
uci set firewall.@rule[$(uci show firewall | grep "@rule" | grep "name='bloqueo_niños'" | cut -d'[' -f2 | cut -d']' -f1)].enabled='1' &amp;amp;&amp;amp; uci commit firewall &amp;amp;&amp;amp; fw4 reload
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Para RESTAURAR el internet:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
uci set firewall.@rule[$(uci show firewall | grep "@rule" | grep "name='bloqueo_niños'" | cut -d'[' -f2 | cut -d']' -f1)].enabled='0' &amp;amp;&amp;amp; uci commit firewall &amp;amp;&amp;amp; fw4 reload
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Fase 3: El " Botón de Pánico " en tu móvil &#128241;
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Aquí es donde ocurre la magia del "clic único". Vamos a usar SSH para enviar esos comandos desde la pantalla de inicio de tu teléfono.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
En iOS ( iPhone ): Usando "Atajos" (Shortcuts)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Abre la App Atajos y crea uno nuevo.
&lt;br /&gt;
&lt;br /&gt;
Añade la acción "Ejecutar comando por SSH".
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Configura:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Host:&lt;/b&gt; IP de tu router (ej. 192.168.1.1).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Usuario:&lt;/b&gt; root.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Contraseña/Clave:&lt;/b&gt; Tu clave de acceso al router.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Script:&lt;/b&gt; Pega el comando de "CORTAR" del paso anterior.
&lt;br /&gt;
&lt;br /&gt;
Crea otro atajo para "RESTAURAR".
&lt;br /&gt;
&lt;br /&gt;
Añade estos atajos como Widgets en tu pantalla de inicio.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
En Android: Usando "SSH Custom Executor" o "Termux"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Descarga una app como &lt;span style="background-color: #fce5cd;"&gt;SSH Custom Executor&lt;/span&gt; o un widget de SSH .
&lt;br /&gt;
&lt;br /&gt;
Crea un nuevo botón y configura la IP, usuario y contraseña del router.
&lt;br /&gt;
&lt;br /&gt;
Pega el comando correspondiente en el campo de "Command".
&lt;br /&gt;
&lt;br /&gt;
Coloca el widget en tu pantalla principal.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. El toque de "Ingeniería Superior"&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si quieres que el botón sea inteligente y se apague solo después de un tiempo (por ejemplo, "Castigo de 1 hora"), puedes modificar el comando de activación para que incluya un temporizador:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# Bloquea ahora y desbloquea automáticamente en 3600 segundos (1 hora)
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
uci set firewall.@rule[X].enabled='1' &amp;amp;&amp;amp; uci commit firewall &amp;amp;&amp;amp; fw4 reload &amp;amp;&amp;amp; sleep 3600 &amp;amp;&amp;amp; uci set firewall.@rule[X].enabled='0' &amp;amp;&amp;amp; uci commit firewall &amp;amp;&amp;amp; fw4 reload
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un par de advertencias "entre colegas"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
Seguridad SSH : &lt;/b&gt;Si vas a usar esto desde fuera de casa, asegúrate de tener una VPN (como WireGuard, que corre de maravilla en OpenWRT). &lt;span style="background-color: #fce5cd;"&gt;Nunca abras el puerto 22 (SSH) a todo internet; es una invitación formal a que hackeen tu red.
&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Identificación de la regla: &lt;/b&gt;En el comando de arriba, el trozo $(uci show...) busca automáticamente el número de la regla. Esto es vital porque si añades más reglas de firewall, el índice [0, 1, 2...] cambiaría y podrías terminar bloqueando tu propia conexión por error.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te ayudara a configurar una página de "Acceso Denegado" personalizada para que, cuando intentes navegar, les aparezca un mensaje diciendo "Tiempo de estudio activado"?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo solucionar problemas de UVDesk en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-solucionar-problemas-de-uvdesk-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 15 Apr 2026 09:14:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-3003629178901602875</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google cómo solucionar problemas de UVDesk en linux&lt;/p&gt;

Explicanos detallaente cómo solucionar problemas de UVDesk en linux
&lt;br /&gt;
&lt;br /&gt;
Solucionar problemas en UVDesk puede sentirse como un nivel avanzado de administración de sistemas, principalmente porque Symfony (el framework sobre el que está construido) es extremadamente estricto con la configuración. Cuando algo falla, suele lanzar errores de "Doctrine" o de "Caché" que pueden parecer jeroglíficos.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes el mapa de diagnóstico para reparar UVDesk en Linux y no morir en el intento.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Localiza al "Culpable" (Los Logs)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
En UVDesk, los errores de Apache o Nginx son solo la punta del iceberg. El verdadero detalle está en los logs de Symfony.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Ruta de logs de la App:&lt;/b&gt; /&lt;span style="background-color: #fce5cd;"&gt;var/www/uvdesk/var/log/
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Archivos: &lt;/b&gt;Verás dev.log (si estás en modo desarrollo) o prod.log (en producción).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Comando útil:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
tail -f /var/www/uvdesk/var/log/prod.log
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
[!NOTE]
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
Si el archivo de log no existe o está vacío, es una señal clara de que el servidor web no tiene permisos para escribir en esa carpeta.
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. El "Clásico de Symfony": Permisos de Escritura
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
UVDesk necesita escribir constantemente en var/cache, var/log y public/uploads. Si la interfaz se queda en blanco o los cambios no se guardan, los permisos son el primer sospechoso.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La solución definitiva:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ejecuta estos comandos (asumiendo que tu usuario web es www-data):
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="background-color: #fce5cd;"&gt;&lt;br /&gt;
sudo chown -R www-data:www-data /var/www/uvdesk
&lt;br /&gt;
&lt;br /&gt;
sudo find /var/www/uvdesk -type d -exec chmod 775 {} \;
&lt;br /&gt;
&lt;br /&gt;
sudo find /var/www/uvdesk -type f -exec chmod 644 {} \;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Específicos para Symfony
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chmod -R 777 /var/www/uvdesk/var
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 777 /var/www/uvdesk/public/uploads
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Errores de Conexión a Base de Datos (Doctrine)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;span style="background-color: #fce5cd;"&gt;&lt;br /&gt;
Si ves un error que menciona "Doctrine" o "Connection Refused", el problema está en tu archivo de configuración ambiental.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Archivo:&lt;/b&gt; /&lt;span style="background-color: #fce5cd;"&gt;var/www/uvdesk/.env
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Busca la línea:&lt;/b&gt; DATABASE_URL="mysql://usuario:password@127.0.0.1:3306/uvdesk"
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Cosas que revisar:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Que el usuario y password sean correctos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Que el servidor de base de datos (MariaDB/MySQL) esté corriendo: &lt;/b&gt;s&lt;span style="background-color: #fce5cd;"&gt;udo systemctl status mariadb.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Si usas caracteres especiales en la contraseña, asegúrate de que estén codificados para URL.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. El "Fantasma" de Mailparse
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Este es el problema más específico de UVDesk. Para que el sistema pueda "leer" los correos entrantes y convertirlos en tickets, necesita la extensión mailparse de PHP.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Cómo verificarlo:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;php -m | grep mailparse
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Si no aparece:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install php-dev php-pear -y
&lt;br /&gt;
&lt;br /&gt;
sudo pecl install mailparse
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
# Luego habilítalo en tu php.ini y reinicia Apache/PHP-FPM
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Limpieza de Caché (El "Reset" Maestro)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
A veces, UVDesk se queda "atascado" con una configuración vieja. En Symfony, borrar la caché manualmente suele solucionar comportamientos erráticos.
&lt;br /&gt;
&lt;br /&gt;
Desde la carpeta raíz de UVDesk, ejecuta:
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u www-data php bin/console cache:clear --env=prod
&lt;br /&gt;
&lt;br /&gt;
sudo -u www-data php bin/console cache:warmup --env=prod
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Los Tickets no se actualizan (Cron Jobs)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si los tickets se crean pero las notificaciones no salen o el buzón no se refresca solo, el sistema de tareas programadas ha fallado.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Verifica el Cron: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo crontab -u www-data -l
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Asegúrate de tener la tarea de refresco:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
* * * * * php /var/www/uvdesk/bin/console uvdesk:refresh-mailbox
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Errores Comunes
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="131"&gt;&lt;/col&gt;&lt;col width="193"&gt;&lt;/col&gt;&lt;col width="253"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Error&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Causa Probable&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Solución&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;500 Internal Server Error&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Extensión PHP faltante o error de sintaxis en .env.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Revisa el prod.log.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Página de Login en bucle&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Problema con las cookies o sesión de PHP.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Limpia la caché del navegador y la carpeta &lt;span style="background-color: #fce5cd;"&gt;/var/lib/php/sessions.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Tickets sin adjuntos&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Límite de post_max_size en PHP.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Aumenta los valores en tu php.ini.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;"Driver not found"&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Falta php-mysql.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo apt install php-mysql&lt;/span&gt; y reinicia Apache.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de realismo
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
UVDesk es una herramienta poderosa, pero su arquitectura basada en componentes significa que si una pequeña pieza (como el SwiftMailer o el Mailbox bundle) está mal configurada, todo el flujo se detiene. Mi consejo: Nunca hagas cambios directamente en el código del "vendor"; usa siempre el archivo .env y los comandos de la consola de Symfony (bin/console).
&lt;br /&gt;
&lt;br /&gt;
¿Te está lanzando algún error específico de "Internal Server Error" o el problema es que no logra conectar con tu cuenta de correo corporativa?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo instalar y configurar UVDesk  en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-instalar-y-configurar-uvdesk-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 13 Apr 2026 09:24:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-6703065653788953064</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google cómo instalar y configurar UVDesk&amp;nbsp; en linux&lt;/p&gt;

Explicanos detalladamente cómo instalar y configurar UVDesk  en linux 
&lt;br /&gt;
&lt;br /&gt;
UVDesk es una solución de Help Desk de código abierto extremadamente robusta, construida sobre el framework Symfony (PHP). A diferencia de otros sistemas más simples, UVDesk destaca por su arquitectura modular y su gran capacidad de personalización, lo que lo hace ideal si buscas algo profesional que se pueda escalar.
&lt;br /&gt;
&lt;br /&gt;
Al estar basado en Symfony, la instalación es un poco más técnica que un simple "copiar y pegar" archivos, ya que requiere el gestor de paquetes Composer.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Requisitos del Sistema
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para que UVDesk rinda bien en Linux (Ubuntu 22.04 o 24.04), necesitaremos un stack LAMP moderno:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
PHP: &lt;/b&gt;8.1 o superior (con extensiones específicas).
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Servidor Web:&lt;/b&gt; Apache con mod_rewrite habilitado.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Base de Datos: &lt;/b&gt;MySQL 5.7+ o MariaDB 10.2+.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Composer: &lt;/b&gt;Gestor de dependencias de PHP.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Paso 1: Instalación del Stack y Extensiones
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Primero, preparamos el servidor con PHP y una extensión crítica para UVDesk: Mailparse.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql php-common php-gd php-phpdbg php-imap php-intl php-curl php-zip php-mbstring php-xml php-bcmath -y
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Instalación de Mailparse (necesario para procesar correos electrónicos)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install php-dev php-pear -y
&lt;br /&gt;
&lt;br /&gt;
sudo pecl install mailparse
&lt;br /&gt;
&lt;br /&gt;
echo "extension=mailparse.so" | sudo tee /etc/php/8.x/mods-available/mailparse.ini
&lt;br /&gt;
&lt;br /&gt;
sudo phpenmod mailparse
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Paso 2: Configuración de la Base de Datos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Entramos en MariaDB para crear el espacio donde UVDesk guardará los tickets.
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
SQL
&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE uvdesk;
&lt;br /&gt;
&lt;br /&gt;
CREATE USER 'uvdesk_user'@'localhost' IDENTIFIED BY 'TuPasswordSegura';
&lt;br /&gt;
&lt;br /&gt;
GRANT ALL PRIVILEGES ON uvdesk.* TO 'uvdesk_user'@'localhost';
&lt;br /&gt;
&lt;br /&gt;
FLUSH PRIVILEGES;
&lt;br /&gt;
&lt;br /&gt;
EXIT;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Paso 3: Instalación de Composer y UVDesk
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
No descargaremos un ZIP; usaremos Composer para crear el proyecto. Esto asegura que todas las librerías de Symfony estén al día.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instalar Composer:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
curl -sS https://getcomposer.org/installer | php
&lt;br /&gt;
&lt;br /&gt;
sudo mv composer.phar /usr/local/bin/composer
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instalar UVDesk Community Skeleton:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
cd /var/www
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo composer create-project uvdesk/community-skeleton helpdesk
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Paso 4: Permisos y VirtualHost
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Symfony requiere permisos de escritura muy específicos en las carpetas de caché y logs.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chown -R www-data:www-data /var/www/helpdesk
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 755 /var/www/helpdesk
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Ahora, configuramos Apache para que apunte a la carpeta public de UVDesk:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Crear archivo: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo nano /etc/apache2/sites-available/uvdesk.conf
&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Configuración:
&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Apache
&lt;br /&gt;
&lt;br /&gt;
&lt;virtualhost&gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ServerName soporte.tudominio.com
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentRoot /var/www/helpdesk/public
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;
    &lt;directory helpdesk="" public="" var="" www=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Directory /var/www/helpdesk/public&amp;gt;&lt;br /&gt;
&amp;nbsp; &amp;nbsp;&amp;nbsp;&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Options FollowSymLinks
      &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AllowOverride All
      &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Require all granted
      &lt;br /&gt;
&lt;br /&gt;
    &lt;/directory&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ErrorLog ${APACHE_LOG_DIR}/uvdesk_error.log
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomLog ${APACHE_LOG_DIR}/uvdesk_access.log combined
  &lt;br /&gt;
&lt;br /&gt;
&lt;/virtualhost&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Activar:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo a2ensite uvdesk.conf
&lt;br /&gt;
&lt;br /&gt;
sudo a2enmod rewrite
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Paso 5: El Asistente de Instalación Web
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Abre tu navegador en http://soporte.tudominio.com. UVDesk te recibirá con un asistente visual:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Evaluating System Requirements: &lt;/b&gt;Verificará que PHP y Mailparse estén listos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Database Configuration: &lt;/b&gt;Introduce los datos del Paso 2.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Create Super Admin&lt;/b&gt;: Configura tu cuenta de acceso principal.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Install Now: &lt;/b&gt;El sistema ejecutará las migraciones de base de datos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
7. Configuración de Correo (Mailbox)&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
UVDesk es famoso por su capacidad de convertir correos en tickets. Para configurarlo:
&lt;br /&gt;
&lt;br /&gt;
Ve al panel de administración &amp;gt; Settings &amp;gt; Swift Mailer.
&lt;br /&gt;
&lt;br /&gt;
Configura tu servidor SMTP (Gmail, Outlook o propio).
&lt;br /&gt;
&lt;br /&gt;
Luego ve a Mailbox y vincula esa configuración para que el sistema "escuche" los correos entrantes.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Resumen de Mantenimiento
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="167"&gt;&lt;/col&gt;&lt;col width="337"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Tarea&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Comando / Ruta&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 1px 3px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Limpiar Caché&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;php bin/console c:c (dentro de la carpeta del proyecto)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 1px 3px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Logs de errores&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;/var/www/helpdesk/var/log/&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 1px 3px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Configuración de variables&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Archivo .env en la raíz del proyecto&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un detalle técnico importante
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
UVDesk, al ser Symfony, es muy estricto con la configuración de la base de datos en el archivo .env. Si después de la instalación cambias la contraseña de la base de datos, recuerda actualizar la línea DATABASE_URL en ese archivo, de lo contrario, verás un error de "Doctrine" inmediatamente.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te explicara cómo automatizar la entrada de tickets mediante la configuración de un "Email Piping" para que los correos se procesen al instante sin esperar al cron?
&lt;br /&gt;
&lt;br /&gt;
Configurar Email Piping
&lt;br /&gt;
&lt;br /&gt;
Personalizar plantillas de tickets
&lt;br /&gt;
&lt;br /&gt;
Instalación de SSL con Certbot
&lt;br /&gt;
&lt;br /&gt;
Gestión de workflows y flujos de trabajo
&lt;br /&gt;
&lt;br /&gt;
¿Cuál de estos puntos te interesa más?
&lt;br /&gt;
&lt;br /&gt;


</description></item><item><title>Tienda Linuxeros FAQ</title><link>http://linuxeros-faq.blogspot.com/2026/04/tienda-linuxeros-faq.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 10 Apr 2026 08:39:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-1460782379508689588</guid><description>&lt;p&gt;&amp;nbsp;Para todos los amantes de linux y sus diferentes distribuciones les avisamos que tenemos a la venta tanto a traves de nuestra página en facebook&amp;nbsp;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;a href="https://www.facebook.com/linuxerosfaq" rel="nofollow" target="_blank"&gt;https://www.facebook.com/linuxerosfaq&lt;/a&gt;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;Asi como también en Amazon a traves de este enlace&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a href="https://amzn.to/4bJM7RE" rel="nofollow" target="_blank"&gt;&lt;b&gt;&lt;span style="font-size: x-large;"&gt;https://amzn.to/4bJM7RE&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;/p&gt;&lt;p style="text-align: left;"&gt;también tenemos nuestras propias creaciones en este enlace&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;a href="https://www.zazzle.com/store/linuxeros_faq" rel="nofollow" target="_blank"&gt;&lt;b&gt;&lt;span style="font-size: x-large;"&gt;Linuxeros FAQ Store&lt;/span&gt;&lt;/b&gt;&lt;/a&gt;&lt;br /&gt;&lt;/p&gt;&lt;p style="text-align: center;"&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;&lt;p&gt;&lt;br /&gt;&lt;/p&gt;</description></item><item><title>Cómo solucionar problemas de FreeScout en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-solucionar-problemas-de-freescout.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 8 Apr 2026 09:08:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-6797126099297298309</guid><description>&lt;p&gt;Le preguntamos a Gemini, la inteligencia artificial de Google que nos expĺique cómo solucionar problemas de FreeScout en linux&lt;/p&gt;

Explicanos detalladamente cómo solucionar problemas de FreeScout en linux
&lt;br /&gt;
&lt;br /&gt;
Solucionar problemas en FreeScout suele ser un ejercicio de "detective de Laravel". Al ser un software basado en este framework de PHP, la mayoría de los fallos no son del código en sí, sino de la orquestación entre el servidor web, los permisos de archivos y, sobre todo, el Cron Job.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la guía técnica para devolverle la vida a tu bandeja de entrada compartida.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El "Libro de la Verdad": Los Logs de Laravel
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
En FreeScout, los logs de Nginx o Apache solo te dirán que hubo un "Error 500", pero no por qué. El verdadero detalle está en el log interno de la aplicación.
&lt;br /&gt;
&lt;br /&gt;
Ruta del log: /var/www/freescout/storage/logs/laravel.log
&lt;br /&gt;
&lt;br /&gt;
Cómo leerlo en tiempo real:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
tail -f /var/www/freescout/storage/logs/laravel.log
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Si ves errores de "Permission denied" o "Connection refused", ya tienes por dónde empezar.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. El Problema #1: Los correos no llegan ni salen
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si FreeScout parece "congelado" (no descarga correos nuevos ni envía respuestas), el 99% de las veces es culpa del Cron Job o de la Queue (cola de trabajos).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Verifica el Cron:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Ejecuta el comando manualmente para ver si lanza algún error:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u www-data php /var/www/freescout/artisan schedule:run
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Estado de los procesos de fondo:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
FreeScout usa tareas en segundo plano. Si el comando anterior te dice que no hay tareas programadas, revisa que tu crontab tenga la línea correcta:
* * * * * php /var/www/freescout/artisan schedule:run &amp;gt;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Errores de Permisos (Pantalla Blanca o Error 500)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si tras una actualización o migración el sitio no carga, Laravel suele quejarse porque no puede escribir en sus carpetas temporales.
&lt;br /&gt;
&lt;br /&gt;
Aplica la "receta de permisos" estándar:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chown -R www-data:www-data /var/www/freescout
&lt;br /&gt;
&lt;br /&gt;
sudo find /var/www/freescout -type d -exec chmod 755 {} \;
&lt;br /&gt;
&lt;br /&gt;
sudo find /var/www/freescout -type f -exec chmod 644 {} \;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
# Carpetas que NECESITAN escritura obligatoria
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chmod -R 775 /var/www/freescout/storage
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 775 /var/www/freescout/bootstrap/cache
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 775 /var/www/freescout/public/uploads
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Problemas de Conexión IMAP/SMTP
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si al configurar una cuenta de correo recibes un error de "Connection Timeout" o "Authentication Failed":
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Puertos bloqueados:&lt;/b&gt; Asegúrate de que tu firewall permite tráfico saliente en los puertos 993 (IMAP) y 465/587 (SMTP).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
OpenSSL: &lt;/b&gt;FreeScout requiere que PHP tenga habilitada la extensión php-openssl.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
App Passwords:&lt;/b&gt; Si usas Gmail o Outlook, recuerda que no puedes usar tu contraseña normal; debes generar una "Contraseña de Aplicación" desde la configuración de seguridad de tu cuenta de correo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Limpieza de Caché (El "reinicio" de software)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
A veces, tras cambiar la configuración en el archivo .env, FreeScout sigue usando la configuración vieja porque Laravel la tiene cacheada.
&lt;br /&gt;
&lt;br /&gt;
Ejecuta estos comandos en la raíz de FreeScout para limpiar todo:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo -u www-data php artisan cache:clear
&lt;br /&gt;
&lt;br /&gt;
sudo -u www-data php artisan view:clear
&lt;br /&gt;
&lt;br /&gt;
sudo -u www-data php artisan config:clear
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Error "App Key Not Found"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si ves este error, significa que el sistema no puede cifrar/descifrar los datos (como las contraseñas de tus cuentas de correo).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Solución: &lt;/b&gt;Verifica que en tu archivo .env la variable APP_KEY tenga un valor. Si está vacía, genérala con:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
php artisan key:generate
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
[!CAUTION]
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
No cambies la APP_KEY si ya tienes datos en el sistema, o perderás el acceso a las contraseñas guardadas (se volverán ilegibles).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Diagnóstico Rápido&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border-color: currentcolor; border-image: initial; border-style: none; border-width: medium; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="170"&gt;&lt;/col&gt;&lt;col width="175"&gt;&lt;/col&gt;&lt;col width="226"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Síntoma&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Causa probable&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Solución rápida&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Error 504 Gateway Timeout&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;El proceso PHP tarda demasiado.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Aumenta max_execution_time en php.ini.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Los adjuntos no se suben&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Límite de tamaño de archivo.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Ajusta client_max_body_size en Nginx y upload_max_filesize en PHP.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;No se guardan los ajustes&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Carpeta /storage protegida.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Aplica los comandos de chmod del punto 3.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Módulos no aparecen&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Carpeta /Modules sin permisos.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;chown -R www-data en la carpeta Modules.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de "witty" consejo
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si nada de esto funciona, recuerda que FreeScout tiene una herramienta de "System Check" dentro del panel de administración (Manage -&amp;gt; System -&amp;gt; Tools). Es como el escáner médico del sistema: te dirá en rojo qué extensión de PHP falta o qué carpeta está bloqueada. ¡Es tu mejor amigo antes de entrar en pánico!
&lt;br /&gt;
&lt;br /&gt;
¿Estás teniendo problemas con un proveedor de correo específico (como una cuenta de Gmail que se desconecta sola) o el fallo es general de la interfaz?
&lt;br /&gt;
&lt;br /&gt;


</description></item><item><title>Cómo instalar y configurar FreeScout en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-instalar-y-configurar-freescout-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 6 Apr 2026 09:30:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-376892211572613147</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google cómo instalar y configurar FreeScout en linux&lt;/p&gt;

Explicanos detalladamente cómo instalar y configurar FreeScout en linux
&lt;br /&gt;
&lt;br /&gt;
FreeScout es, posiblemente, el secreto mejor guardado de la comunidad open source para quienes buscan un sistema de tickets elegante. Es un clon casi exacto de Help Scout, pero desarrollado en PHP (Laravel), lo que lo hace ligero, rápido y extremadamente fácil de usar para el equipo de soporte.
&lt;br /&gt;
&lt;br /&gt;
A diferencia de Zammad o GLPI, FreeScout se centra en la bandeja de entrada compartida. Aquí tienes cómo desplegarlo en un servidor Linux (usaremos Ubuntu 24.04/22.04 como referencia).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Requisitos del Sistema (LEMP Stack)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
FreeScout corre mejor sobre Nginx y PHP 8.1/8.2. No es muy exigente con la RAM (1GB es suficiente para equipos pequeños), pero agradece un buen procesador.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instalación de dependencias:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install nginx mariadb-server git unzip curl -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Instalación de PHP y los módulos específicos que requiere Laravel/FreeScout
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install php-fpm php-mysql php-common php-phpdbg php-gd php-imap php-intl php-curl php-zip php-mbstring php-xml php-bcmath -y
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Preparación de la Base de Datos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
FreeScout necesita una base de datos para almacenar las conversaciones y configuraciones.
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Entra a MariaDB:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;sudo mysql -u root
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Configura el entorno:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
SQL
&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE freescout CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
&lt;br /&gt;
&lt;br /&gt;
CREATE USER 'freescout_user'@'localhost' IDENTIFIED BY 'TuPasswordSegura';
&lt;br /&gt;
&lt;br /&gt;
GRANT ALL PRIVILEGES ON freescout.* TO 'freescout_user'@'localhost';
&lt;br /&gt;
&lt;br /&gt;
FLUSH PRIVILEGES;
&lt;br /&gt;
&lt;br /&gt;
EXIT;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Instalación de FreeScout
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
A diferencia de otros scripts, instalaremos FreeScout directamente desde su repositorio oficial de GitHub para facilitar futuras actualizaciones.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Moverse al directorio web:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
cd /var/www
&lt;br /&gt;
&lt;br /&gt;
sudo git clone https://github.com/freescout-helpdesk/freescout.git
&lt;br /&gt;
&lt;br /&gt;
sudo chown -R www-data:www-data /var/www/freescout
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Configurar permisos (Crucial):
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
FreeScout necesita escribir en varias carpetas para funcionar correctamente.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo find /var/www/freescout -type d -exec chmod 755 {} \;
&lt;br /&gt;
&lt;br /&gt;
sudo find /var/www/freescout -type f -exec chmod 644 {} \;
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 775 /var/www/freescout/storage
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 775 /var/www/freescout/bootstrap/cache
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 775 /var/www/freescout/public/uploads
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Configuración de Nginx
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Laravel requiere una configuración de servidor específica para manejar las rutas.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Crea el archivo: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo nano /etc/nginx/sites-available/freescout
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Pega este bloque de configuración:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Nginx
&lt;br /&gt;
&lt;br /&gt;
server {
&lt;br /&gt;
&lt;br /&gt;
    listen 80;
&lt;br /&gt;
&lt;br /&gt;
    server_name soporte.tudominio.com;
&lt;br /&gt;
&lt;br /&gt;
    root /var/www/freescout/public;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    index index.php index.html index.htm;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    location / {
&lt;br /&gt;
&lt;br /&gt;
        try_files $uri $uri/ /index.php?$query_string;
&lt;br /&gt;
&lt;br /&gt;
    }
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
    location ~ \.php$ {
&lt;br /&gt;
&lt;br /&gt;
        include snippets/fastcgi-php.conf;
&lt;br /&gt;
&lt;br /&gt;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock; # Ajusta según tu versión de PHP
&lt;br /&gt;
&lt;br /&gt;
    }
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;

    location ~ /\.ht {
&lt;br /&gt;
&lt;br /&gt;
        deny all;
&lt;br /&gt;
&lt;br /&gt;
    }
&lt;br /&gt;
&lt;br /&gt;
}
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Activa el sitio y reinicia:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;span style="background-color: #fce5cd;"&gt;&lt;br /&gt;
sudo ln -s /etc/nginx/sites-available/freescout /etc/nginx/sites-enabled/
&lt;br /&gt;
&lt;br /&gt;
sudo nginx -t
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart nginx
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Tarea Programada (Cron Job) - El Corazón del Sistema&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si no configuras el Cron, FreeScout no enviará ni recibirá correos. Es el error más común.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Edita el crontab del usuario web:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo crontab -u www-data -e
&lt;br /&gt;&lt;/span&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
Añade esta línea al final:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
* * * * * /usr/bin/php /var/www/freescout/artisan schedule:run &amp;gt;&amp;gt; /dev/null 2&amp;gt;&amp;amp;1
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Instalador Web Final
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ahora, abre tu navegador en http://soporte.tudominio.com. El instalador de FreeScout te guiará:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Requirements Check: &lt;/b&gt;Verificará que todos los módulos de PHP estén instalados.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Permissions:&lt;/b&gt; Confirmará que las carpetas tienen permisos de escritura.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
App Setup: &lt;/b&gt;Introduce la URL de tu sitio.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
DB Setup: &lt;/b&gt;Usa los datos del Paso 2 (freescout_user, TuPasswordSegura, freescout).&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="157"&gt;&lt;/col&gt;&lt;col width="395"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Acción&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Por qué es importante&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;HTTPS (Certbot)&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;FreeScout maneja datos sensibles de clientes. Usa &lt;span style="background-color: #fce5cd;"&gt;sudo certbot --nginx.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;App Key&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Si el instalador no la genera, ejecuta &lt;span style="background-color: #fce5cd;"&gt;php artisan key:generate &lt;/span&gt;en la carpeta raíz.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Módulos Gratuitos&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Revisa la sección de "Modules" en el panel. Muchos son gratuitos y añaden funciones como "Notas Internas".&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Logs de App&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Si algo falla, mira en /var/www/freescout/storage/logs/laravel.log.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un detalle de "colega" técnico:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
FreeScout es genial porque no requiere que tus clientes aprendan a usar un portal de tickets. Ellos simplemente envían un correo a soporte@tudominio.com, y a ti te aparece en una interfaz limpia donde puedes asignar la conversación, poner etiquetas o discutirlo internamente con tu equipo antes de responder.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te explicara cómo configurar el "Inbound Email" usando Gmail o Outlook para que FreeScout empiece a descargar tus correos automáticamente? Solo dime qué proveedor usas.
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo  solucionar problemas de GLPI en linux</title><link>http://linuxeros-faq.blogspot.com/2026/04/como-solucionar-problemas-de-glpi-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 1 Apr 2026 09:17:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-3406047494772251983</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google cómo&amp;nbsp; solucionar problemas de GLPI en linux&lt;/p&gt;

Explicanos detalladamente cómo  solucionar problemas de GLPI en linux
&lt;br /&gt;
&lt;br /&gt;
Cuando el "cerebro" de tu inventario tecnológico empieza a fallar, la presión aumenta porque dependes de él para resolver los problemas de todos los demás. GLPI es robusto, pero al ser tan modular y depender de tantas extensiones de PHP, un pequeño desajuste en el servidor puede detenerlo.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la guía técnica para diagnosticar y reparar GLPI como un profesional.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. La "Caja Negra": Los Logs de GLPI
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
A diferencia de otras apps, GLPI tiene sus propios registros internos que son mucho más descriptivos que los de Apache. Antes de tocar nada, mira aquí:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Ruta de logs:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;/var/www/html/glpi/files/_log/
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
php-errors.log:&lt;/b&gt; Aquí verás por qué una página sale en blanco o por qué un plugin no carga.
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
sql-errors.log:&lt;/b&gt; Si el error es de base de datos (tablas corruptas o fallos de actualización), aquí estará la consulta SQL exacta que falló.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
cron.log: &lt;/b&gt;Si las tareas automáticas no se ejecutan, este archivo te dirá por qué.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
[!TIP]
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Comando de monitoreo en vivo: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;&amp;gt; tail -f /var/www/html/glpi/files/_log/*.log&lt;/span&gt; (Esto te mostrará cualquier error en tiempo real mientras navegas por la web).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. El Problema de los Permisos (El "Top 1" de fallos)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
GLPI necesita escribir constantemente en las carpetas files, config y marketplace. Si tras una actualización o migración nada funciona, casi siempre es un tema de permisos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La solución definitiva:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Asegúrate de que el usuario del servidor web (www-data) sea el dueño de todo:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chown -R www-data:www-data /var/www/html/glpi
&lt;br /&gt;
&lt;br /&gt;
sudo find /var/www/html/glpi -type d -exec chmod 755 {} \;
&lt;br /&gt;
&lt;br /&gt;
sudo find /var/www/html/glpi -type f -exec chmod 644 {} \;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Errores de PHP y Extensiones Faltantes
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
GLPI 10 es muy exigente. Si ves un error 500 Internal Server Error, lo más probable es que falte un módulo de PHP que GLPI considera "vital".
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Verifica los módulos instalados:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;php -m
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Módulos que suelen faltar en instalaciones nuevas:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
php-intl (Para traducciones y fechas).
&lt;br /&gt;
&lt;br /&gt;
php-gd (Para generar gráficos y procesar imágenes).
&lt;br /&gt;
&lt;br /&gt;
php-bz2 o php-zip (Para manejar plugins y actualizaciones).
&lt;br /&gt;
&lt;br /&gt;
php-apcu (Para la caché, vital para la velocidad).
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Si falta uno, instálalo y reinicia:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install php-intl php-apcu
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Fallos en las Tareas Automáticas (Acciones Automáticas)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
¿Tus tickets por correo no llegan? ¿El inventario no se actualiza? Probablemente el sistema interno de "Acciones Automáticas" se quedó atascado o no está configurado en modo CLI.
&lt;br /&gt;
&lt;br /&gt;
Ve a Configuración &amp;gt; Acciones Automáticas.
&lt;br /&gt;
&lt;br /&gt;
Si ves muchas tareas en estado "Programado" pero con fecha pasada, cámbialas de GLPI a CLI.
&lt;br /&gt;
&lt;br /&gt;
Asegúrate de que tu crontab esté funcionando:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo crontab -u www-data -l
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
# Deberías ver: * * * * * /usr/bin/php /var/www/html/glpi/front/cron.php
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. El "Modo de Depuración" (Debug Mode)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si la interfaz web carga pero no puedes ver el error real, activa el Modo Debug. Esto te mostrará advertencias detalladas y tiempos de ejecución.
&lt;br /&gt;
&lt;br /&gt;
Haz clic en tu perfil (arriba a la derecha) &amp;gt; Modo de depuración.
&lt;br /&gt;
&lt;br /&gt;
Si no puedes entrar a la interfaz, puedes forzarlo en la base de datos (solo para expertos):
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
UPDATE glpi_users SET use_mode = 2 WHERE name = 'tu_usuario';
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Problemas comunes tras una actualización&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="153"&gt;&lt;/col&gt;&lt;col width="139"&gt;&lt;/col&gt;&lt;col width="297"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Síntoma&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Causa&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Solución&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Página de actualización constante&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;No se borró la carpeta install.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;sudo rm -rf /var/www/html/glpi/install&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Error de "Cifrado de Base de Datos"&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Falta el archivo glpi.key.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Restaura el archivo /etc/glpi/glpi.key de tu backup.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Plugins incompatibles&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Versión antigua de un plugin.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Desactiva plugins moviendo su carpeta fuera de marketplace/.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
7. Verificación del Sistema (Herramienta Interna)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
GLPI tiene una página de "salud" que pocos usan pero es oro puro. Ve a:
&lt;br /&gt;
&lt;br /&gt;
Administración &amp;gt; Configuración &amp;gt; Sistema
&lt;br /&gt;
&lt;br /&gt;
Aquí GLPI te dirá exactamente:
&lt;br /&gt;
&lt;br /&gt;
Si tu base de datos tiene el formato de tiempo (Timezone) correcto.
&lt;br /&gt;
&lt;br /&gt;
Si la seguridad de las carpetas es la adecuada.
&lt;br /&gt;
&lt;br /&gt;
Si el límite de memoria de PHP es suficiente (recomendado 512M).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de "sabiduría de trinchera"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
Si GLPI se siente lento, el culpable suele ser la base de datos MariaDB&lt;/span&gt;. Revisa el archivo /etc/mysql/mariadb.conf.d/50-server.cnf y asegúrate de que el valor innodb_buffer_pool_size sea al menos el 50% de tu RAM disponible. GLPI hace muchísimas lecturas pequeñas, y tener la base de datos en RAM cambia el juego por completo.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te ayudara a crear un script de backup automático que guarde tanto la base de datos como los archivos adjuntos y los suba a un servidor externo para dormir tranquilo?
&lt;br /&gt;
&lt;br /&gt;


</description></item><item><title>Cómo instalar y configurar GLPI en linux</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-instalar-y-configurar-glpi-en-linux.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 30 Mar 2026 09:01:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-8888003896206622521</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google cómo instalar y configurar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+GLPI&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;GLPI&lt;/a&gt; en linux&lt;/p&gt;

Explicanos detalladamente cómo instalar y configurar GLPI en linux
&lt;br /&gt;
&lt;br /&gt;
GLPI ( &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Gestionnaire+Libre+de+Parc+Informatique&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;Gestionnaire Libre de Parc Informatique&lt;/a&gt; ) es el "bibliotecario" definitivo para cualquier departamento de IT. A diferencia de un Help Desk simple, GLPI combina la gestión de tickets con un inventario de activos (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+ITAM&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;ITAM&lt;/a&gt;) brutalmente detallado. Puedes saber desde quién tiene un portátil específico hasta cuándo caduca la garantía de un switch en el rack 4.
&lt;br /&gt;
&lt;br /&gt;
Al igual que otros sistemas que hemos visto, corre sobre un &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+LAMP+stack&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;stack LAMP&lt;/a&gt;, pero GLPI 10 (la versión actual) es bastante exigente con las extensiones de PHP y la seguridad de las carpetas.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Requisitos del Sistema (Stack LAMP)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Asumiremos que usas Ubuntu 24.04/22.04. GLPI 10 necesita PHP 8.1 o superior y una base de datos robusta.
&lt;br /&gt;
&lt;br /&gt;
Instalación de dependencias:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql php-dom php-gd php-intl php-ldap php-mbstring php-mysqli php-simplexml php-xml php-curl php-zip php-bz2 php-opcache php-apcu -y
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Configuración de la Base de Datos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
GLPI guarda una cantidad masiva de relaciones entre objetos, por lo que necesita una base de datos bien configurada.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Entra a &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=MariaDB&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;MariaDB&lt;/a&gt;:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;sudo mysql -u root
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Crea el entorno:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
SQL
&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE glpi_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
&lt;br /&gt;
&lt;br /&gt;
CREATE USER 'glpi_user'@'localhost' IDENTIFIED BY 'TuPasswordSegura';
&lt;br /&gt;
&lt;br /&gt;
GRANT ALL PRIVILEGES ON glpi_db.* TO 'glpi_user'@'localhost';
&lt;br /&gt;
&lt;br /&gt;
FLUSH PRIVILEGES;
&lt;br /&gt;
&lt;br /&gt;
EXIT;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Descarga y Preparación de Archivos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
A partir de la versión 10, GLPI recomienda separar los archivos ejecutables de los archivos de datos (sesiones, logs, etc.) por seguridad.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Descarga la última versión:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
cd /tmp
&lt;br /&gt;
&lt;br /&gt;
wget https://github.com/glpi-project/glpi/releases/download/10.0.12/glpi-10.0.12.tgz
&lt;br /&gt;
&lt;br /&gt;
tar -xvzf glpi-10.0.12.tgz
&lt;br /&gt;
&lt;br /&gt;
sudo mv glpi /var/www/html/
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Configura los permisos:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chown -R www-data:www-data /var/www/html/glpi
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 755 /var/www/html/glpi
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Configuración de Apache (VirtualHost)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para que GLPI funcione correctamente y sea seguro, debemos apuntar el servidor web a la carpeta correcta.
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Crea el archivo:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;sudo nano /etc/apache2/sites-available/glpi.conf
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Pega la configuración:
&lt;br /&gt;
&lt;br /&gt;
Apache
&lt;br /&gt;
&lt;br /&gt;
&lt;virtualhost&gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ServerName glpi.tu-dominio.com
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentRoot /var/www/html/glpi/public
&lt;br /&gt;
&lt;br /&gt;
  &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/virtualhost&gt;&lt;div&gt;&lt;virtualhost&gt;&lt;br /&gt;&lt;/virtualhost&gt;&lt;/div&gt;&lt;div&gt;&lt;virtualhost&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Directory /var/www/html/glpi/public&amp;gt;&lt;br /&gt;
&lt;br /&gt;&lt;directory glpi="" html="" public="" var="" www=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AllowOverride All
      &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; Require all granted
      &lt;br /&gt;
&lt;br /&gt;
    &lt;/directory&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;/Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; ErrorLog ${APACHE_LOG_DIR}/glpi_error.log
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; CustomLog ${APACHE_LOG_DIR}/glpi_access.log combined
  &lt;br /&gt;
&lt;br /&gt;
&lt;/virtualhost&gt;&amp;lt;/VirtualHost&amp;gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Activa y reinicia:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo a2ensite glpi.conf
&lt;br /&gt;
&lt;br /&gt;
sudo a2enmod rewrite
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. El Asistente de Instalación Web
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
Ahora, ve a tu navegador: &lt;/b&gt;http://glpi.tu-dominio.com (o la IP de tu servidor).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Verificación de Entorno: &lt;/b&gt;GLPI revisará si te falta alguna extensión de PHP. Si seguiste el Paso 1, todo debería estar en verde.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Conexión DB:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Servidor: &lt;/b&gt;localhost
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Usuario:&lt;/b&gt; glpi_user
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Contraseña: &lt;/b&gt;TuPasswordSegura
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Selección de DB:&lt;/b&gt; Elige glpi_db.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Finalización: &lt;/b&gt;Te mostrará las contraseñas por defecto. Anótalas:
&lt;br /&gt;
&lt;br /&gt;
glpi/glpi (Administrador)
&lt;br /&gt;
&lt;br /&gt;
post-only/post-only (Usuario básico)
&lt;br /&gt;
&lt;br /&gt;
tech/tech (Técnico)
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Post-Instalación y Seguridad (Vital)&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
GLPI te mostrará alertas rojas al entrar por primera vez. No las ignores; son críticas para un entorno de producción.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
A. Eliminar el archivo de instalación
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo rm /var/www/html/glpi/install/install.php
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
B. Configurar la Tarea Programada (Cron)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para que GLPI envíe correos y procese tareas de inventario automáticamente:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Edita el cron: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo crontab -u www-data -e
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Añade esta línea:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
* * * * * /usr/bin/php /var/www/html/glpi/front/cron.php
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
C. Cambiar las contraseñas
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Entra en Administración &amp;gt; Usuarios y cambia las contraseñas de glpi, tech y post-only inmediatamente.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
7. Inventario Automático: El &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=GLPI+Agent&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;GLPI Agent&lt;/a&gt;&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
GLPI brilla de verdad cuando usas su Agente. Es un pequeño software que instalas en los PCs (Windows, Linux, macOS) y que envía automáticamente al servidor:
&lt;br /&gt;
&lt;br /&gt;
Componentes de hardware (CPU, RAM, Discos).
&lt;br /&gt;
&lt;br /&gt;
Software instalado y licencias.
&lt;br /&gt;
&lt;br /&gt;
Estado de los tóner de las impresoras de red (vía SNMP).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Resumen de Mantenimiento
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="127"&gt;&lt;/col&gt;&lt;col width="110"&gt;&lt;/col&gt;&lt;col width="337"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Tarea&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Frecuencia&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Ubicación/Comando&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Logs de GLPI&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Semanal&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;/var/www/html/glpi/files/_log/&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Backup DB&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Diaria&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;mysqldump -u glpi_user -p glpi_db &amp;gt; backup.sql&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Limpiar Sesiones&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Automático&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Gestionado por el Cron del Paso 6.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de realidad técnica
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si planeas gestionar más de 100 dispositivos, te recomiendo encarecidamente que habilites &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+PHP-FPM&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;PHP-FPM&lt;/a&gt; y &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Opcache&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;Opcache&lt;/a&gt;. GLPI carga muchos scripts pequeños en cada clic, y sin caché de PHP, la interfaz puede sentirse pesada después de un tiempo.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te explicara cómo configurar el despliegue automático del GLPI Agent mediante GPO (en Windows) o mediante un &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=script+de+despliegue+masivo+en+Linux&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8888003896206622521" target="_blank"&gt;script de despliegue masivo en Linux&lt;/a&gt;?
&lt;br /&gt;
&lt;br /&gt;


&lt;/div&gt;</description></item><item><title>Cómo configurar un entorno gráfico ligero (como LXDE o XFCE) para que los clientes diskless funcionen como estaciones de trabajo completas</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-configurar-un-entorno-grafico.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 27 Mar 2026 09:35:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-812462257690016153</guid><description>&lt;p&gt;&amp;nbsp;Le pedimos a Gemini, la inteligencia artificial de Google nos explique cómo configurar un entorno gráfico ligero (como &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+LXDE&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;LXDE&lt;/a&gt; o &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+XFCE&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;XFCE&lt;/a&gt;) para que los &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=what+are+diskless+clients&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;clientes diskless&lt;/a&gt; funcionen como estaciones de trabajo completas&lt;/p&gt;

Explicanos detalladamente cómo configurar un entorno gráfico ligero (como LXDE o XFCE) para que los clientes diskless funcionen como estaciones de trabajo completas
&lt;br /&gt;
&lt;br /&gt;
Configurar clientes diskless (sin disco duro) para que funcionen como estaciones de trabajo gráficas es una de las proezas más elegantes de la administración de sistemas. Básicamente, estamos convirtiendo un hardware "vacío" en una terminal que carga todo su sistema operativo, aplicaciones y entorno gráfico desde un servidor a través de la red (&amp;nbsp;&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+PXE+boot&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;PXE&lt;/a&gt;).
&lt;br /&gt;
&lt;br /&gt;
Para que esto sea fluido y no sature la red, la elección de un entorno ligero como LXDE o XFCE es obligatoria. Aquí tienes la hoja de ruta técnica para lograrlo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Arquitectura del Servidor (El "Cerebro")
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
El servidor debe proveer tres servicios fundamentales para que el cliente arranque:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+DHCP+server&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;DHCP&lt;/a&gt; : &lt;/b&gt;Para dar una IP al cliente y decirle dónde está el cargador de arranque.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+TFTP+protocol&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;TFTP&lt;/a&gt; : &lt;/b&gt;Para enviar el kernel de Linux ( vmlinuz ) y el sistema de archivos inicial (initrd).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
NFS ( Network File System ): &lt;/b&gt;Para montar la partición raíz (/) a través de la red.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instalación de servicios (Debian/Ubuntu):
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install nfs-kernel-server dnsmasq debootstrap -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Preparación del Sistema de Archivos del Cliente
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
No queremos clonar un disco; queremos crear una instalación limpia en una carpeta del servidor que los clientes verán como su propio disco duro.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;
&lt;br /&gt;
# Crear el directorio raíz para el cliente
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo mkdir -p /srv/nfs/client1
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Instalar un sistema base (ejemplo con Debian)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo debootstrap bullseye /srv/nfs/client1 http://deb.debian.org/debian
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Instalación del Entorno Gráfico (Chroot)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ahora debemos "entrar" en esa carpeta para instalar el software como si estuviéramos físicamente en el cliente.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Entrar al entorno del cliente
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo mount --bind /dev /srv/nfs/client1/dev
&lt;br /&gt;
&lt;br /&gt;
sudo mount --bind /proc /srv/nfs/client1/proc
&lt;br /&gt;
&lt;br /&gt;
sudo mount --bind /sys /srv/nfs/client1/sys
&lt;br /&gt;
&lt;br /&gt;
sudo &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+chroot+command&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;chroot&lt;/a&gt; /srv/nfs/client1
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Dentro del chroot, instala el entorno ligero:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
Para XFCE (Más completo): &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;apt install xfce4 xfce4-goodies &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+lightdm+display+manager&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;lightdm&lt;/a&gt; xserver-xorg -y
&lt;/span&gt;&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Para LXDE (Más ligero): &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;apt install lxde lightdm xserver-xorg -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
[!TIP]
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
El toque de agilidad: &lt;/b&gt;Instala también un navegador ligero como Midori o Falcon si el hardware del cliente es muy antiguo. Si tienen potencia suficiente, Firefox o Chrome funcionarán, pero recuerda que el tráfico de lectura irá por la red.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Configuración del Inicio Gráfico ( LightDM )
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para que el cliente inicie sesión automáticamente (común en quioscos o laboratorios), edita el archivo de configuración de LightDM dentro del chroot:
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
nano /etc/lightdm/lightdm.conf
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Busca y activa estas líneas:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Plaintext
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
[Seat:*]
&lt;br /&gt;
&lt;br /&gt;
autologin-user=usuario_cliente
&lt;br /&gt;
&lt;br /&gt;
autologin-user-timeout=0
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Configuración del " FSTAB " en el Cliente
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
El cliente debe saber que su disco duro no es físico, sino una ruta NFS. Edita &lt;span style="background-color: #fce5cd;"&gt;/srv/nfs/client1/etc/fstab:
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Plaintext
&lt;br /&gt;
&lt;br /&gt;&lt;br /&gt;
# El root / ya viene montado por el kernel vía PXE, pero marcamos la coherencia
&lt;br /&gt;
&lt;br /&gt;
/dev/nfs        /               nfs     defaults,nolock 0 0
&lt;br /&gt;
&lt;br /&gt;
none            /tmp            tmpfs   defaults        0 0
&lt;br /&gt;
&lt;br /&gt;
none            /var/run        tmpfs   defaults        0 0
&lt;br /&gt;
&lt;br /&gt;
none            /var/log        tmpfs   defaults        0 0
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Importante: &lt;/b&gt;Montamos &lt;span style="background-color: #fce5cd;"&gt;/tmp y /var/log&lt;/span&gt; en la RAM (tmpfs) para que el cliente sea más rápido y no sature al servidor con escrituras pequeñas constantes.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Configuración del arranque (PXE/Kernel)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
En el servidor, configura &lt;span style="background-color: #fce5cd;"&gt;dnsmasq&lt;/span&gt; para servir el kernel. El parámetro clave en la línea del kernel es &lt;span style="background-color: #fce5cd;"&gt;nfsroot&lt;/span&gt;.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Ejemplo de configuración de arranque (pxelinux.cfg/default):
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Plaintext&lt;div&gt;&amp;nbsp;
&lt;br /&gt;
&lt;br /&gt;
LABEL linux
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;KERNEL vmlinuz
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;APPEND initrd=initrd.img root=/dev/nfs nfsroot=192.168.1.10:/srv/nfs/client1 ip=dhcp rw
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
7. Optimización de Rendimiento ( Witty Advice )
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si vas a tener 20 clientes abriendo LibreOffice al mismo tiempo, tu red de 100 Mbps va a llorar.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Gigabit+Ethernet+benefits&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;Gigabit Ethernet&lt;/a&gt;:&lt;/b&gt; Es el requisito mínimo para una experiencia fluida.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Compresión: &lt;/b&gt;Puedes usar NBD ( Network Block Device ) con compresión en lugar de NFS si la red es el cuello de botella.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Shared Apps:&lt;/b&gt; Instala aplicaciones mediante apt dentro del chroot para que todos los clientes compartan los mismos binarios en la caché del servidor.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Una alternativa "Wildcard"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si LXDE te parece "muy 2010", puedes probar Enlightenment ( E25 ). Es visualmente impresionante, tiene efectos de transparencia y animaciones, pero consume casi lo mismo que LXDE. Es el "secreto mejor guardado" para revivir hardware viejo con estilo.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te explicara cómo configurar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Swap+over+network+setup&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;Swap sobre la red&lt;/a&gt; ( NBD ) para que los clientes con poca RAM no se bloqueen al abrir muchas pestañas en el navegador?
&lt;br /&gt;
&lt;br /&gt;
Configurar Swap vía Red
&lt;br /&gt;
&lt;br /&gt;
Automatizar creación de múltiples clientes
&lt;br /&gt;
&lt;br /&gt;
Configurar persistencia de usuarios (&amp;nbsp;&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=LDAP+NFS+integration&amp;amp;bbid=4932782972866403906&amp;amp;bpid=812462257690016153" target="_blank"&gt;LDAP/NFS&lt;/a&gt;&amp;nbsp;)
&lt;br /&gt;
&lt;br /&gt;
Monitorizar tráfico de red de los clientes
&lt;br /&gt;
&lt;br /&gt;
¿Cuál de estos pasos te interesa más para completar tu laboratorio?
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;</description></item><item><title>Cómo solucionar problemas de Zammad en Linux</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-solucionar-problemas-de-zammad-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 25 Mar 2026 09:46:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-404340287757256201</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Gemini+Google+AI&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Gemini, la inteligencia artificial de Google&lt;/a&gt; cómo solucionar problemas de &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=What+is+Zammad&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Zammad&lt;/a&gt; en &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Linux+operating+system&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Linux&lt;/a&gt;&amp;nbsp;&lt;/p&gt;

Expolicanos detalladamente cómo solucionar problemas de Zammad en Linux
&lt;br /&gt;
&lt;br /&gt;
Si Zammad es el "Ferrari" de los &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+sistemas+de+tickets&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;sistemas de tickets&lt;/a&gt;, sus averías suelen ser más complejas que cambiarle el aceite a un motor PHP. Al depender de &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Ruby+on+Rails+framework&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Ruby on Rails&lt;/a&gt;, &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Elasticsearch+search+engine&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Elasticsearch&lt;/a&gt; y &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Redis+in-memory+data+structure+store&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Redis&lt;/a&gt;, el diagnóstico requiere mirar varios frentes a la vez.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes el manual de rescate para cuando tu Zammad decida "tomarse el día libre".
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El Primer Paso: ¿Quién se ha caído?
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Antes de tocar código, verifica el estado de los "&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Zammad+cuatro+pilares&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;cuatro pilares&lt;/a&gt;" de Zammad.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Bash+shell&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Bash&lt;/a&gt;
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Verificar los servicios principales
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo systemctl status zammad
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status elasticsearch
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status postgresql
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl status redis-server
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
El "&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=502+Bad+Gateway+error+explained&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;502 Bad Gateway&lt;/a&gt;" (El clásico)
&lt;br /&gt;
&lt;br /&gt;
Si ves este error en el navegador, &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Nginx+web+server&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Nginx&lt;/a&gt; está vivo, pero Zammad no responde.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Causa común: &lt;/b&gt;Zammad tarda mucho en arrancar (hasta 2 minutos en servidores lentos).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Solución: &lt;/b&gt;Dale tiempo. Si persiste, revisa si el servicio zammad-web falló: &lt;span style="background-color: #fce5cd;"&gt;sudo systemctl restart zammad-web.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Los Logs: Donde Zammad confiesa sus pecados
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si el servicio dice que está "active", pero algo no funciona, los logs te dirán la verdad.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Log Principal (Errores de aplicación):&lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt; /var/log/zammad/&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=production.log+file+Zammad&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;production.log&lt;/a&gt;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Log del Planificador (Tareas de correo): &lt;/b&gt;/&lt;span style="background-color: #fce5cd;"&gt;var/log/zammad/scheduler.out
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Log de Nginx (Errores de conexión): &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;/var/log/nginx/zammad.error.log
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Truco de experto:&lt;/b&gt; Usa&lt;span style="background-color: #fce5cd;"&gt; tail -f /var/log/zammad/production.log &lt;/span&gt;mientras intentas reproducir el error en el navegador para ver el fallo en tiempo real.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Problemas con la Búsqueda (Elasticsearch)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si buscas un ticket y no aparece nada, o recibes un error al buscar, el culpable es Elasticsearch.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Síntoma: &lt;/b&gt;"&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Search+index+not+updated+error+Zammad&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;Search index not updated&lt;/a&gt;"
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Verifica que corra en el puerto 9200: &lt;/b&gt;curl -X GET http://localhost:9200
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Re-indexar todo:&lt;/b&gt; A veces el índice se corrompe o se desincroniza. Ejecuta:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo zammad run rails r 'search:reindex'
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Esto puede tardar varios minutos si tienes miles de tickets.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. El "Traga-RAM": Errores de Memoria
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Zammad y Elasticsearch son devoradores de memoria. Si tu servidor tiene 4GB o menos, el sistema operativo puede matar procesos aleatoriamente (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=OOM+Killer+Linux+explained&amp;amp;bbid=4932782972866403906&amp;amp;bpid=404340287757256201" target="_blank"&gt;OOM Killer&lt;/a&gt;).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Diagnóstico: &lt;/b&gt;Revisa dmesg | grep -i kill. Si ves menciones a Ruby o Java, te has quedado sin RAM.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Solución rápida: &lt;/b&gt;Crea o aumenta el archivo de Swap (memoria virtual):
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo fallocate -l 4G /swapfile
&lt;br /&gt;
&lt;br /&gt;
sudo chmod 600 /swapfile
&lt;br /&gt;
&lt;br /&gt;
sudo mkswap /swapfile
&lt;br /&gt;
&lt;br /&gt;
sudo swapon /swapfile
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. El Correo no llega o no sale
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si los tickets no se crean desde emails, el Scheduler (Planificador) suele estar bloqueado.
&lt;br /&gt;
&lt;br /&gt;
Reiniciar el planificador: sudo systemctl restart zammad-worker
&lt;br /&gt;
&lt;br /&gt;
Forzar limpieza de tareas: A veces una tarea de correo se queda "atascada" y bloquea las demás. Puedes limpiar el estado del procesador de fondos desde la consola de Rails:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo zammad run rails c
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
# Dentro de la consola:
&lt;br /&gt;
&lt;br /&gt;
Delayed::Job.delete_all
&lt;br /&gt;
&lt;br /&gt;
exit
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Referencia de Errores
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="220"&gt;&lt;/col&gt;&lt;col width="181"&gt;&lt;/col&gt;&lt;col width="199"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Error&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Causa Probable&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Comando de Rescate&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;CSRF token authenticity&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Cache del navegador o cookies&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Limpiar cookies o usar pestaña incógnito.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Connection refused (PostgreSQL)&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Base de datos apagada&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;sudo systemctl start postgresql&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Elasticsearch version mismatch&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Actualizaste ES pero no el plugin&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Reinstalar ingest-attachment en ES.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Permission denied (Assets)&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Permisos de carpeta incorrectos&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;sudo chown -R zammad:zammad /opt/zammad&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de candor técnico
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Zammad es una pieza de software increíble, pero es muy sensible a las actualizaciones de sistema. Si haces un apt upgrade y se actualiza Elasticsearch o Ruby, es muy probable que algo se rompa. Mi recomendación: Siempre haz un snapshot o backup antes de actualizar.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te ayudara a crear un script de monitoreo que te avise si Elasticsearch se detiene o prefieres que veamos cómo optimizar el rendimiento para que no consuma tanta RAM?
&lt;br /&gt;
&lt;br /&gt;
Configurar alertas de salud
&lt;br /&gt;
&lt;br /&gt;
Optimizar consumo de RAM
&lt;br /&gt;
&lt;br /&gt;
Backup y recuperación ante desastres
&lt;br /&gt;
&lt;br /&gt;
Configurar Webhooks de aviso
&lt;br /&gt;
&lt;br /&gt;
¿Cuál de estos puntos te ayudaría más a dormir tranquilo?
&lt;br /&gt;
&lt;br /&gt;


</description></item><item><title>Cómo instalar y configurar Zammad en linux</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-instalar-y-configurar-zammad-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 23 Mar 2026 09:17:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-8850398712848346825</guid><description>&lt;p&gt;&amp;nbsp;Le pedimos a gemini, la inteligencia artificial de Google que nos explique cómo instalar y configurar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Zammad&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Zammad&lt;/a&gt; en &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Linux+operating+system&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;linux&lt;/a&gt;&lt;/p&gt;

Explicanos detalladamente cómo instalar y configurar Zammad en linux
&lt;br /&gt;
&lt;br /&gt;
Instalar Zammad es subir de nivel. Si los Help Desks basados en PHP son como un sedán confiable, Zammad es un deportivo eléctrico: rápido, moderno y lleno de tecnología. Al estar basado en &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Ruby+on+Rails&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Ruby on Rails&lt;/a&gt;, su arquitectura es más compleja que un simple LAMP stack, ya que requiere servicios adicionales como &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Elasticsearch&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Elasticsearch&lt;/a&gt; (para búsquedas instantáneas) y &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Redis&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Redis&lt;/a&gt; (para la gestión de tareas en tiempo real).
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la hoja de ruta para instalarlo en Ubuntu 24.04/22.04, que es la plataforma donde mejor se desempeña.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Prerrequisitos del Sistema&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Zammad es exigente con los recursos. No intentes correrlo en un router o una Raspberry Pi pequeña.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
RAM:&lt;/b&gt; Mínimo 4 GB (Recomendado 6-8 GB).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
CPU:&lt;/b&gt; 2 núcleos mínimo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
SO: &lt;/b&gt;&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Ubuntu+Server+operating+system&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Ubuntu Server&lt;/a&gt; (limpio).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Preparación del Entorno
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Primero, configuramos el idioma del sistema (Locales), ya que Ruby es muy estricto con esto para evitar errores de codificación.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install locales
&lt;br /&gt;
&lt;br /&gt;
sudo locale-gen en_US.UTF-8
&lt;br /&gt;
&lt;br /&gt;
echo "LANG=en_US.UTF-8" | sudo tee /etc/default/locale
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Instalación de Dependencias Críticas
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Zammad necesita tres pilares para funcionar:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+PostgreSQL+database&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;PostgreSQL&lt;/a&gt;:&lt;/b&gt; La base de datos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Elasticsearch:&lt;/b&gt; El motor que permite buscar entre miles de tickets en milisegundos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Redis:&lt;/b&gt; El sistema de mensajería interna.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
A. Instalar Elasticsearch (El buscador)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Zammad requiere una versión específica. Añadimos su repositorio oficial:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
wget -qO - https://artifacts.elastic.co/GPG-KEY-elasticsearch | sudo gpg --dearmor -o /usr/share/keyrings/elasticsearch-keyring.gpg
&lt;br /&gt;
&lt;br /&gt;
echo "deb [signed-by=/usr/share/keyrings/elasticsearch-keyring.gpg] https://artifacts.elastic.co/packages/7.x/apt stable main" | sudo tee /etc/apt/sources.list.d/elastic-7.x.list
&lt;br /&gt;
&lt;br /&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt install elasticsearch
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl enable elasticsearch &amp;amp;&amp;amp; sudo systemctl start elasticsearch
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
B. Instalar PostgreSQL y Redis
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install postgresql postgresql-contrib redis-server
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Instalación de Zammad&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ahora añadimos el repositorio oficial de Zammad e instalamos el paquete completo, que configurará automáticamente &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Nginx+web+server&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Nginx&lt;/a&gt; y los servicios de Ruby.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Añadir la llave y el repositorio
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
curl -fsSL https://dl.packager.io/srv/zammad/zammad/key | sudo gpg --dearmor -o /usr/share/keyrings/zammad-keyring.gpg
&lt;br /&gt;
&lt;br /&gt;
echo "deb [signed-by=/usr/share/keyrings/zammad-keyring.gpg] https://dl.packager.io/srv/zammad/zammad/ubuntu $(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/zammad.list
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
# Instalar Zammad
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install zammad
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Durante la instalación, Zammad detectará PostgreSQL y creará la base de datos automáticamente.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Configuración de Nginx y &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=SSL+HTTPS+security&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;SSL&lt;/a&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Zammad crea un archivo de configuración en /etc/nginx/sites-available/zammad.conf. Debes editarlo para poner tu dominio:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Edita el archivo: &lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo nano /etc/nginx/sites-available/zammad.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Cambia localhost por tu dominio (ej. soporte.tuempresa.com).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instala SSL (HTTPS) con &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Certbot+Nginx+SSL&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Certbot&lt;/a&gt;:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install certbot python3-certbot-nginx
&lt;br /&gt;
&lt;br /&gt;
sudo certbot --nginx -d soporte.tuempresa.com
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. El Asistente Web Inicial
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Abre tu navegador en https://soporte.tuempresa.com. Verás el elegante asistente de Zammad:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Configuración de Administrador:&lt;/b&gt; Crea tu cuenta maestra.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Organización: &lt;/b&gt;Pon el nombre y logo de tu empresa.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Canal de Correo: &lt;/b&gt;Configura tu cuenta de soporte (Gmail, Outlook o &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=IMAP+SMTP+email+protocols&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;IMAP/SMTP&lt;/a&gt;).
&lt;br /&gt;
&lt;br /&gt;
Zammad empezará a importar correos y convertirlos en tickets de inmediato.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
7. Configuración de &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Zammad+multichannel+capabilities&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Canales Multicanal&lt;/a&gt; &#128241;
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Lo que hace especial a Zammad es su capacidad de "pulpo". Una vez dentro del panel de administración:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Chat en vivo: &lt;/b&gt;Copia un pequeño código en tu web para tener un chat que llega directo a Zammad.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Telegram/WhatsApp: &lt;/b&gt;Configura un Bot de Telegram en segundos para recibir mensajes de clientes ahí.
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
Formularios web:&lt;/b&gt; Crea formularios personalizados para que los usuarios envíen reportes estructurados.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Solución de Problemas Rápidos&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="184"&gt;&lt;/col&gt;&lt;col width="150"&gt;&lt;/col&gt;&lt;col width="167"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Problema&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Causa&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Solución&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Búsqueda lenta o no funciona&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Elasticsearch detenido&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;sudo systemctl restart elasticsearch&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Error 502 Bad Gateway&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;El servicio Zammad está arrancando&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Dale 1-2 minutos tras el reinicio; Ruby tarda un poco en cargar.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;No llegan correos&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Tarea programada bloqueada&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Revisa el log: sudo zammad run rails r 'p Scheduler.list'&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de "candor" técnico
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Zammad es una maravilla, pero no descuides el mantenimiento. Al usar Elasticsearch, los índices pueden crecer mucho. Asegúrate de tener configurado un "cron job" para limpiar logs antiguos o tu disco duro de 40GB se llenará en un par de meses si tienes mucho tráfico de tickets.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te ayudara a configurar los "&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Zammad+triggers+automation&amp;amp;bbid=4932782972866403906&amp;amp;bpid=8850398712848346825" target="_blank"&gt;Triggers&lt;/a&gt;" (disparadores) automáticos para que Zammad asigne los tickets de "Prioridad Alta" a un técnico específico según las palabras clave del asunto?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo buscar los comandos de memoria específicos ( U-Boot commands ) para tu modelo de router para que no cometas errores al flashear?</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-buscar-los-comandos-de-memoria.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 20 Mar 2026 09:38:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-1574444003555214674</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google&amp;nbsp;Cómo buscar los comandos de memoria específicos ( &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+U-Boot+commands+examples&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;U-Boot commands&lt;/a&gt; ) para tu modelo de router para que no cometas errores al flashear?&lt;/p&gt;

Explicanos detalladamente cómo buscar los comandos de memoria específicos ( U-Boot commands ) para tu modelo de router para que no cometas errores al flashear?
&lt;br /&gt;
&lt;br /&gt;
Entrar en el bootloader (U-Boot) es como entrar en el "quirófano" de tu router. Es un entorno de baja escala donde un error en una dirección de memoria puede convertir tu dispositivo en un "ladrillo" (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=router+brick+recovery&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;brick&lt;/a&gt;) de forma permanente.
&lt;br /&gt;
&lt;br /&gt;
Para encontrar los comandos específicos y, sobre todo, las direcciones de memoria (offsets) correctas para tu modelo, sigue este procedimiento de &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+ingenier%C3%ADa+inversa&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;ingeniería inversa&lt;/a&gt; y consulta técnica.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El acceso físico: La consola Serial ( UART )
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
No puedes ver los comandos de U-Boot desde la interfaz web o SSH de X-WRT/&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=OpenWRT+router+firmware&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;OpenWRT&lt;/a&gt;. Necesitas "pinchar" el hardware.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Hardware necesario: &lt;/b&gt;Un adaptador &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=USB+a+TTL+adapter+buy&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;USB a TTL&lt;/a&gt; (basado en chips CP2102 o FTDI).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Conexión: &lt;/b&gt;Localiza los pines &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=GND+TX+RX+serial+pinout&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;GND, TX y RX&lt;/a&gt; en la placa base del router.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Acceso:&lt;/b&gt; Usa un cliente como &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=PuTTY+download&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;PuTTY&lt;/a&gt; o TeraTerm (velocidad usual: &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=115200+baudios+serial+communication+meaning&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;115200 baudios&lt;/a&gt;).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Interrupción: &lt;/b&gt;Al encender el router, verás un mensaje como "Press any key to stop autoboot". Tienes apenas 1 o 2 segundos para presionar una tecla y entrar al prompt u-boot&amp;gt;.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. El comando universal de descubrimiento: help
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
U-Boot es modular. Los fabricantes quitan comandos para ahorrar espacio en la memoria Flash. Por eso, lo primero que debes hacer al entrar es:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
u-boot&amp;gt; help
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
O también:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
u-boot&amp;gt; ?
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Esto te listará exactamente qué herramientas tienes disponibles. Fíjate si aparecen comandos como &lt;span style="background-color: #fce5cd;"&gt;&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=tftpboot+command+syntax&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;tftpboot&lt;/a&gt;, &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=erase+flash+memory+command+syntax+risks&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;erase&lt;/a&gt;, cp.b o nand. &lt;/span&gt;Si no aparecen, el fabricante ha bloqueado el flasheo manual por esta vía.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Identificar el Mapa de Memoria (Hardware Info)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para no flashear en el lugar equivocado, necesitas saber dónde empieza la RAM y dónde termina la Flash.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
bdinfo (Board Info):&lt;/b&gt; Te da las direcciones de la arquitectura.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
DRAM bank:&lt;/b&gt; Dónde puedes cargar archivos temporalmente.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Flash:&lt;/b&gt; Dónde vive el firmware permanente.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
printenv (Print Environment): &lt;/b&gt;Este es el más importante. Muestra las variables de entorno predefinidas. Busca líneas como:
&lt;br /&gt;
&lt;br /&gt;
kernel_addr=0xbc050000 (Aquí es donde el router busca el kernel).
&lt;br /&gt;
&lt;br /&gt;
serverip y ipaddr (Configuración para cargar por red).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Cómo evitar errores de cálculo (Hexadecimal)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Los errores al flashear suelen ocurrir porque el tamaño del archivo no coincide con el espacio borrado. En U-Boot todo es hexadecimal.
&lt;br /&gt;
&lt;br /&gt;
Si tu archivo de firmware mide 3,840,512 bytes, debes convertirlo a hexadecimal para el comando de borrado:
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; 3,840,512&amp;nbsp;bytes=0x3AA000&amp;nbsp;hex
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Comandos críticos a verificar:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
| Comando | Función | Riesgo |
&lt;br /&gt;
&lt;br /&gt;
| :--- | :--- | :--- |
&lt;br /&gt;
&lt;br /&gt;
| tftpboot [addr] [file] | Carga el archivo del PC a la RAM. | Bajo: Solo toca la RAM. |
&lt;br /&gt;
&lt;br /&gt;
| erase [start] [end] | Borra un trozo de la memoria Flash. | Extremo: Si borras el bootloader, el router muere. |
&lt;br /&gt;
&lt;br /&gt;
| cp.b [src] [dst] [len] | Copia de RAM a Flash (Flasheo real). | Extremo: Escribe físicamente el firmware. |
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Consultar la "Tabla de Datos Técnicos" (TechData)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si no quieres arriesgarte a experimentar, la comunidad ya ha mapeado la mayoría de los routers.
&lt;br /&gt;
&lt;br /&gt;
Ve al &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=OpenWRT+Table+of+Hardware&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1574444003555214674" target="_blank"&gt;OpenWRT Table of Hardware&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
Busca tu modelo exacto y revisa la sección "Flash Layout".
&lt;br /&gt;
&lt;br /&gt;
Busca el valor del MTD Partition Table. Allí te dirán: "La partición 'firmware' empieza en 0x50000 y mide 0x7b0000". Esos son los números que debes usar en U-Boot.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Procedimiento de Seguridad "Anti-Brick"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para no cometer errores, sigue siempre este orden:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Prueba de carga:&lt;/b&gt; Carga el archivo por TFTP a la RAM (tftpboot 0x80060000 firmware.bin). Si falla aquí, no pasa nada, reinicias y listo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Verificación de tamaño: &lt;/b&gt;U-Boot te dirá: "Bytes transferred = 3145728 (300000 hex)". Usa ese valor exacto (300000) para el siguiente paso.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Borrado mínimo: &lt;/b&gt;Solo borra el tamaño exacto del archivo, ni un byte más.
&lt;br /&gt;
&lt;br /&gt;
erase 0xbc050000 +0x300000
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Copia final:
&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
cp.b 0x80060000 0xbc050000 0x300000
&lt;br /&gt;
&lt;br /&gt;
¿Tienes el modelo específico de tu router a mano? Si me lo das, puedo intentar buscar el mapa de memoria exacto en las bases de datos de ingeniería para darte los comandos "masticados".
&lt;br /&gt;
&lt;br /&gt;
Identificar modelo exacto
&lt;br /&gt;
&lt;br /&gt;
Calcular offsets hex
&lt;br /&gt;
&lt;br /&gt;
Configurar servidor TFTP
&lt;br /&gt;
&lt;br /&gt;
Recuperar router brickeado
&lt;br /&gt;
&lt;br /&gt;
¿Qué paso te genera más dudas?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo solucionar problemas de PHP Help Desk en linux</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-solucionar-problemas-de-php-help.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 18 Mar 2026 09:26:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-4975634215039194116</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Gemini+inteligenci+artificial+de+Google&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;Gemini&lt;/a&gt;, la inteligenci artificial de Google cómo solucionar problemas de &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=PHP+Help+Desk+linux+solutions&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;PHP Help Desk&lt;/a&gt; en &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=linux+help+desk+troubleshooting&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;linux&lt;/a&gt;&lt;/p&gt;

Explicanos detalladamente cómo solucionar problemas de PHP Help Desk en linux
&lt;br /&gt;
&lt;br /&gt;
Cuando el sistema que debe gestionar los problemas de los demás empieza a dar sus propios problemas, entramos en una paradoja técnica bastante frustrante. La mayoría de los fallos en un Help Desk basado en PHP ocurren en la comunicación entre el servidor web, el intérprete de PHP y la base de datos.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la guía definitiva para diagnosticar y reparar tu mesa de ayuda en Linux.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El "Mapa del Tesoro": Los &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Linux+Logs+de+Errores+definition&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;Logs de Errores&lt;/a&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Antes de cambiar cualquier configuración, debemos saber qué está pasando "bajo el capó". En Linux, el 90% de las respuestas están en los archivos de registro.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Log de Apache (Errores de servidor/PHP):
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo tail -f /var/log/apache2/error.log
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Log de MySQL/MariaDB:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo tail -f /var/log/mysql/error.log
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
Logs de la aplicación:&lt;/b&gt; Revisa carpetas dentro de tu instalación como /logs, /tmp o /files/_log (en el caso de GLPI).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Pantalla+Blanca+de+la+Muerte+PHP&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;Pantalla Blanca de la Muerte&lt;/a&gt; (WSOD)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si entras a tu Help Desk y solo ves una página en blanco, PHP ha tenido un error crítico pero la configuración de seguridad impide mostrarlo en pantalla.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Cómo solucionarlo:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
Habilitar errores temporalmente: &lt;/b&gt;Edita tu archivo &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=what+is+php.ini+file&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;php.ini&lt;/a&gt; (usualmente en /etc/php/8.x/apache2/php.ini):
&lt;br /&gt;
&lt;br /&gt;
Cambia &lt;span style="background-color: #fce5cd;"&gt;display_errors = Off a display_errors = On.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Reinicia Apache:&lt;/b&gt; &lt;span style="background-color: #fce5cd;"&gt;sudo systemctl restart apache2.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
El error aparecerá:&lt;/b&gt; Ahora verás una línea indicando qué falta (usualmente una extensión como php-gd o php-mysqli).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Linux+web+server+Errores+de+Permisos&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;Errores de Permisos&lt;/a&gt; (El "403 Forbidden" o fallos de subida)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si no puedes subir archivos adjuntos a los tickets o la configuración no se guarda, el usuario del servidor web (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=www-data+Linux+web+server+user&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;www-data&lt;/a&gt; en Ubuntu/Debian) no tiene "llaves" para escribir en las carpetas.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La solución definitiva:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Asegúrate de que el dueño de la carpeta sea el servidor web y los permisos sean los correctos:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
# Cambiar el dueño al servidor web
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chown -R www-data:www-data /var/www/html/helpdesk
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
# Permisos para carpetas (755) y archivos (644)
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo find /var/www/html/helpdesk -type d -exec chmod 755 {} \;
&lt;br /&gt;
&lt;br /&gt;
sudo find /var/www/html/helpdesk -type f -exec chmod 644 {} \;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. "&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Error+Establishing+a+Database+Connection+PHP&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;Error Establishing a Database Connection&lt;/a&gt;"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si el Help Desk no puede hablar con la base de datos, el sistema es un cascarón vacío.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Verificación por pasos:
&lt;br /&gt;
&lt;br /&gt;
¿Está corriendo el servicio?:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo systemctl status &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=mariadb+database&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;mariadb&lt;/a&gt; (o mysql).
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
Prueba manual: &lt;/b&gt;Intenta entrar desde la terminal con los datos que pusiste en el archivo de configuración:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
mysql -u usuario_help -p
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
Configuración incorrecta: &lt;/b&gt;Revisa el archivo config.php (o similar). Asegúrate de que el host sea localhost o 127.0.0.1. Si usas un puerto distinto al 3306, debes especificarlo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. El &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Linux+Cron+Job+explanation&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;Cron Job&lt;/a&gt; no funciona (Los correos no llegan)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Muchos Help Desk usan una "Tarea Programada" (Cron) para recoger correos y convertirlos en tickets. Si esto falla, los usuarios creerán que los ignoras.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Verifica el Cron del sistema:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo crontab -u www-data -l
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
Prueba el comando manualmente: &lt;/b&gt;Copia la línea que está en el cron (ej. php /var/www/html/helpdesk/cron.php) y ejecútala en la terminal. Si da un error de PHP, ahí tienes al culpable.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Ruta de PHP: &lt;/b&gt;A veces el cron falla porque solo dice php. Prueba a usar la ruta completa: /usr/bin/php.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Problemas con el tamaño de archivos (Adjuntos)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si intentas subir una captura de pantalla pesada y el sistema da un error de "&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Request+Entity+Too+Large+file+upload+fix&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;Request Entity Too Large&lt;/a&gt;":
&lt;br /&gt;
&lt;br /&gt;
Edita tu php.ini y ajusta estos valores:
&lt;br /&gt;
&lt;br /&gt;
post_max_size = 20M
&lt;br /&gt;
&lt;br /&gt;
upload_max_filesize = 20M
&lt;br /&gt;
&lt;br /&gt;
memory_limit = 256M (Para que PHP tenga aire al procesar imágenes).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Resumen de Comandos de Rescate&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="137"&gt;&lt;/col&gt;&lt;col width="380"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Problema&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Comando de Diagnóstico&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Apache no arranca&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo apache2ctl configtest&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;PHP falta algo&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;&lt;span style="background-color: #fce5cd;"&gt;php -m &lt;/span&gt;(Lista módulos instalados)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Disco lleno&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;&lt;span style="background-color: #fce5cd;"&gt;df -h &lt;/span&gt;(Si el disco está al 100%, la base de datos se bloquea)&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Puerto bloqueado&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;&lt;span style="background-color: #fce5cd;"&gt;sudo ufw status&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un consejo de "amigo" AI:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si después de todo esto el sistema sigue fallando de forma aleatoria, revisa el &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=server+problems+caused+by+espacio+en+disco&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;espacio en disco&lt;/a&gt;. Me ha pasado muchas veces que el log de errores crece tanto (gigabytes) que llena el disco duro y hace que la base de datos MariaDB se detenga por seguridad. ¡Un sudo apt autoremove y borrar logs viejos hace milagros!
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te ayudara a configurar un sistema de alertas para que el servidor te avise automáticamente si el Help Desk se queda sin espacio o si el servicio de base de datos se detiene?
&lt;br /&gt;
&lt;br /&gt;
&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Configurar+alertas+por+email+para+servidor&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4975634215039194116" target="_blank"&gt;Configurar alertas por email&lt;/a&gt;
&lt;br /&gt;
&lt;br /&gt;
Optimizar base de datos
&lt;br /&gt;
&lt;br /&gt;
Configurar HTTPS con SSL
&lt;br /&gt;
&lt;br /&gt;
Ver logs en tiempo real
&lt;br /&gt;
&lt;br /&gt;
¿Cuál de estos puntos te preocupa más ahora mismo?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo instalar y configurar PHP Help Desk en linux</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-instalar-y-configurar-php-help.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 16 Mar 2026 09:35:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-4274111397526374907</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Gemini+Google+AI&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;Gemini, la inteligencia artificial de Google&lt;/a&gt; cómo instalar y configurar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+PHP+Help+Desk&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;PHP Help Desk&lt;/a&gt; en &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=what+is+linux+operating+system&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;linux&lt;/a&gt;&lt;/p&gt;

Explicanos detalladamente cómo instalar y configurar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=what+is+PHP+programming+language&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;PHP&lt;/a&gt; Help Desk en linux
&lt;br /&gt;
&lt;br /&gt;
¡Excelente elección! Montar tu propio &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+sistema+de+tickets&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;sistema de tickets&lt;/a&gt; es el primer paso para dejar de recibir reportes de fallos por &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=WhatsApp+communication+issues&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;WhatsApp&lt;/a&gt; o notas adhesivas. Aunque existen muchas opciones, la mayoría de los "PHP Help Desk" (como &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=HESK+official+website&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;HESK&lt;/a&gt;, &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=osTicket+software&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;osTicket&lt;/a&gt; o &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=HelpDeskZ+software&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;HelpDeskZ&lt;/a&gt;) comparten el mismo corazón: una arquitectura LAMP (Linux, &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=what+is+Apache+web+server&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;Apache&lt;/a&gt;, MySQL/&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=what+is+MariaDB+database&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4274111397526374907" target="_blank"&gt;MariaDB&lt;/a&gt;, PHP).
&lt;br /&gt;
&lt;br /&gt;
Para esta guía, usaremos HESK como referencia por ser el estándar de oro en simplicidad y potencia, pero estos pasos sirven para casi cualquier script de soporte basado en PHP.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Preparación del Entorno ( LAMP Stack )
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Antes de tocar el software de Help Desk, necesitamos que tu servidor Linux (usaremos Ubuntu/Debian como base) sea capaz de interpretar PHP y gestionar bases de datos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Actualiza tu sistema&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update &amp;amp;&amp;amp; sudo apt upgrade -y
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Instala el servidor web, la base de datos y PHP&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt install apache2 mariadb-server php libapache2-mod-php php-mysql php-gd php-curl php-mbstring php-xml php-zip -y
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Creación de la Base de Datos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
El Help Desk necesita un lugar donde guardar los tickets, usuarios y mensajes.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Entra a MariaDB&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo mysql -u root
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Crea la base de datos y el usuario:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ejecuta estos comandos dentro de la consola de SQL:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
SQL
&lt;br /&gt;
&lt;br /&gt;
CREATE DATABASE helpdesk_db;
&lt;br /&gt;
&lt;br /&gt;
CREATE USER 'usuario_help'@'localhost' IDENTIFIED BY 'TuPasswordSegura';
&lt;br /&gt;
&lt;br /&gt;
GRANT ALL PRIVILEGES ON helpdesk_db.* TO 'usuario_help'@'localhost';
&lt;br /&gt;
&lt;br /&gt;
FLUSH PRIVILEGES;
&lt;br /&gt;
&lt;br /&gt;
EXIT;
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Descarga e Instalación de los Archivos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ahora bajaremos el software. Generalmente, estos programas vienen en un archivo .zip.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Navega al directorio web&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
cd /var/www/html
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Descarga el software (Ejemplo con HESK):
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
(&lt;b&gt;Nota: &lt;/b&gt;Deberás obtener el link de descarga directo de su web oficial).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo wget https://www.hesk.com/download/hesk3.zip
&lt;br /&gt;
&lt;br /&gt;
sudo unzip hesk3.zip -d helpdesk
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Ajusta los permisos (Paso Crítico):
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Apache necesita permiso para escribir en ciertas carpetas (donde se suben adjuntos o se guardan configuraciones).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo chown -R www-data:www-data /var/www/html/helpdesk
&lt;br /&gt;
&lt;br /&gt;
sudo chmod -R 755 /var/www/html/helpdesk
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Configuración del Servidor Virtual (Apache)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Para que puedas entrar escribiendo algo como soporte.tuempresa.com, crearemos un archivo de configuración.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Crea el archivo:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo nano /etc/apache2/sites-available/helpdesk.conf
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Pega la configuración básica:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Apache
&lt;br /&gt;
&lt;br /&gt;
&lt;virtualhost&gt;&amp;lt;VirtualHost *:80&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ServerAdmin admin@tuempresa.com
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;DocumentRoot /var/www/html/helpdesk
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ServerName soporte.tuempresa.com
&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;br /&gt;
    &lt;directory helpdesk="" html="" var="" www=""&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&amp;lt;Directory /var/www/html/heldesk&amp;gt;&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; AllowOverride All
      &lt;br /&gt;
&lt;br /&gt;
    &lt;/directory&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;lt;Directory&amp;gt;&lt;br /&gt;
&lt;br /&gt;
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;ErrorLog ${APACHE_LOG_DIR}/error.log
  &lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;CustomLog ${APACHE_LOG_DIR}/access.log combined
  &lt;br /&gt;
&lt;br /&gt;
&lt;/virtualhost&gt;&amp;lt;/VirtualHost&amp;gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Activa el sitio y reinicia Apache:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo a2ensite helpdesk.conf
&lt;br /&gt;
&lt;br /&gt;
sudo a2enmod rewrite
&lt;br /&gt;
&lt;br /&gt;
sudo systemctl restart apache2
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. El Asistente Web (Instalación Final)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ahora, abre tu navegador y ve a &lt;span style="background-color: #fce5cd;"&gt;http://tu-ip-o-dominio/helpdesk/install&lt;/span&gt;. Verás una interfaz gráfica que te pedirá los datos de la base de datos que creamos en el Paso 2:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Database Host: &lt;/b&gt;localhost
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Database Name:&lt;/b&gt; helpdesk_db
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
User:&lt;/b&gt; usuario_help
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Password: &lt;/b&gt;TuPasswordSegura
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Pasos Post-Instalación (Seguridad)&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Una vez termines la instalación, el sistema te dará un aviso de seguridad importante. No lo ignores.
&lt;br /&gt;
&lt;br /&gt;
Elimina la carpeta de instalación:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo rm -rf /var/www/html/helpdesk/install
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
Cambia la contraseña por defecto: &lt;/b&gt;Entra al panel de administración (usualmente admin/admin) y cámbiala de inmediato.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Mantenimiento Rápido&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="205"&gt;&lt;/col&gt;&lt;col width="318"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Tarea&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Comando / Ruta&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Logs de errores&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;/var/log/apache2/error.log&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Configuración de PHP&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;/etc/php/8.x/apache2/php.ini&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Reiniciar el servicio&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;sudo systemctl restart apache2&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Adjuntos (Backup)&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;/var/www/html/helpdesk/attachments&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de sabiduría...
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Recuerda que si vas a abrir este servicio a internet, es obligatorio configurar un certificado SSL (HTTPS). Puedes hacerlo gratis con Certbot (sudo apt install certbot python3-certbot-apache). Sin HTTPS, las contraseñas de tus usuarios viajarán en texto plano por la red, y eso es una invitación formal a los hackers.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te ayudara a configurar las "Tareas Cron" para que el Help Desk envíe notificaciones por correo automáticamente cada vez que alguien abra un ticket?
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;</description></item><item><title>Cómo solucionar problemas de ddrescue en linux</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-solucionar-problemas-de-ddrescue.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 11 Mar 2026 09:19:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-5325959783965860140</guid><description>&lt;p&gt;&amp;nbsp;Le pedimos a &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Gemini+Google+AI&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5325959783965860140" target="_blank"&gt;Gemini, la inteligencia artificial de Google&lt;/a&gt; que nos explique cómo solucionar problemas de ddrescue en linux&lt;/p&gt;

Explicanos detalladamente cómo solucionar problemas de ddrescue en linux
&lt;br /&gt;
&lt;br /&gt;
Usar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=GNU+ddrescue+documentation&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5325959783965860140" target="_blank"&gt;GNU ddrescue&lt;/a&gt; suele ser un acto de desesperación o de extrema precaución. Cuando esta herramienta falla o se comporta de forma errática, el estrés aumenta porque sentimos que estamos perdiendo la última oportunidad de salvar nuestros datos.
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes una guía detallada para diagnosticar y solucionar los problemas más comunes que surgen durante un rescate.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El proceso parece "congelado" o es extremadamente lento
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Es el problema más común. El disco encuentra una zona dañada y ddrescue se queda minutos intentando leer un solo bloque.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
La Causa: &lt;/b&gt;Estás siendo demasiado agresivo con los reintentos (-r) o el "raspado" (scraping) desde el principio.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
La Solución: &lt;/b&gt;Detén el proceso (Ctrl + C) y reinícialo usando el mismo archivo de mapa, pero con la bandera &lt;span style="background-color: #fce5cd;"&gt;-n (no-scrape)&lt;/span&gt;:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo ddrescue -f -n /dev/sdb /dev/sdc rescate.map
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Esto le dice a ddrescue que "salte" las zonas difíciles y se concentre en lo que es fácil de leer. Una vez que tengas el 90% rescatado, entonces sí puedes intentar las zonas lentas.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Error: "Output file exists and is not a regular file"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Este error ocurre cuando intentas escribir directamente a un disco físico (ej. de /dev/sdb a /dev/sdc) sin darle permiso explícito.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
La Causa: &lt;/b&gt;ddrescue protege el destino por defecto para evitar que sobrescribas un disco por error.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
La Solución: &lt;/b&gt;Añade la bandera&lt;span style="background-color: #fce5cd;"&gt; -f (force)&lt;/span&gt; para autorizar la escritura en un dispositivo de bloques:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo ddrescue -f /dev/sdb /dev/sdc rescate.map
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. El &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=troubleshoot+intermittent+disk+disconnection&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5325959783965860140" target="_blank"&gt;disco se desconecta intermitentemente&lt;/a&gt;
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Muchos discos dañados "mueren" electrónicamente cuando se calientan o encuentran un error crítico, desapareciendo del sistema (/dev/sdb deja de existir).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
La Causa&lt;/b&gt;: &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=hardware+firmware+failure&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5325959783965860140" target="_blank"&gt;Fallo de firmware&lt;/a&gt; o problemas de alimentación (especialmente en &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=USB+adapter+problems&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5325959783965860140" target="_blank"&gt;adaptadores USB&lt;/a&gt;).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La Solución:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Conexión Directa:&lt;/b&gt; Si usas un adaptador USB, quítalo y conecta el disco directamente a un puerto SATA de la placa base. &lt;span style="background-color: #fce5cd;"&gt;El USB es pésimo gestionando errores de I/O.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Ciclo de reintento automático: &lt;/b&gt;Usa un pequeño script de bash o simplemente relanza el comando. Como tienes el rescate.map, ddrescue sabrá qué le falta por copiar aunque el disco se haya desconectado.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Baja la velocidad:&lt;/b&gt; Usa -c 1 para reducir el tamaño del clúster de copia, lo que estresa menos el cabezal.

&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. El archivo de mapa (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=ddrescue+mapfile+purpose&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5325959783965860140" target="_blank"&gt;Mapfile&lt;/a&gt;) está corrupto o se perdió
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si pierdes el archivo .map, ddrescue no sabrá qué sectores ha copiado y cuáles no, obligándote a empezar de cero (lo cual estresa el disco innecesariamente).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
La Causa: &lt;/b&gt;El PC de rescate se apagó mal o escribiste el mapa en una ubicación volátil (como /tmp).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La Solución:
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Regenerar el mapa (Parcialmente):&lt;/b&gt; Si el destino es una imagen .img, puedes intentar usar la opción --generate-mode, aunque es compleja y no siempre perfecta.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Prevención:&lt;/b&gt; Guarda siempre el mapfile en un tercer disco (una memoria USB aparte), nunca en el disco que estás intentando rescatar ni en el de destino.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Demasiados errores de lectura (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+bad+sectors+hard+drive&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5325959783965860140" target="_blank"&gt;Bad Sectors&lt;/a&gt; everywhere)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si ves que la tasa de errores sube como la espuma y la velocidad cae a 0 B/s:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
La Causa:&lt;/b&gt; El cabezal del disco está tocando el plato o hay un fallo físico grave.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
La Solución:&lt;/b&gt; No fuerces la lectura secuencial. Prueba a leer el disco hacia atrás con la bandera -R:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo ddrescue -f -R /dev/sdb /dev/sdc rescate.map
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
A veces el daño está al principio del disco y leer desde el final permite salvar archivos que de otro modo se perderían.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de banderas (flags) de rescate&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="83"&gt;&lt;/col&gt;&lt;col width="231"&gt;&lt;/col&gt;&lt;col width="273"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Bandera&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Úsala cuando...&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Efecto&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-n&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;El inicio es muy lento.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Salta las zonas difíciles para ir rápido.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-r3&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Quieres exprimir el disco.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Reintenta 3 veces los sectores fallidos.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-R&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;El disco falla al principio.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Invierte la dirección de la copia (hacia atrás).&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-d&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;El sistema se queda "colgado".&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Acceso directo al disco (evita el caché del kernel).&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-v&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Quieres ver qué pasa.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Modo detallado (Verbose).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Un toque de candor realista
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
ddrescue es una herramienta de software. Si el motor del disco no gira o los cabezales están destruidos físicamente (el famoso "&lt;span style="background-color: #fce5cd;"&gt;clic-clic-clic"&lt;/span&gt;), ningún comando de Linux podrá salvarlo. En esos casos, la única solución es una empresa de recuperación en cámara limpia. Pero si el disco aún es detectado por el BIOS, ddrescue es tu mejor soldado.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te explicara cómo montar la imagen que has rescatado para intentar recuperar carpetas específicas usando &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Photorec+data+recovery+tool&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5325959783965860140" target="_blank"&gt;Photorec&lt;/a&gt; o TestDisk?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo instalar y configurar ddrescue  en linux</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-instalar-y-configurar-ddrescue-en.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Mon, 9 Mar 2026 08:57:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-5720961202396204168</guid><description>&lt;p&gt;Le preguntamos a &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=gemini&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;gemini&lt;/a&gt;, la &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=inteligencia+artificial+de+Google&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;inteligencia artificial de Google&lt;/a&gt;&amp;nbsp; cómo instalar y configurar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+ddrescue&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;ddrescue&lt;/a&gt;&amp;nbsp; en &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=what+is+linux&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;linux&lt;/a&gt;&lt;/p&gt;

Explicanos detalladamente cómo instalar y configurar ddrescue  en linux
&lt;br /&gt;
&lt;br /&gt;
Si estás aquí, es probable que un &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=problemas+de+disco+duro&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;disco duro&lt;/a&gt; te esté dando el susto de tu vida o que estés siendo precavido. &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+GNU+ddrescue&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;GNU ddrescue&lt;/a&gt; no es simplemente una herramienta de copia; es el "equipo de rescate" definitivo para soportes de almacenamiento con &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+sectores+f%C3%ADsicos+da%C3%B1ados&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;sectores físicos dañados&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
A diferencia del &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+comando+dd&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;comando dd estándar&lt;/a&gt; (que se detiene o "muere" al encontrar un error), ddrescue copia primero lo que es fácil de leer y luego vuelve a intentar rescatar los sectores difíciles, todo mientras mantiene un &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=ddrescue+mapfile&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;mapfile&lt;/a&gt; (registro) para no repetir trabajo si el proceso se interrumpe.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: x-large;"&gt;
1. Instalación de ddrescue
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Aunque el paquete suele llamarse &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=gddrescue+package+repository&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;gddrescue&lt;/a&gt; en los repositorios (para diferenciarlo de versiones antiguas), el comando que usarás es ddrescue.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
En Debian, Ubuntu, Linux Mint y X-WRT/OpenWRT:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo apt update
&lt;br /&gt;
&lt;br /&gt;
sudo apt install gddrescue
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
En &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=install+ddrescue+Fedora&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;Fedora&lt;/a&gt;:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo dnf install ddrescue
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
En &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=install+ddrescue+Arch+Linux&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;Arch Linux&lt;/a&gt;:
&lt;br /&gt;
&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo pacman -S ddrescue
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Identificación de los discos (Paso crítico)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Antes de mover un solo bit, debes estar 100% seguro de quién es quién. Un error aquí y rescatarás el disco vacío sobre el lleno.
&lt;br /&gt;
&lt;br /&gt;
Usa el comando:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
lsblk -o NAME,SIZE,MODEL,SERIAL
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
[!CAUTION]
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Para los ejemplos, asumiremos que:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
/dev/sdb es el disco dañado (Origen).
&lt;br /&gt;
&lt;br /&gt;
/dev/sdc es el disco sano (Destino) o una imagen en un disco con mucho espacio.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. La Estrategia de Rescate (Configuración de uso)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
ddrescue no se "configura" con archivos de texto, sino mediante su sintaxis de comandos. La regla de oro es usar siempre un archivo de mapa (mapfile).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Paso 1: Copia rápida (Saltando errores)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
En esta primera pasada, queremos rescatar el 90-95% del disco que aún está sano sin forzar el cabezal en las zonas dañadas.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo ddrescue -f -n /dev/sdb /dev/sdc rescate.map
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
-f: &lt;/b&gt;Fuerza la escritura (necesario si el destino es un disco físico).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
-n: &lt;/b&gt;Indica que no pierda tiempo reintentando zonas difíciles todavía (modo "rápido").
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
rescate.map: &lt;/b&gt;Crucial. Si el PC se apaga, al reiniciar el mismo comando, ddrescue continuará exactamente donde se quedó.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Paso 2: El "Raspado" (Intentando lo difícil)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Una vez que tienes la mayor parte a salvo, le decimos que intente leer los sectores dañados hasta 3 veces:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo ddrescue -f -r3 /dev/sdb /dev/sdc rescate.map
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
-r3: &lt;/b&gt;Reintenta 3 veces cada sector defectuoso. Aquí es donde el disco puede hacer ruidos extraños; es normal, está intentando leer datos "agonizantes".
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Visualización del progreso
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si quieres ver de forma gráfica qué partes del disco están sanas (verde) y cuáles dañadas (rojo), puedes instalar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=ddrescueview&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;ddrescueview&lt;/a&gt;.
&lt;br /&gt;
&lt;br /&gt;
Descarga el programa o instálalo si está en tus repos.
&lt;br /&gt;
&lt;br /&gt;
Abre tu archivo rescate.map.
&lt;br /&gt;
&lt;br /&gt;
Verás un mapa de bloques que se actualiza en tiempo real.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Mejores prácticas y consejos de "supervivencia"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Hacia una imagen, no hacia un disco: Si tienes espacio, es mejor rescatar el disco dañado a un archivo de imagen:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo ddrescue /dev/sdb disco_dañado.img rescate.map
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Luego puedes usar herramientas de recuperación de archivos (como &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=photorec+file+recovery&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;photorec&lt;/a&gt;) sobre la imagen sin estresar más el hardware herido.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Temperatura:&lt;/b&gt; Si el disco dañado se calienta mucho, fallará más. Algunos profesionales ponen el disco en una bolsa hermética en el refrigerador (técnica extrema) o usan un ventilador directo.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
No montes el disco:&lt;/b&gt; Nunca intentes montar (mount) el disco dañado mientras ddrescue está trabajando.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de opciones útiles&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="80"&gt;&lt;/col&gt;&lt;col width="459"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Opción&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Descripción&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-d&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Usa acceso directo al disco (evita la caché del kernel, recomendado).&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-v&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Modo "verbose" (muestra más detalles de lo que ocurre).&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-p&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Pre-asigna espacio en el disco de destino (evita fragmentación).&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;-S&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Modo "sparse" (si el destino es un archivo, no ocupa espacio por los ceros).&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;
ddrescue es una herramienta de paciencia. Puede tardar horas o días dependiendo del daño físico.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te explicara cómo analizar la imagen resultante con &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=testdisk+partition+recovery&amp;amp;bbid=4932782972866403906&amp;amp;bpid=5720961202396204168" target="_blank"&gt;testdisk&lt;/a&gt; para recuperar las particiones y archivos una vez que termine el rescate?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo configurar Extroot  en X-WRT</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-configurar-extroot-en-x-wrt.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Fri, 6 Mar 2026 09:24:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-4440374899365550248</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google cómo configurar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+Extroot+router+storage+expansion&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;Extroot&lt;/a&gt;&amp;nbsp; en &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=X-WRT+firmware&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;X-WRT&lt;/a&gt;&lt;/p&gt;

Explicanos detalladamente cómo configurar Extroot  en X-WRT
&lt;br /&gt;
&lt;br /&gt;
Configurar Extroot en X-WRT es el "hack" definitivo para transformar un router limitado en un servidor potente. Los routers suelen tener apenas 16MB o 128MB de &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+flash+memory+router&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;memoria flash&lt;/a&gt;, lo que se llena en segundos al instalar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=AdGuard+Home+router&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;AdGuard Home&lt;/a&gt; o una &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=VPN+on+routers&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;VPN&lt;/a&gt;. Extroot engaña al router para que crea que un &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=pendrive+USB+for+router+storage&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;pendrive USB&lt;/a&gt; o una &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=tarjeta+SD+for+router+storage&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;tarjeta SD&lt;/a&gt; es su memoria interna. &#128640;
&lt;br /&gt;
&lt;br /&gt;
Aquí tienes la guía paso a paso para expandir tu almacenamiento hasta donde llegue tu capacidad USB.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. Requisitos Previos
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Pendrive USB o MicroSD: Recomendado de al menos 8GB (clase 10 si es SD).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
X-WRT funcionando:&lt;/b&gt; Con acceso a Internet para descargar paquetes.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Acceso &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+SSH+router+access&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;SSH&lt;/a&gt;&amp;nbsp;:&lt;/b&gt; Necesitarás usar la terminal (&amp;nbsp;&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=PuTTY+SSH+client&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;PuTTY&lt;/a&gt; en Windows o Terminal en Linux/Mac).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
[!WARNING]
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Todo lo que haya en el USB se borrará. Asegúrate de respaldar tus archivos antes de empezar.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Preparación del USB (Formateo)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Aunque puedes hacerlo desde el router, es más rápido y seguro formatear el USB en un PC con Linux o usando una herramienta como GParted.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Debes crear dos particiones:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
Partición 1 (Datos/Extroot):&lt;/b&gt; &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+ext4+file+system&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;Formato ext4&lt;/a&gt;. Aquí es donde vivirá el sistema operativo. (Ej: 4GB).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Partición 2 (Swap): &lt;/b&gt;&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+linux-swap&amp;amp;bbid=4932782972866403906&amp;amp;bpid=4440374899365550248" target="_blank"&gt;Formato linux-swap&lt;/a&gt;. Esto ayuda si tu router tiene poca RAM (ej. 128MB). (Ej: 512MB).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Instalación de Paquetes Necesarios
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Conecta el USB al router y entra por SSH. Ejecuta los siguientes comandos para que X-WRT pueda "entender" el formato ext4 y gestionar discos:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
opkg update
&lt;br /&gt;
&lt;br /&gt;
opkg install kmod-usb-storage kmod-fs-ext4 block-mount
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Tras la instalación, verifica que el router detecta el USB:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
ls /dev/sd*
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Deberías ver algo como /dev/sda1 (tu partición de datos) y /dev/sda2 (tu swap).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Transferencia de Datos al USB
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
Para que el router no pierda su configuración actual al activar Extroot, debemos copiar el contenido de la memoria actual (/overlay) al USB.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;
# Crear un punto de montaje temporal
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
mkdir -p /tmp/cpmount
&lt;br /&gt;
&lt;br /&gt;
mount /dev/sda1 /tmp/cpmount
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
# Copiar los datos de la memoria interna al USB
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
tar -C /overlay -cvf - . | tar -C /tmp/cpmount -xf -
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
# Desmontar
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
umount /tmp/cpmount
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Configuración del Montaje Automático (fstab)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Ahora le diremos a X-WRT que use esa partición USB como su nueva memoria principal en cada arranque.
&lt;br /&gt;
&lt;br /&gt;
Generamos la configuración de los discos detectados:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
block detect &amp;gt; /etc/config/fstab
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Ahora debemos editar el archivo para activar el montaje:
&lt;br /&gt;&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
vi /etc/config/fstab
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Busca la sección de /dev/sda1 y modifícala para que se vea así:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
(Usa la tecla i para editar en vi)
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Plaintext
&lt;br /&gt;
&lt;br /&gt;
config 'mount'
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; option  target  '/overlay'
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; option  uuid    'TU-UUID-AQUÍ'
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; option  enabled '1'
&lt;br /&gt;
&lt;br /&gt;
Busca la sección de la Swap (/dev/sda2) y asegúrate de activarla:
&lt;br /&gt;
&lt;br /&gt;
Plaintext
&lt;br /&gt;
&lt;br /&gt;
config 'swap'
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; option  device  '/dev/sda2'
&lt;br /&gt;
&lt;br /&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; option  enabled '1'
&lt;br /&gt;
&lt;br /&gt;
(Presiona Esc, luego escribe :wq y Enter para guardar).
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
6. Reinicio y Verificación Final
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Cruza los dedos y reinicia el router:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
reboot
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Una vez que el router vuelva a estar en línea, entra de nuevo por SSH y comprueba el almacenamiento con el comando:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Bash
&lt;/b&gt;&lt;br /&gt;
&lt;span style="background-color: #fce5cd;"&gt;&lt;br /&gt;
df -h
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
¿Cómo saber si funcionó?
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Busca la línea que corresponde a /overlay. Si en la columna de "Size" ves el tamaño de tu pendrive (ej. 4.0G o 7.2G) en lugar de unos pocos megas, ¡felicidades, tienes Extroot funcionando!&amp;nbsp;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Solución de Problemas Comunes&amp;nbsp;&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
El router no arranca: &lt;/b&gt;Si desconectas el USB, el router volverá a su configuración "limpia" original. Simplemente vuelve a conectarlo y reinicia.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
No se monta el USB: &lt;/b&gt;Revisa en la interfaz web (System &amp;gt; Mount Points) si la partición aparece como montada en /overlay. Si no, puedes activarla manualmente desde allí haciendo clic en "Enabled" y guardando.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Velocidad lenta: &lt;/b&gt;Si notas que el router va lento, es posible que el pendrive sea de mala calidad. Usa uno USB 3.0 aunque el router sea 2.0 para asegurar mejores latencias.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te ayudara a configurar ahora un servidor de descargas (Transmission) o un centro multimedia ligero ahora que tienes espacio de sobra?
&lt;br /&gt;
&lt;br /&gt;

</description></item><item><title>Cómo solucionar problemas de PartImage en linux</title><link>http://linuxeros-faq.blogspot.com/2026/03/como-solucionar-problemas-de-partimage.html</link><author>noreply@blogger.com (Unknown)</author><pubDate>Wed, 4 Mar 2026 08:20:00 -0400</pubDate><guid isPermaLink="false">tag:blogger.com,1999:blog-4932782972866403906.post-1567342316835945569</guid><description>&lt;p&gt;&amp;nbsp;Le preguntamos a Gemini, la inteligencia artificial de Google cómo solucionar problemas de &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=PartImage+tool&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;PartImage&lt;/a&gt; en linux&lt;/p&gt;

Explicanos detalladamente cómo solucionar problemas de PartImage en linux 
&lt;br /&gt;
&lt;br /&gt;
PartImage es una herramienta "old school" de gran fiabilidad, pero al ser un software que no recibe actualizaciones constantes, suele chocar con las tecnologías modernas de Linux (como el sistema de archivos &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+ext4+file+system&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;ext4&lt;/a&gt; o las tablas de particiones &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+GPT+partition+table&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;GPT&lt;/a&gt;).
&lt;br /&gt;
&lt;br /&gt;
Si PartImage te está dando dolores de cabeza, aquí tienes la guía para diagnosticar y reparar sus fallos más comunes.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
1. El gran problema: "File system not supported" (Ext4)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Este es el error número uno. La versión oficial de PartImage no soporta ext4 (el estándar actual de Linux). Si intentas clonar una partición moderna de Ubuntu o Debian, fallará.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
El Síntoma: &lt;/b&gt;PartImage muestra un error diciendo que no reconoce el sistema de archivos o simplemente se cierra.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
La Solución:&amp;nbsp;&lt;/span&gt;&lt;/b&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;1.  Si necesitas usar PartImage, tendrías que haber formateado en ext3, lo cual no es recomendable hoy en día.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
2.  La alternativa real: &lt;/b&gt;Si tu partición es ext4, deja de usar PartImage y utiliza &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Partclone+alternative+to+PartImage&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;Partclone&lt;/a&gt; o &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=Clonezilla+disk+imaging&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;Clonezilla&lt;/a&gt;. PartImage se quedó anclado en la era de ext3.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
2. Error: "The partition is mounted" (Dispositivo ocupado)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
PartImage es muy estricto:&lt;/b&gt; si la partición tiene un solo archivo abierto o está montada, no trabajará para evitar la corrupción de datos.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Cómo solucionarlo:
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;&lt;b&gt;
Asegúrate de desmontarla:&lt;/b&gt;&lt;span style="background-color: #fce5cd;"&gt; sudo umount /dev/sdXn.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Si te dice que está ocupada, identifica qué proceso la bloquea:
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo fuser -v /dev/sdXn
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;
Mata el proceso o cierra la carpeta que tengas abierta en el gestor de archivos.
&lt;br /&gt;
&lt;br /&gt;
Si intentas clonar la partición del sistema (/), debes hacerlo desde un &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=how+to+use+Live+USB+for+Linux+troubleshooting&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;Live USB&lt;/a&gt;. No puedes desmontar el sistema que estás usando.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
3. Fallos en el Servidor de Red (&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=partimaged+PartImage+server&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;partimaged&lt;/a&gt;)
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si usas el modo cliente-servidor para guardar imágenes en otro PC y la conexión falla:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Permisos de Usuario:&lt;/b&gt; PartImage no usa los usuarios del sistema por defecto. Debes añadir el usuario al archivo de configuración del servidor:
&lt;br /&gt;
&lt;br /&gt;
Edita &lt;span style="background-color: #fce5cd;"&gt;/etc/partimaged/partimagedusers.
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;
Añade el nombre de usuario que usará el cliente.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Firewall:&lt;/b&gt; El servidor escucha en el puerto 4025 (TCP). Asegúrate de abrirlo en el servidor:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo ufw allow 4025/tcp
&lt;br /&gt;&lt;/span&gt;
&lt;br /&gt;&lt;b&gt;
Certificados SSL: &lt;/b&gt;A veces, las versiones antiguas de PartImage fallan al negociar el cifrado. Prueba a iniciar el servidor con el flag -n (sin SSL) solo si estás en una red local segura:
&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo partimaged -n
&lt;/span&gt;&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
4. Error de Segmentación (Segmentation Fault) con GPT
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
PartImage fue diseñado cuando casi todos los discos usaban &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+MBR+partition+table&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;MBR&lt;/a&gt;. Si tu disco usa GPT (común en equipos con &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=define+UEFI+firmware&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;UEFI&lt;/a&gt; y discos de más de 2TB), PartImage puede volverse inestable.
&lt;br /&gt;
&lt;b&gt;&lt;br /&gt;
La Solución: &lt;/b&gt;* Si experimentas cierres inesperados al seleccionar la partición, es una incompatibilidad con la tabla GPT.
&lt;br /&gt;
&lt;br /&gt;
En este caso, la mejor opción es usar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=GParted+Live+GPT&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;GParted Live&lt;/a&gt; o SystemRescue, que incluyen versiones parcheadas o herramientas alternativas que manejan GPT sin problemas.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
5. Imagen corrupta al restaurar
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si el proceso de restauración se detiene o lanza un error de lectura:
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;
Verificación de bloques:&lt;/b&gt; Antes de culpar a PartImage, comprueba que el disco de destino no tenga sectores físicos dañados:
&lt;br /&gt;
&lt;b&gt;&lt;span style="font-size: large;"&gt;&lt;br /&gt;
Bash
&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;
&lt;br /&gt;&lt;span style="background-color: #fce5cd;"&gt;
sudo badblocks -v /dev/sdXn
&lt;br /&gt;&lt;/span&gt;
&lt;b&gt;&lt;br /&gt;
Espacio en disco: &lt;/b&gt;G4U y PartImage a veces fallan si el disco de destino es un solo bloque más pequeño que el original. El destino debe ser igual o mayor.
&lt;br /&gt;
&lt;br /&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;
Tabla de Referencia Rápida&lt;/span&gt;&lt;/b&gt;&lt;br /&gt;


&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;div&gt;&lt;google-sheets-html-origin&gt;&lt;table border="1" cellpadding="0" cellspacing="0" data-sheets-baot="1" data-sheets-root="1" dir="ltr" style="border-collapse: collapse; border: none; font-family: Arial; font-size: 10pt; table-layout: fixed; width: 0px;" xmlns="http://www.w3.org/1999/xhtml"&gt;&lt;colgroup&gt;&lt;col width="192"&gt;&lt;/col&gt;&lt;col width="198"&gt;&lt;/col&gt;&lt;col width="221"&gt;&lt;/col&gt;&lt;/colgroup&gt;&lt;tbody&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border: 3px solid rgb(0, 0, 0); font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Error&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Causa Probable&lt;/td&gt;&lt;td style="border-color: rgb(0, 0, 0) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 3px 3px 3px 1px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Solución Sugerida&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Can't read block X&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Sectores dañados en disco.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Usar &lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=ddrescue+for+damaged+disk+recovery&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;ddrescue&lt;/a&gt; en lugar de PartImage.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Connection Refused&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Firewall o puerto 4025 cerrado.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Abrir puerto o revisar si partimaged corre.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;S.O. no soportado&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Partición en Ext4 o Btrfs.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 1px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Cambiar a Partclone o Clonezilla.&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height: 21px;"&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0); border-image: initial; border-style: solid; border-width: 1px 3px 3px; font-size: 14pt; font-weight: bold; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Incapaz de leer tabla&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 1px 3px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Disco con formato GPT/UEFI.&lt;/td&gt;&lt;td style="border-color: rgb(204, 204, 204) rgb(0, 0, 0) rgb(0, 0, 0) rgb(204, 204, 204); border-image: initial; border-style: solid; border-width: 1px 3px 3px 1px; font-size: 14pt; overflow-wrap: break-word; overflow: hidden; padding: 2px 3px; text-align: center; vertical-align: middle;"&gt;Usar una herramienta compatible con GPT.&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;&lt;/google-sheets-html-origin&gt;&lt;/div&gt;&lt;div&gt;&lt;br /&gt;&lt;/div&gt;&lt;b&gt;&lt;span style="font-size: large;"&gt;

Mi consejo de "&lt;a data-preview="" href="https://www.google.com/search?ved=1t:260882&amp;amp;q=AI+colega+meaning&amp;amp;bbid=4932782972866403906&amp;amp;bpid=1567342316835945569" target="_blank"&gt;AI colega&lt;/a&gt;"
&lt;br /&gt;&lt;/span&gt;&lt;/b&gt;
&lt;br /&gt;
Si estás usando PartImage en 2026 para clonar sistemas Linux modernos, estás intentando correr un maratón con sandalias de madera. Es una herramienta legendaria, pero el soporte para ext4 es su punto débil. Si el error persiste, mi recomendación directa es que saltes a Clonezilla; usa el mismo concepto pero con motores mucho más modernos.
&lt;br /&gt;
&lt;br /&gt;
¿Te gustaría que te ayudara a migrar tus imágenes antiguas de PartImage a un formato más moderno o prefieres intentar reparar una imagen específica que ya tienes creada?
&lt;br /&gt;
&lt;br /&gt;

&lt;/div&gt;</description></item></channel></rss>