Назад | Перейти на главную страницу

PHP включить sqlite состояния phpinfo - без-sqlite

Я встречал похожие вопросы, но ни один из них не отвечал должным образом. Я запускаю Apache и PHP 5.3.6 на облачном сервере Amazon.

phpinfo продолжает заявлять, что sqlite отключен. По крайней мере, так кажется из строки настройки:

'./configure' ... '--without-sqlite'

В других частях вывода phpinfo ():

PDO
PDO drivers     mysql, sqlite
PDO Driver for SQLite 3.x   enabled
SQLite Library  3.6.20 

sqlite3
SQLite3 support enabled
SQLite3 module version  0.7-dev
SQLite Library  3.6.20

Directive   Local Value Master Value
sqlite3.extension_dir   no value    no value

и по крайней мере одна из следующих команд PHP не работает:

if (!extension_loaded('SQLite') OR !function_exists('sqlite_open'))

В Yum install указано, что sqlite и pdo-lite уже установлены.

Я попытался включить sqlite, отредактировав свой локальный php.ini, добавив:

; Enable sqlite3 extension module
extension=sqlite3.so

Я проверил основной файл php.ini (/etc/php.ini), и нет ничего особенного в его отключении. Фактически, в php.d загружен файл sub-conig, который также определяет это расширение, а также другое для pdo-sqlite

Я бегаю из того, что ищу или пытаюсь. Какие-либо предложения.

Как мне узнать, где указана конфигурация PHP?

Спасибо

Когда бы ты ни делал phpinfo(); убедитесь, что вы смотрите на правильный php.ini (я думаю, все мы были там, где вы смотрели на один php.ini, когда используется другой php.ini), так что посмотрите на "Loaded Configuration File", и еще одна вещь, посмотрите на" Сканировать этот каталог на наличие дополнительных файлов .ini "в моей системе RHEL, он показывает, что у меня /etc/php.d/ где находится больше файлов php.ini (включая sqlite3.ini).

Удостоверься что /etc/php.ini появился в Загруженный файл конфигурации линия.

--without-sqlite не говорите о том, установлена ​​ли библиотека sqlite или нет. Поиск sqlite в phpinfo() страницу, чтобы узнать, есть ли у вас Библиотека SQLite включен.

В вашем коде неправильно указано имя расширения, поэтому, конечно, он не работает. Правильное имя расширения, как мы видим, sqlite3.

if (!extension_loaded('SQLite')...

Тем не мение.

Сборка PHP RPM фактически перестраивает PHP четыре раза. Он создается один раз без включенных расширений для загрузки в Apache как mod_php, а затем построены снова со всеми расширениями как с объектами общей памяти. И сборка для командной строки PHP, и четвертая сборка, о назначении которой я сейчас забыл.

Итак, что происходит: сборки без встроенных расширений связаны с расширениями, созданными из другой сборки. Таким образом, PHP может сказать, что он был настроен без каких-либо расширений, но все же сможет их использовать.