PHP无法与SQLite配合使用

PHP无法与SQLite配合使用

问题描述:

好的,所以这是我设置的第一台服务器。我有一个运行Ubuntu 11.10的系统。我运行Lighttpd并设置了PHP,但我希望PHP和SQLite一起工作。我安装使用它们:PHP无法与SQLite配合使用

sudo apt-get install lighttpd 
sudo apt-get install php5-cgi 
sudo apt-get install sqlite 
sudo apt-get install php5-sqlite 

PHP工作正常,但在它sqlite的命令的任何脚本只返回一个空白页。我打开PHP的错误信息和运行此脚本:

<?php 
echo sqlite_libversion(); 
echo "<br>"; 
echo phpversion(); 
?> 

将返回:

Fatal error: Call to undefined function sqlite_libversion() 

什么出了问题? :(

php -m产生这样的:

[PHP模块] bcmath时BZ2日历核心CTYPE日期DBA DOM EREG EXIF FileInfo的过滤器的ftp gettext的散列的iconv JSON的libxml MBSTRING mhash OpenSSL的PCNTL PCRE PDO PDO_SQLITE的Phar POSIX的readline反射 会议shmop SimpleXML的肥皂插座SPL sqlite3的标准sysvmsg SYSVSEM SYSVSHM标记者WDDX XML的XMLReader的XmlWriter拉链zlib的

+0

您在Php.ini文件中为sqlite设置了什么扩展名? – 2012-03-29 07:41:17

+0

你可以发布php -m吗? – rkosegi 2012-03-29 07:44:04

+0

我已发布php -m – Dio 2012-03-29 09:04:48

你有添加你的php.ini中的sqlite扩展?

看来这家伙有同样的问题:http://forum.alwaysdata.com/viewtopic.php?id=1034

在该线程的解决办法是增加

extension=pdo_sqlite.so 
extension=sqlite.so 

为php.ini,最好是在“动态扩展”的部分,但他们去任何地方。

+0

请总结此答案中的链接文本,否则在链接断开时它不起任何作用。 – 2012-03-29 07:42:55

在php.ini文件的扩展名应该是:

extension=pdo_sqlite.so 
extension=sqlite.so 
+1

在php.ini文件中他们应该去哪里? – Dio 2012-03-29 08:02:02

+0

请参阅http://code.google.com/p/umspx/source/browse/trunk/linux/etc/php.ini?r=41 – 2012-03-29 08:49:56

根据http://packages.ubuntu.com/oneiric/all/php5-sqlite/filelist PHP5的-sqlite的包含两个扩展模块

所以它看起来像php5-sqlite不提供您正在寻找的模块。
如果你没有大量的遗留代码,我宁愿建议你使用PDO,特别是。因为sqlite模块将会是moved from core php to pecl(pecl没有错,尽管...):

由于PHP 5.0这个扩展与PHP捆绑在一起。从PHP 5.4开始,此扩展只能通过PECL使用。
+0

如何安装此模块? – Dio 2012-03-29 08:00:58

+0

我真的不知道。我发现'php5-sqlite'提供了三个.ini文件,其中两个与包提供的两个模块相匹配,这很奇怪。然后是'/ etc/php5/conf.d/sqlite.ini',但没有'sqlite.so'。严格地说,这不像管理员那样是一个开发者问题;您可能会在其他堆栈交换服务器上得到更好的答案。 – VolkerK 2012-03-29 08:08:56