Насколько я знаю, даже унифицированный на основе Compiz вряд ли будет работать в виртуальной машине (я спросил об этом в UDS и сказал, что compiz не запускается на виртуальных машинах.)
Расширения
В соответствии с страницей расширения специализированных баз данных поставщика на сайте PHP существуют два расширения SQLite:
SQLite SQLite3SQLite [ ! d4] extension - это более новая замена SQLite, которая Специфические расширения базы данных поставщиков :
Расширение SQLite включено по умолчанию с PHP 5.0. Начиная с PHP 5.4, расширение SQLite доступно только через PECL.Расширения
Теперь некоторые практические соображения. Давайте посмотрим на конфигурацию веб-сервера по умолчанию, которая была установлена с помощью:
sudo apt-get install apache2 php5 php5-sqlite
SQLite
# php --ri sqlite
SQLite
SQLite support => enabled
PECL Module version => 2.0-dev
SQLite Library => 2.8.17
SQLite Encoding => UTF-8
# php --ri sqlite3
sqlite3
SQLite3 support => enabled
SQLite3 module version => 0.7-dev
SQLite Library => 3.6.22
Ubuntu 12.04:
[ f3]Итак, установка PHP по умолчанию Ubuntu 12.04 по умолчанию (начиная с записи - версия 5.3.10) уже не имеет расширения sqlite как встроенного. Вышеприведенный вывод указывает, что присутствует только расширение sqlite3, которое пришло из php5-sqlite пакета.
Решение
Выберите свое зло:
Правильный подход в долгосрочной перспективе - это адаптировать код, чтобы заставить его работать под SQLite3. Изменения были бы незначительными, но это может привести к нежелательной работе с копированием в стиле палитры большого количества файлов. Если это так, и право здесь не является правильным словом, решение 2 для вас. Установите устаревшее расширение из PECL.После ответа Андрея Кайникова и настоятельно советуем вам обновить код, вот несколько примеров того, какую работу следует выполнять при переносе из класса SQLiteDatabase (библиотека sqlite) в класс SQLite3 (библиотека SQLite3).
Например:
SQLiteDatabase -> SQLite3, SQLiteDatabase::unbufferedQuery -> SQLite3::query, SQLiteResult::fetchAll(SQLITE_*) -> SQLite3Result::fetchArray(SQLITE3_*) и т. д.Что касается выборки, в старом sqlite мы имели:
$rowsIMEI = $db->unbufferedQuery($imeiSQL)->fetchAll(SQLITE_ASSOC);
foreach($rowsIMEI as $r)
{
...
}
Хотя в новом SQLite3 мы должны:
$rowsIMEI = $db->query($imeiSQL);
while($r = $rowsIMEI->fetchArray(SQLITE3_ASSOC))
{
...
}
Другие изменения требуют
Прежде чем начать, вы должны сначала использовать инструмент, такой как SQLite3 , чтобы преобразовать ваш файл базы данных из От 2,1 до 3,0. Размер может быть снижен даже на половину, поэтому я думаю, что это то, за что стоит бороться.
Решение (НЕ для производства, просто для игры): 1. Получите деб файл «php5-sqlite» от ubuntu11.04 или любого другого. 2. Извлеките его и найдите файл sqlite.so. Вы можете получить sqlite.so в другим способом, например, из вашей старой системы - 3. Поместите sqlite.so в / usr / lib / php5 / 20090626 + lfs / 4. Добавьте это в php.ini (/etc/php5/apache2/php.ini):
extension=sqlite.so
Следуя Andrejs Cainikovs , ответьте и настоятельно советуем вам обновить код, вот несколько примеров того, какую работу следует выполнять при миграции из класса SQLiteDatabase
( sqlite в библиотеку SQLite3
( библиотека SQLite3 ).
Например:
SQLiteDatabase
-> SQLite3
, SQLiteDatabase::unbufferedQuery
-> SQLite3::query
, SQLiteResult::fetchAll(SQLITE_*)
-> SQLite3Result::fetchArray(SQLITE3_*)
и т. д. Что касается выборки, в старых SQLite у нас было:
$rowsIMEI = $db->unbufferedQuery($imeiSQL)->fetchAll(SQLITE_ASSOC);
foreach($rowsIMEI as $r)
{
...
}
Хотя в новом SQLite3 мы должны:
$rowsIMEI = $db->query($imeiSQL);
while($r = $rowsIMEI->fetchArray(SQLITE3_ASSOC))
{
...
}
Другие изменения требуют аналогичных объем работы, поэтому это не должно быть жизненным процессом.
Прежде чем начать, вы должны сначала использовать инструмент, например SQLite Studio , для преобразования вашего файла базы данных из От 2,1 до 3,0. Размер может быть снижен даже на половину, поэтому я думаю, что это то, за что нужно бороться.