Предупреждение PHP: невозможно загрузить динамическую библиотеку - PullRequest
6 голосов
/ 29 июня 2011

Хорошо, у меня PHP работает на моем Mac OS X сервере Apache 2.У меня проблема в том, что не могу найти расширения, которые позволяют мне подключаться к базе данных sqlite.

extension = php_sqlite.dll
extension = php_pdo_sqlite.dll
extension = php_sqlite3.dll

Я получаю эту ошибку сейчас, когда я раскомментировал эти расширения ..

PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php/extensions/no-debug-non-zts-20090626/php_sqlite3.dll' - dlopen(/usr/lib/php/extensions/no-debug-non-zts-20090626/php_sqlite3.dll, 9): image not found in Unknown on line 0

Это та же ошибка для всех 3.
Теперь я читал в разных местахв Интернете может быть, что они не установлены на моем Mac, но я не могу найти каталог PHP или где-либо еще, где они будут!
Я очень новичок в этом, поэтому любая помощь будет великой дискотекой

Ответы [ 3 ]

13 голосов
/ 29 июня 2011

Расширение DLL, которое вы включили, фактически для Windows. На Mac и других * nix платформах они на самом деле являются SO файлами.

Я на Mac, и похоже, что модули SQLite уже загружены. Вы должны иметь возможность закомментировать эти строки в вашем php.ini файле, перезапустить Apache и использовать SQLite без необходимости что-либо делать. Модули SQLite были включены, насколько я помню.

Если он действительно не включен, вам придется скомпилировать модули из исходного кода. Для этого необходимо установить Apple Developer Tools .

Чтобы скомпилировать с нуля (из командной строки):

  1. Скачать исходный код PHP . Вам нужно будет скачать ту, которая соответствует версии, уже установленной в вашей системе. Чтобы узнать, какой из них вы используете, введите php -v в командной строке.
  2. Извлеките загруженный вами архив, используя tar -zxvf и имя файла.
  3. Введите cd php-5.3.x/ext/sqlite3/ (где «5.3.x» следует заменить номером вашей версии, а «sqlite3» может быть любым из модулей, которые вы хотите установить из списка выше, за исключением префикса «php_»).
  4. Тип phpize.
  5. Тип ./configure.
  6. Тип make.
  7. Тип sudo make install.
  8. Добавьте extension=sqlite3.so к вашему php.ini (снова обязательно замените sqlite3.so на имя других расширений, если вы компилируете остальные).

Наконец, перезапустите Apache, и все готово.

0 голосов
/ 19 июня 2018

Попробуйте удалить, а затем переустановить пакеты:

brew rm mcrypt
brew install mcrypt
0 голосов
/ 29 июня 2011

Откройте php.ini. Ищите строку, которая определяет местоположение ваших расширений. В моем случае (Windows-машина) это выглядит так:

extension_dir = "C:\xampp\php\ext"

Это дает вам местоположение, где расположены все ваши добавочные номера. Откройте его и проверьте, действительно ли есть ваши расширения SQLite.

Кроме того, убедитесь, что ваши расширения действительно предназначены для компьютеров Mac. Их расширение файла должно быть «dylib» или, может быть, «так» (не уверен - у меня нет Mac), в то время как «dll» - это расширение файла динамической библиотеки для Windows (AFAIK).

...