任何其他问题仅适用于 Ubuntu。
我做了什么: 在 php ini 中,我取消注释了这一行:extension=sqlite3 以及将 extension_dir 定义为 ext
在PATH中我添加了PHP安装文件夹,其中包括libsqlite3.dll
shell 中的“php -m”仍然不会显示 sqlite3(或任何类似的内容),并且任何使用 SQLite3 的 PHP 文件都会导致经典的结果:“致命错误:未捕获错误:在 [php 文件] 中找不到类“SQLite3””
所有在线教程(谷歌可以找到的两个针对 Windows 的教程)只是说在这些步骤之后(甚至在第一个步骤之后)它可以工作。
问题在于默认 Windows .ini 文件的命名方式
默认情况下,提供的 .ini 文件名为“php.ini-product”和“php.ini-development”。由于它们不以“.ini”结尾,因此不会被拾取并忽略任何编辑。
将其重命名为 php.ini(并重新启动)后,它终于起作用了。
事后看来,这完全是显而易见的,但我很长一段时间都没有注意到它
TL;DR:你有
php_sqlite3.dll
,对吧?
https://www.php.net/manual/en/sqlite3.installation.php
他们说:
默认启用 SQLite3 扩展。
并且(这是重要的部分):
Windows 用户必须启用
才能使用此扩展。该 DLL 包含在 PHP 的 Windows 发行版中。php_sqlite3.dll
并且(我猜你已经遵循了)
注意:自 PHP 7.4.0 起,Windows 上的附加设置
为了让这个扩展工作,必须有 DLL 文件 适用于 Windows 系统
。有关如何操作的信息 请参阅题为“如何将我的 PHP 目录添加到PATH
”的常见问题解答 在 Windows 上”。虽然将 DLL 文件从 PHP 文件夹复制到 Windows 系统目录也可以(因为系统目录是 系统默认的PATH
),不建议这样做。 这个 扩展要求以下文件位于PATH
中:PATH
。libsqlite3.dll
其他想法:
打开 php.ini 然后搜索“extension_dir”。对于 Windows,extension_dir =“ext”;对于 Linux,extension_dir =“./”。只需删除“;”即可根据您的操作系统,在extension_dir之前。这个extension_dir指向dll的。希望这能解决您的问题。