एडमिन को "कोई समर्थित PHP एक्सटेंशन उपलब्ध नहीं है" का संदेश मिलता है? SQLite3/PDO_SQLite त्रुटियों को 1 मिनट में हल करें।

Adminer 打开 SQLite 数据库提示“没有支持的 PHP 扩展可用(SQLite3, PDO_SQLite)”怎么办?本文手把手教你修改 php.ini 并安装开启 pdo_sqlite 与 sqlite3 扩展,重启服务即刻生效。1分钟轻松排除故障!

这两天在折腾一个东西,折腾得我差点怀疑人生。

हाँहेस्टियासीपी上装了Adminer,就是那个轻量级的数据库管理工具,想用它来管理SQLite数据库。结果打开页面一看,直接给我弹了一行红字,说什么「没有支持的 PHP 扩展可用(SQLite3, PDO_SQLite)」。

एडमिन को "कोई समर्थित PHP एक्सटेंशन उपलब्ध नहीं है" का संदेश मिलता है? SQLite3/PDO_SQLite त्रुटियों को 1 मिनट में हल करें।

मैं चकित रह गया।

这啥意思?我SQLite不是装了吗?PHP不是跑着呢吗?怎么就扩展不可用了?

说实话,我一开始以为是Adminer本身的问题,重启了好几次服务,甚至重装了一遍,结果还是那样。后来我才搞明白,这事儿跟Adminer没半毛钱关系,问题出在一个很多新手都会踩的坑上。

HestiaCP多版本PHP机制导致的扩展问题

HestiaCP这玩意,它支持多版本PHP并存。

就是说,你服务器上可以同时装PHP 7.4、8.0、8.1、8.2、8.3,然后不同的网站可以绑定不同版本的PHP。听起来挺高级的对吧,但问题来了,当你在终端里直接敲php -m去查模块的时候,它用的是系统默认的那个PHP版本,可能跟你网站实际绑定的版本根本不是一回事。

我查了老半天,发现我的网站绑定的是PHP 8.2,但我终端里查的是8.1,难怪查不到sqlite模块呢。

这种感觉太离谱了,就像你去餐厅点菜,服务员告诉你这道菜没有,结果不是没有,是你找错人了,你得跟后厨说才管用。

如何确认网站使用的PHP版本

所以这事儿的解决思路很简单,你得先搞清楚你的网站到底用的是哪个版本的PHP,然后针对性地去装对应的扩展。

第一步,确认你站点用的是哪个PHP版本。

登录HestiaCP后台,进Web页面,找到你装Adminer的那个域名,点编辑,看Web Server PHP Version那一栏,上面写的是几就是几。可能是8.1,可能是8.2,也可能是8.3,反正你得先确认这个数字。

这一步很多人会跳过,觉得无所谓,反正都是PHP。但真的有所谓,版本号对不上,你装再多扩展也白搭。

安装对应版本的SQLite扩展

第二步,安装对应版本的SQLite扩展。

知道版本号之后,直接用系统包管理器装就行。假设你的站点用的是PHP 8.2,那就:

apt update
apt install php8.2-sqlite3 -y

如果你的站点用的是8.1或者8.3,就把版本号改一下就行。

说实话我也不确定自己到底是哪个版本,干脆把常见的几个都装了一遍:

apt install php8.1-sqlite3 php8.2-sqlite3 php8.3-sqlite3 -y

这样不管哪个版本都能覆盖到,省心。

重启PHP-FPM服务使扩展生效

第三步,重启PHP-FPM服务。

这一步是很多人会忽略的,装完扩展就直接去刷新页面了,结果还是报错。不是扩展没装上,是你没重启对应的PHP-FPM进程,新装的扩展还没加载进去。

重启命令:

systemctl restart php8.2-fpm
systemctl restart nginx

版本号根据你实际情况改就行。

验证SQLite扩展是否安装成功

第四步,验证一下。

你可以指定具体的PHP版本路径来检查:

php8.2 -m | grep -i sqlite

यदि आउटपुट में शामिल हैpdo_sqliteयाsqlite3,那就说明装成功了。这时候再去浏览器刷新Adminer页面,那个红字提示就消失了。

我当时就是这样一步步搞下来的,从一开始的「这啥玩意」到后来的「原来是这样」,中间走了不少弯路。主要是HestiaCP这个多版本PHP的设计,确实容易让人踩坑,如果你不熟悉这套逻辑,很容易在第一步就走歪了。

可能有小伙伴会问,为什么HestiaCP要搞这么复杂,不能就用一个统一的PHP版本吗?其实这个设计是有道理的,不同网站可能依赖不同版本的PHP特性,强制统一版本反而会出兼容性问题。只是这个机制对新手来说,确实不太友好,文档里也没怎么特别强调。

我自己的感受是,用HestiaCP这类面板的时候,一定要养成一个习惯,就是先搞清楚你的网站到底绑定的是哪个PHP版本。不管是装扩展、改配置还是排查问题,这个版本号都是最关键的起点。很多时候你以为是某个服务出了问题,其实就是版本没对上。

这种感觉怎么说呢,就像你去修车,修车师傅说这零件没有,结果不是没有,是你找错了修理厂,得去隔壁那家才有。听起来有点蠢,但真的就是这么回事。

好了,以上就是我在HestiaCP上解决Adminer报错的经验分享,希望能帮到遇到同样问题的你。

होप चेन वेइलियांग ब्लॉग ( https://www.chenweiliang.com/ ) 分享的《Adminer提示“没有支持的PHP扩展可用”?1分钟搞定SQLite3/PDO_SQLite报错》,对您有帮助。

इस लेख का लिंक साझा करने के लिए आपका स्वागत है:https://www.chenweiliang.com/cwl-34411.html

अधिक छिपी हुई ट्रिक्स को अनलॉक करने के लिए, हमारे टेलीग्राम चैनल से जुड़ने के लिए आपका स्वागत है!

पसंद आये तो शेयर और लाइक करें! आपके शेयर और लाइक हमारी निरंतर प्रेरणा हैं!

 

发表 评论

आपकी ईमेल आईडी प्रकाशित नहीं की जाएगी। आवश्यक फ़ील्ड का उपयोग किया जाता है * लेबल

लेख निर्देशिका
ऊपर स्क्रॉल करें