Захотелось мне подключить SQLite для кеша, но получил немного неприятный ответ:
Fatal error: Call to undefined function sqlite_escape_string() in /domain.com/common.php on line 465
Пошарился в интернете и стало ясно, что с PHP 5.4 старый привычный sqlite вырезали, оставили только PDO_SQLITE. Почти все рекомендации сводились к использованию как раз таки PDO. Переписывать функции в движке не хотелось, оно того не стоит (на данном этапе), потому пришла в голову идея собирать самостоятельно модуль. Нечто подобное я когда-то делал для Redis. Позднее нашел ссылку годичной давности, где эту идею написали и расписали.
Устанавливаем пакет для разработчиков:
# aptitude install php5-dev
Скачиваем исходники с SVN:
# svn co http://svn.php.net/repository/pecl/sqlite/trunk sqlite
Приступаем:
# phpize
Получили ответ:
Configuring for:
PHP Api Version: 20100412 Zend Module Api No: 20100525 Zend Extension Api No: 220100525
Запоминаем число — 20100525 (у Вас может быть другое).
# ./configure
# make
Если всё ок, то увидим такое:
Build complete. Don't forget to run 'make test'./pre> Сделаем тест, как просят (не обязательно):
# make test
В конце теста получим запрос на отправку отчёта. Можете отправить, а можете и не отправить.
Do you want to send this report now? [Yns]: Y
Проверяем появился ли модуль. Он должен быть в папке modules.
# ls -l modules total 1452 -rw-r--r-- 1 root root 916 Aug 25 02:25 sqlite.la -rwxr-xr-x 1 root root 1482112 Aug 25 02:25 sqlite.so
Модуль есть, а значит можно смело переносить его в папку модулей PHP. Вот тут нам и нужны цифры, которые мы получили от phpize
# cp modules/sqlite.so /usr/lib/php5/20100525/
Теперь включим модуль:
# nano /etc/php5/mods-available/sqlite.ini
Напишем в файл такой текст:
; configuration for php SQLite module ; priority=20 extension=sqlite.so
Сделаем линк:
# ln -s /etc/php5/mods-available/sqlite.ini /etc/php5/conf.d/20-sqlite.ini
Перезагружаем сервис:
# service php5-fpm restart
Ну и проверяем появилась ли инфа в phpinfo() 🙂
Если всё прошло удачно, то почистим за собой мусор:
# cd .. # rm -R sqlite
Вот и всё. Удачи! 🙂
Источники:
http://docs.php.net/manual/ru/install.pecl.phpize.php
http://svn.php.net/viewvc/pecl/sqlite/trunk/
http://pecl.php.net/package/SQLite
http://phpclub.ru/talk/threads/Установка-sqlite-на-php-5-4-x.72620/#post-648443
8 февраля, 2015 at 1:20 дп
выполняю эту команду ./configure, система говорит что нет такого файла в директории. помогите пожалуйста
12 февраля, 2015 at 11:17 дп
статья устарела.
Для дебиана достаточно установить модуль с репо:
# apt-get install php5-sqlite
21 марта, 2015 at 5:17 пп
А что дальше после команды «apt-get install php5-sqlite», как запустить? А то не работает на Debian 7.8 чат iChat 7.0.
14 мая, 2015 at 4:15 пп
Ем-м.. Как минимум посмотрите логи и документацию к этому iChat 🙂