Directorio de artículos
¿Qué hacer cuando el administrador muestra el mensaje "No hay extensiones PHP compatibles disponibles (SQLite3, PDO_SQLite)" al abrir la base de datos SQLite? Este artículo ofrece una guía paso a paso para modificar php.ini e instalar y habilitar las extensiones pdo_sqlite y sqlite3. Reiniciar el servicio surtirá efecto de inmediato. ¡Solucione el problema fácilmente en 1 minuto!
He estado trabajando en algo durante los últimos dos días, y ha sido tan frustrante que casi me estoy cuestionando mi propia existencia.
Instalé Adminer en HestiaCP , la herramienta ligera de administración de bases de datos, con la esperanza de usarla para administrar una base de datos SQLite. Sin embargo, al abrir la página, apareció un mensaje emergente en texto rojo que decía: "No hay extensiones PHP compatibles disponibles (SQLite3, PDO_SQLite)".

Me quedé atónito.
¿Qué significa esto? Tengo SQLite instalado y PHP está en funcionamiento. ¿Por qué no está disponible la extensión?
Sinceramente, al principio pensé que el problema era de Admin, así que reinicié el servicio varias veces e incluso lo reinstalé, pero el problema persistió. Más tarde, me di cuenta de que no tenía nada que ver con Admin; el problema se debía a un error común en el que caen muchos principiantes.
Problemas de extensión causados por el mecanismo PHP multiversión de HestiaCP
HestiaCP admite la ejecución simultánea de múltiples versiones de PHP.
Esto significa que puedes instalar PHP 7.4, 8.0, 8.1, 8.2 y 8.3 en tu servidor simultáneamente, y diferentes sitios web pueden estar vinculados a diferentes versiones de PHP. Suena bastante avanzado, ¿verdad? Pero aquí está el problema: cuando escribes directamente...php -mAl comprobar el módulo, este utiliza la versión predeterminada de PHP del sistema, que puede ser completamente diferente de la versión realmente vinculada a su sitio web.
Estuve buscando durante horas y descubrí que mi sitio web está vinculado a PHP 8.2, pero la terminal muestra 8.1. Con razón no puedo encontrar el módulo sqlite.
Esta sensación es absurda. Es como ir a un restaurante a pedir comida y que el camarero te diga que el plato no está disponible. Pero resulta que sí está disponible, simplemente te equivocaste de persona. Tienes que hablar con la cocina para que lo solucionen.
Cómo determinar la versión de PHP utilizada por un sitio web
La solución es sencilla: primero, debes averiguar qué versión de PHP utiliza tu sitio web y, a continuación, instalar las extensiones correspondientes.
El primer paso es determinar qué versión de PHP está utilizando su sitio web.
Inicie sesión en el panel de administración de HestiaCP, acceda a la página web, busque el dominio donde instaló Admin, haga clic en editar y consulte el campo Versión de PHP del servidor web. El número que aparece allí es el correcto. Puede ser 8.1, 8.2 o 8.3; primero debe confirmarlo.
Mucha gente se salta este paso, pensando que no importa porque al fin y al cabo todo es PHP. Pero sí importa; si los números de versión no coinciden, instalar más extensiones no servirá de nada.
Instale la versión correspondiente de la extensión SQLite.
El segundo paso consiste en instalar la versión correspondiente de la extensión SQLite.
Una vez que conozca el número de versión, puede instalarlo directamente utilizando el gestor de paquetes de su sistema. Suponiendo que su sitio web utilice PHP 8.2, entonces:
apt update
apt install php8.2-sqlite3 -ySi su sitio web utiliza la versión 8.1 o 8.3, simplemente cambie el número de versión.
Para ser honesto, no estaba seguro de qué versión tenía, así que simplemente instalé las más comunes:
apt install php8.1-sqlite3 php8.2-sqlite3 php8.3-sqlite3 -yDe esta forma, puede abarcar cualquier versión, ahorrándote tiempo y esfuerzo.
Reinicie el servicio PHP-FPM para que la extensión surta efecto.
El tercer paso consiste en reiniciar el servicio PHP-FPM.
Este es un paso que muchos pasan por alto. Tras instalar la extensión, actualizan la página inmediatamente y siguen recibiendo un error. No es que la extensión no se haya instalado, sino que no se ha reiniciado el proceso PHP-FPM correspondiente, y la extensión recién instalada aún no se ha cargado.
Comando de reinicio:
systemctl restart php8.2-fpm
systemctl restart nginxPuedes cambiar el número de versión según tu situación real.
Verifique que la extensión SQLite se haya instalado correctamente.
El cuarto paso es verificarlo.
Puedes especificar una ruta de versión de PHP específica para comprobar:
php8.2 -m | grep -i sqliteSi la salida contienepdo_sqliteosqlite3Eso significa que la instalación se realizó correctamente. Ahora, actualiza la página de administración en tu navegador y el mensaje de advertencia rojo debería desaparecer.
Así fue como lo fui descubriendo paso a paso, desde pensar inicialmente "¿Qué es esto?" hasta darme cuenta después de "Ah, ya veo", y di bastantes rodeos por el camino. El principal problema era que el diseño PHP multiversión de HestiaCP era propenso a errores; si no estabas familiarizado con su lógica, era fácil perderse desde el primer paso.
Algunos podrían preguntarse: ¿por qué complicar tanto HestiaCP? ¿No podríamos usar una única versión de PHP? El diseño tiene sentido; diferentes sitios web podrían depender de distintas funcionalidades de PHP, y forzar una versión uniforme podría causar problemas de compatibilidad. Sin embargo, este mecanismo no es muy intuitivo para principiantes y no se destaca especialmente en la documentación.
Mi experiencia me dice que al usar paneles como HestiaCP, es fundamental adquirir el hábito de averiguar primero qué versión de PHP utiliza tu sitio web. Ya sea para instalar extensiones, cambiar configuraciones o solucionar problemas, este número de versión es el punto de partida más importante. Muchas veces, lo que crees que es un problema con un servicio en particular es simplemente una incompatibilidad de versiones.
¿Cómo describir la sensación? Es como si llevaras el coche al taller y el mecánico te dijera que no tienen la pieza. Resulta que sí la tienen, pero fuiste al taller equivocado y tienes que ir al de al lado. Suena un poco tonto, pero así es.
Bien, con esto concluye mi experiencia compartiendo cómo solucionar el error de administrador en HestiaCP. Espero que les sea útil si se encuentran con el mismo problema.
Esperamos que el artículo "El administrador muestra el mensaje '¿No hay ninguna extensión PHP compatible disponible? Solucione el error SQLite3/PDO_SQLite en 1 minuto'", compartido en el blog de Chen Weiliang ( https://www.chenweiliang.com/ ), le sea útil.
No dudes en compartir el enlace de este artículo: https://www.chenweiliang.com/cwl-34411.html
