Я не могу добавить драйвер PDO pgsql в MAMP на Mac Big Sur

#postgresql #mamp #psql #php-pgsql

#postgresql #mamp #psql #php-pgsql

Вопрос:

Я установил MAMP и PostgreSQL с помощью pgAdmin4, но у меня возникли некоторые проблемы.

Я получаю сообщение psql «команда не найдена ошибка» в моем терминале. Я добавил export PATH=/Library/PostgreSQL/10/bin:$PATH в ~/.bash_profile , но всякий раз, когда я снова открываю терминал, я снова получаю ту же ошибку.

Всякий раз, когда я пытаюсь выполнить composer или php artisan в моем проекте Laravel, я получаю следующие ошибки, но я все еще могу перенести базу данных:

Warning: PHP Startup: Unable to load dynamic library 'pdo_pgsql' (tried: /usr/local/lib/php/pecl/20180731/pdo_pgsql (dlopen(/usr/local/lib/php/pecl/20180731/pdo_pgsql, 9): image not found)

Warning: PHP Startup: Unable to load dynamic library 'pgsql' (tried: /usr/local/lib/php/pecl/20180731/pgsql (dlopen(/usr/local/lib/php/pecl/20180731/pgsql, 9): image not found)

Получение ошибки «драйвер не найден» при попытке просмотреть проект и PDO Drivers список в phpinfo() , доступны mysql и sqlite, но pgsql недоступен.

MAMP
PostgreSQL 10
PHP: 7.3.21
ОС: MAC Big Sur

Комментарии:

1. Вы разобрались с этим? Я столкнулся с той же проблемой.

2. Какие-либо решения? У меня такая же проблема. Он отлично работает на моей машине под управлением Catalina. Но на Big Sur он не мог загрузиться.

3. Для меня понижение с MAMP 6 до MAMP 5.7 сработало.

Ответ №1:

У меня была такая же проблема, и когда я заглянул в свой php.ini файл, я увидел, что моя папка расширений указана в неправильном месте:

extension_dir = "/Applications/MAMP/bin/php/php7.4.2/lib/php/extensions"

Но у меня нет подходящего каталога для php7.4.2 — я использую php7.4.9 и подтвердил, что расширение существует в этой папке. Чтобы исправить это для меня, мне просто нужно было изменить приведенную выше строку в моем php.ini файле на:

extension_dir = "/Applications/MAMP/bin/php/php7.4.9/lib/php/extensions"

И тогда все было хорошо для меня.

Комментарии:

1. В моей ситуации изменение extension_dir в php.ini сделало свое дело. Спасибо.