我尝试提问php - Is there a binary package for php5-sqlite3 with fts3 enabled? - Ask Ubuntu - Stack Exchange;但是没有骰子 - 所以我会用不同的语言再次尝试:如何在Ubuntu Linux服务器上为SQL下的SQLite3启用FTS3?
我想使用Sqlite为Mediawiki启用FTS3 - 我通常会收到“no such module: fts3
”错误。
我找到了:
php5-sqlite3
并从源代码安装sqlite3(虽然没有特别提及FTS3)>这是错误:
>
> 'SQLSTATE [HY000]:一般错误:1没有这样的模块:fts3'
>有一个编译时选项:SQLITE_ENABLE_FTS3
...我猜,最终说除了从源代码构建sqlite for php之外,没有其他方法可以为PHP激活STSlite3的FTS3?这对我来说不是一个好选择,因为我对生产服务器没有任何权利......这就是为什么我再问一遍:是否有某种二进制包来帮助我启用FTS3?
如果没有二进制包 - 我想像php的sqlite3部分将被编译为.so
对象。有没有办法说服PHP以某种方式为特定服务器目录加载“外部”.so
(类似于ini_set如何在本地更改display_errors
)?
编辑:奖金问题:说我已经安装了sqlite3并从源启用了FTS3; PHP将在phpinfo()
中显示某种消息/指示,该消息将是什么?
提前感谢您的回答,
干杯!
答案 0 :(得分:2)
使用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包含在那里。顺便说一句,来自INSTALL文件的重要一行:
确保你的php.ini
中有extension = sqlite3.so
答案 1 :(得分:0)
您无需重新编译sqlite扩展。您可以将扩展程序加载为:
<?php
$db = new SQLite3('mysqlitedb.db');
$db->loadExtension('myExtension.so');
?>