我见过类似的问题,但没有一个能够充分解决我的问题。 我在亚马逊云服务器上运行Apache和PHP 5.3.6。
phpinfo一直说sqlite被禁用。 至less从configuration线看起来是这样的:
'./configure' ... '--without-sqlite'
在phpinfo()的其他部分输出:
PDO PDO drivers mysql, sqlite PDO Driver for SQLite 3.x enabled SQLite Library 3.6.20 sqlite3 SQLite3 support enabled SQLite3 module version 0.7-dev SQLite Library 3.6.20 Directive Local Value Master Value sqlite3.extension_dir no value no value
并至less有一个以下的PHP命令失败:
if (!extension_loaded('SQLite') OR !function_exists('sqlite_open'))
百胜安装状态,sqlite和pdo-lite已经安装。
我试图启用sqlite编辑我的本地php.ini通过添加:
; Enable sqlite3 extension module extension=sqlite3.so
我已经检查了主要的php.ini(/etc/php.ini),没有关于禁用它的具体内容。 实际上,在php.d中加载了一个子conig文件,它也指定了这个扩展以及另一个用于pdo-sqlite
我正在寻找或尝试的东西。 有什么build议么。
我如何findPHPconfiguration的位置?
谢谢
您的代码没有正确指定扩展名,所以当然失败了。 正如我们所见,正确的扩展名是sqlite3 。
if (!extension_loaded('SQLite')...
无论如何。
PHP的RPM构build实际上是四次重buildPHP。 它是在没有启用任何扩展的情况下构build的,用于以mod_php加载到Apache中,然后再以所有扩展作为共享内存对象进行构build。 还有一个为PHP命令行构build的版本,还有第四个版本的目标我现在就忘记了。
那么会发生什么呢,没有内置扩展的构build与从其他构build构build的扩展捆绑在一起。 因此,PHP可能会说,它没有任何扩展configuration,但仍然能够使用它们。
确保/etc/php.ini出现在Loaded Configuration File行中。
--without-sqlite不要谈论是否安装sqlite库。 在phpinfo()页面searchsqlite ,查看是否启用了SQLite库 。
每当你做phpinfo(); 确保你正在寻找正确的php.ini(我想我们所有人都在那里,当你正在使用另一个php.ini时,你正在看一个php.ini),所以看看“ Loaded Configuration File ”,另一件事看看我的RHEL系统上的“扫描这个目录下额外的.ini文件”,它显示我有/etc/php.d/ ,其中有更多的php.ini文件(包括sqlite3.ini)。