Artikelkatalog
Vad ska man göra när administratören visar meddelandet "Inga stödda PHP-tillägg (SQLite3, PDO_SQLite)" när SQLite-databasen öppnas? Den här artikeln ger en steg-för-steg-guide om hur du ändrar php.ini och installerar och aktiverar tilläggen pdo_sqlite och sqlite3. Omstart av tjänsten träder i kraft omedelbart. Felsök enkelt på 1 minut!
Jag har jobbat på något de senaste dagarna, och det har varit så frustrerande att jag nästan ifrågasätter min existens.
Jag installerade Adminer på HestiaCP , det lätta databashanteringsverktyget, i hopp om att använda det för att hantera en SQLite-databas. Men när jag öppnade sidan dök ett popup-meddelande i röd text upp som sa: "Inga stödda PHP-tillägg är tillgängliga (SQLite3, PDO_SQLite)".

Jag blev förstummad.
Vad betyder detta? Jag har SQLite installerat och PHP körs. Varför är tillägget inte tillgängligt?
Ärligt talat trodde jag först att det var ett problem med själva administrationssystemet, så jag startade om tjänsten flera gånger och installerade den till och med om, men problemet kvarstod. Senare insåg jag att det inte hade något med administrationssystemet att göra; problemet härrörde från en vanlig fallgrop som många nybörjare hamnar i.
Problem med tillägg orsakade av HestiaCPs flerversions-PHP-mekanism
HestiaCP stöder flera versioner av PHP som körs samtidigt.
Det här betyder att du kan installera PHP 7.4, 8.0, 8.1, 8.2 och 8.3 på din server samtidigt, och olika webbplatser kan vara bundna till olika versioner av PHP. Låter ganska avancerat, eller hur? Men här är problemet: när du skriver direkt...php -mNär du kontrollerar modulen använder den systemets standardversion av PHP, vilken kan vara helt annorlunda än den version som faktiskt är kopplad till din webbplats.
Jag har letat länge och upptäckt att min webbplats är kopplad till PHP 8.2, men terminalen visar 8.1. Inte konstigt att jag inte hittar sqlite-modulen.
Den här känslan är så absurd. Det är som att gå till en restaurang för att beställa mat, och servitören säger att rätten inte är tillgänglig. Men det visar sig att den inte är det, du har bara kommit till fel person. Du måste prata med köket för att det ska fungera.
Hur man tar reda på vilken PHP-version som används av en webbplats
Så lösningen är enkel: först måste du ta reda på vilken version av PHP din webbplats använder och sedan installera motsvarande tillägg.
Det första steget är att avgöra vilken PHP-version din webbplats använder.
Logga in på HestiaCP-backend, gå till webbsidan, hitta domänen där du installerade Admin, klicka på redigera och titta i fältet Webbserver PHP-version. Numret som visas där är det korrekta. Det kan vara 8.1, 8.2 eller 8.3; du måste bekräfta detta nummer först.
Många hoppar över det här steget och tror att det inte spelar någon roll eftersom det bara är PHP. Men det spelar verkligen roll; om versionsnumren inte matchar, hjälper det inte att installera fler tillägg.
Installera motsvarande version av SQLite-tillägget.
Det andra steget är att installera motsvarande version av SQLite-tillägget.
När du väl vet versionsnumret kan du installera den direkt med hjälp av systemets pakethanterare. Om du antar att din webbplats använder PHP 8.2, då:
apt update
apt install php8.2-sqlite3 -yOm din webbplats använder version 8.1 eller 8.3, ändra bara versionsnumret.
Ärligt talat var jag inte säker på vilken version jag hade, så jag installerade bara de vanliga:
apt install php8.1-sqlite3 php8.2-sqlite3 php8.3-sqlite3 -yPå så sätt kan den täcka alla versioner, vilket sparar tid och ansträngning.
Starta om PHP-FPM-tjänsten för att tillägget ska träda i kraft.
Det tredje steget är att starta om PHP-FPM-tjänsten.
Detta är ett steg som många förbiser. Efter att ha installerat tillägget uppdaterar de omedelbart sidan, bara för att fortfarande få ett felmeddelande. Det är inte så att tillägget inte installerades; det är så att du inte startade om motsvarande PHP-FPM-process, och det nyinstallerade tillägget har inte laddats än.
Omstartskommando:
systemctl restart php8.2-fpm
systemctl restart nginxDu kan ändra versionsnumret beroende på din faktiska situation.
Kontrollera att SQLite-tillägget har installerats korrekt.
Det fjärde steget är att verifiera det.
Du kan ange en specifik PHP-versionssökväg för att kontrollera:
php8.2 -m | grep -i sqliteOm utdata innehållerpdo_sqliteellersqlite3Det betyder att installationen lyckades. Uppdatera nu administratörssidan i din webbläsare, så bör det röda varningsmeddelandet försvinna.
Så kom jag på det steg för steg, från att först tänka "Vad är det här?" till att senare inse "Jaha, jag förstår", och jag tog en hel del omvägar längs vägen. Det största problemet var att HestiaCP:s flerversions-PHP-design verkligen var benägen att innehålla fallgropar; om man inte var bekant med dess logik var det lätt att gå vilse redan från första steget.
Vissa kanske undrar varför HestiaCP ska vara så komplicerat? Kan vi inte bara använda en enda, enhetlig PHP-version? Designen är rimlig; olika webbplatser kan förlita sig på olika PHP-funktioner, och att tvinga fram en enhetlig version kan orsaka kompatibilitetsproblem. Denna mekanism är dock inte särskilt användarvänlig för nybörjare, och den betonas inte särskilt i dokumentationen.
Min egen erfarenhet är att när man använder paneler som HestiaCP måste man först ta reda på vilken PHP-version ens webbplats är kopplad till. Oavsett om man installerar tillägg, ändrar konfigurationer eller felsöker är detta versionsnummer den viktigaste utgångspunkten. Många gånger är det man tror är ett problem med en viss tjänst i själva verket bara en versionsmatchning.
Hur ska man beskriva känslan? Det är som att du tar din bil för att få den reparerad, och mekanikern säger att de inte har delen. Det visar sig att de har den, men du gick till fel verkstad och du måste åka till den bredvid. Det låter lite fånigt, men det är verkligen så det är.
Okej, det avslutar min erfarenhetsdelning om att lösa administratörsfelet på HestiaCP. Jag hoppas att det kan hjälpa dig om du stöter på samma problem.
Förhoppningsvis kommer artikeln "Administratören uppmanar 'Inget stödt PHP-tillägg tillgängligt'? Lös SQLite3/PDO_SQLite-felet på 1 minut" som delas på Chen Weiliangs blogg ( https://www.chenweiliang.com/ ) att vara till hjälp för dig.
Dela gärna länken till den här artikeln: https://www.chenweiliang.com/cwl-34411.html
