LInux: Как установить FTS3 (для sqlite3) в PHP? - PullRequest
1 голос
/ 20 июля 2011

Я пытался задать вопрос php - есть ли бинарный пакет для php5-sqlite3 с включенным fts3?- Спроси Ubuntu - Стек обмена ;но без кубиков - поэтому я попробую здесь снова другими словами: как можно включить FTS3 под SQLite3 для php на сервере Ubuntu Linux?

Я бы хотел включить FTS3 для Mediawiki, использующего Sqlite, и обычно я получаю ошибку "no such module: fts3".

Я нашел:

> и здесь ошибка:
>
> 'SQLSTATE [HY000]: общая ошибка: 1 нет такого модуля: fts3'
>

Существует опция времени компиляции: SQLITE_ENABLE_FTS3

... которая, как мне кажется, в конечном итоге говорит, что другого способа активировать FTS3 для SQlite3 дляPHP - кроме создания sqlite для PHP из источника?Это не было бы хорошим вариантом для меня, так как у меня нет прав на производственном сервере ... вот почему я бы снова спросил: есть ли какой-то бинарный пакет, чтобы помочь мне включить FTS3?

Если для этого нет бинарного пакета - я думаю, что sqlite3-часть для php будет скомпилирована как .so объект.Есть ли способ убедить PHP как-то загрузить «внешний» .so только для определенного каталога сервера (сродни тому, как ini_set используется для локального изменения display_errors)?

РЕДАКТИРОВАТЬ: Бонусный вопрос: скажем, я установил sqlite3 с включенной FTS3 из источника;будет ли PHP показывать какое-то сообщение / указание в phpinfo(), и что это будет за сообщение?

Заранее спасибо за любые ответы,
Ура!

Ответы [ 2 ]

2 голосов
/ 20 июля 2011

Использовать ответ от как включить sqlite3 для php? - Переполнение стека , но вместо

$ 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 есть расширение = sqlite3.so

0 голосов
/ 18 февраля 2018

Вам не нужно перекомпилировать расширение sqlite.Вы можете загрузить расширение как:

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

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

...