【问题标题】:LInux: How to install FTS3 (for sqlite3) in PHP?LInux:如何在 PHP 中安装 FTS3(用于 sqlite3)?
【发布时间】:2011-07-19 21:12:09
【问题描述】:

我试过问问题php - Is there a binary package for php5-sqlite3 with fts3 enabled? - Ask Ubuntu - Stack Exchange;但那里没有骰子 - 所以我会在这里用不同的话再试一次:如何在 Ubuntu Linux 服务器上的 SQLite3 下为 php 启用 FTS3?

我想使用 Sqlite 为 Mediawiki 启用 FTS3 - 我通常会收到“no such module: fts3”错误。

我找到了:

>,这是错误:
>
> 'SQLSTATE[HY000]:一般错误:1 没有这样的模块:fts3'
>

有一个编译时选项:SQLITE_ENABLE_FTS3

...我想,最终说没有其他方法可以为 PHP 的 SQlite3 激活 FTS3 - 除了从源代码构建用于 php 的 sqlite?这对我来说不是一个好的选择,因为我在生产服务器上没有任何权利......这就是为什么我会再次问:是否有某种二进制包可以帮助我启用 FTS3?

如果没有二进制包 - 我想 php 的 sqlite3 部分将被编译为 .so 对象。有没有办法说服 PHP 以某种方式为特定的服务器目录加载“外部”.so(类似于如何使用ini_set 在本地更改display_errors)?

编辑:额外问题:假设我安装了 sqlite3,并从源代码启用了 FTS3; PHP 会在phpinfo() 中显示某种消息/指示,该消息是什么?

提前感谢您的任何回答,
干杯!

【问题讨论】:

    标签: php linux sqlite installation fts3


    【解决方案1】:

    使用来自how to enable sqlite3 for php? - Stack Overflow 的答案而不是

    $ sudo ./configure
    

    你需要

    $ sudo CPPFLAGS="-DSQLITE_ENABLE_FTS3 -DSQLITE_ENABLE_FTS3_PARENTHESIS" ./configure
    

    归功于:sqlite - fts3 manual。澄清一下,您不需要安装单独的 php5-sqlite3 包,因为如果您查看http://pecl.php.net/get/sqlite3-0.6.tgz,您会看到其中包含 php_sqlite3。顺便说一句,安装文件中的重要行:

    确保您的 php.ini 中有 extension=sqlite3.so

    【讨论】:

    • 感谢@Zyava - 我永远不会找到那些开关 :) 我想这证实了有 no 二进制包来启用它......顺便说一句,关于如何检查正确安装的任何想法(除了运行页面并且没有收到错误消息)? phpinfo()中会显示一些消息吗?
    【解决方案2】:

    您不需要重新编译 sqlite 扩展。您可以将扩展加载为:

    <?php
    $db = new SQLite3('mysqlitedb.db');
    $db->loadExtension('myExtension.so');
    ?>
    

    https://secure.php.net/manual/en/sqlite3.loadextension.php

    【讨论】:

      猜你喜欢
      • 2011-09-12
      • 1970-01-01
      • 1970-01-01
      • 2020-01-16
      • 1970-01-01
      • 1970-01-01
      • 2022-01-16
      • 2013-12-03
      • 2011-08-12
      相关资源
      最近更新 更多