PHP предупреждение: не удается загрузить динамическую библиотеку
Ok у меня есть 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 ответов
расширение DLL вы включили на самом деле для Windows. На Mac и других платформах *nix они на самом деле являются файлами SO.
я на Mac, а также кажется, что модули SQLite уже загружены. Вы должны иметь возможность комментировать эти строки в своем php.ini
file, перезапустите Apache и используйте SQLite без необходимости что-либо делать. Модули SQLite были включены столько, сколько я помню.
если он действительно не включен, вам придется скомпилировать модули от источника. Для этого необходимо установить Инструменты Разработчика Apple.
для компиляции с нуля (из командной строки):
-
скачать исходный код PHP. Вам нужно будет загрузить тот, который соответствует версии, уже установленной в вашей системе. Чтобы узнать, какой из них вы используете, введите
php -v
из командной строки. - извлеките архив, который вы загрузили с помощью
tar -zxvf
далее следует имя файла. - тип
cd php-5.3.x/ext/sqlite3/
(где "5.3.x "должен быть заменен номером вашей версии, а" sqlite3 "может быть любым из модулей, которые вы хотите установить из своего списка выше минус префикс" php_"). - тип
phpize
. - тип
./configure
. - тип
make
. - тип
sudo make install
. - добавить
extension=sqlite3.so
наphp.ini
(снова убедитесь, что вы заменили sqlite3.таким образом, с именем других расширений, если вы компилируете другие.)
наконец, перезапустите Apache, и вы должны быть сделаны.
открыть php.ini. Найдите строку, которая определяет местоположение ваших расширений. В моем случае (Windows machine) он выглядит так:
extension_dir = "C:\xampp\php\ext"
Это дает вам место, где находятся все ваши расширения. Откройте его и проверьте, действительно ли существуют расширения SQLite.
кроме того, убедитесь, что ваши расширения предназначены для компьютера Mac. Их расширение имени файла должно быть "dylib" или, возможно," so " (не уверен - у меня нет Mac), в то время как "dll" -это динамическое расширение файла библиотеки для Windows (AFAIK).