【问题标题】:PHP isn't working with SQLitePHP 不适用于 SQLite
【发布时间】:2012-04-12 20:11:22
【问题描述】:

好的,这是我设置的第一台服务器。我有一个运行 Ubuntu 11.10 的系统。我正在运行 Lighttpd 并设置了 PHP,但我希望 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 calendar Core ctype date dba dom ereg exif fileinfo filter ftp gettext hash iconv json libxml mbstring mhash openssl pcntl pcre PDO pdo_sqlite Phar posix readline 反射 session shmop SimpleXML soap sockets SPL sqlite3 标准 sysvmsg sysvsem sysvshm tokenizer wddx xml xmlreader xmlwriter zip zlib

【问题讨论】:

  • 你在 Php.ini 文件中为 sqlite 设置了什么扩展名?

标签: php sqlite ubuntu lighttpd


【解决方案1】:

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

extension=pdo_sqlite.so
extension=sqlite.so

【讨论】:

  • 它们应该放在 php.ini 文件的哪个位置?
【解决方案2】:

根据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 使用。

【讨论】:

  • 如何安装这个模块?
  • 我真的不知道。我觉得很奇怪php5-sqlite 提供了三个 .ini 文件,其中两个匹配包提供的两个模块。然后是/etc/php5/conf.d/sqlite.ini,但没有sqlite.so。严格来说,这与其说是开发人员的问题,不如说是管理员的问题。您可能会在其他其中一台 stackexchange 服务器上获得更好的答案。
【解决方案3】:

您是否在 php.ini 中添加了 sqlite 扩展?

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

该线程中的解决方案是添加

extension=pdo_sqlite.so
extension=sqlite.so

到 php.ini,最好在“动态扩展”部分下,但它们可以放在任何地方。

【讨论】:

  • 请在此答案中总结链接文本,否则如果/当链接中断时,它没有任何用处。
猜你喜欢
  • 2018-05-28
  • 2014-04-09
  • 1970-01-01
  • 2011-12-24
  • 1970-01-01
  • 1970-01-01
  • 2018-10-01
  • 2016-11-11
  • 1970-01-01
相关资源
最近更新 更多