Установка PDO-драйверов для PostgreSQL на Mac (используя Zend для eclipse) - PullRequest
10 голосов
/ 15 сентября 2008

Как мне заставить PDO работать на моем mac (os x 10.5)? Я использую встроенный php и php в Zend / Eclipse. Не могу найти полезных драйверов для него вообще.

Ответы [ 5 ]

31 голосов
/ 17 августа 2009

Мне недавно пришлось установить драйвер PDO_PGSQL на Leopard, и я столкнулся с множеством проблем. В поисках ответов я наткнулся на этот вопрос. Теперь я успешно установил его, и поэтому, хотя этот вопрос довольно старый, я надеюсь, что то, что я нашел, может помочь другим (таким как я), которые, несомненно, столкнутся с подобными проблемами.

Первое, что вам нужно сделать, это установить PEAR , если вы этого еще не сделали, поскольку по умолчанию он не установлен на Leopard.

Как только вы это сделаете, используйте установщик PECL для загрузки пакета PDO_PGSQL:

$ pecl download pdo_pgsql
$ tar xzf PDO_PGSQL-1.0.2.tgz

(Примечание: вам может потребоваться запустить pecl от имени суперпользователя, т.е. sudo pecl.)

После этого, поскольку установщик PECL не может установить расширение напрямую, вам нужно будет собрать и установить его самостоятельно:

$ cd PDO_PGSQL-1.0.2
$ phpize
$ ./configure --with-pdo-pgsql=/path/to/your/PostgreSQL/installation
$ make && sudo make install

Если все идет хорошо, у вас должен быть файл с именем "pdo_pgsql.so", расположенный в каталоге, который должен выглядеть примерно как "/usr/lib/php/extensions/no-debug-non-zts-20060613/" (при установке PECL должен был быть выведен каталог, в который было установлено расширение).

Чтобы завершить установку, вам нужно отредактировать файл php.ini. Найдите раздел с надписью «Динамические расширения», и под списком (возможно, закомментированных) расширений добавьте следующую строку:

extension=pdo_pgsql.so

Теперь, если вы впервые устанавливаете расширения PHP, вам нужно выполнить два дополнительных шага, чтобы это заработало. Сначала в php.ini найдите директиву extension_dir (в разделе "Пути и каталоги") и измените ее на каталог, в который был установлен файл pdo_pgsql.so. Например, моя директива extension_dir выглядит следующим образом:

extension_dir = "/usr/lib/php/extensions/no-debug-non-zts-20060613"

Второй шаг, если вы используете 64-битный Intel Mac, включает в себя запуск Apache в 32-битном режиме. (Если есть лучшая стратегия, я хотел бы знать, но сейчас это лучшее, что я мог найти.) Для этого отредактируйте файл списка свойств, расположенный по адресу /System/Library/LaunchDaemons/org.apache.httpd.plist. Найдите эти две строки:

<key>ProgramArguments</key>
<array>

Под ними добавьте эти три строки:

<string>arch</string>
<string>-arch</string>
<string>i386</string>

Теперь просто перезапустите Apache, и PDO_PGSQL будет запущен и работает.

2 голосов
/ 15 сентября 2008

Посмотрите на этот пакет PECL: PDO_PGSQL

Я сам не пробовал, но мне было интересно играть с Postgres в качестве альтернативы MySQL. Если у меня будет возможность попробовать это в ближайшее время, я приведу здесь результаты, если это поможет.

1 голос
/ 30 апреля 2017

Установите новую версию php через brew и перезапустите сервер, и php -v, все проблемы будут удалены.

1 голос
/ 15 сентября 2008

Я не уверен, что это поможет конкретно с драйверами PDO, но вы можете взглянуть на MAPPStack BitNami .

У меня было множество проблем с Postgres, PHP и Apache на моем Mac, некоторые из них были связаны с 64-разрядными или 32-разрядными версиями некоторых или всех из них. Пока что установка BitNami MAPPStack в целом работает нормально. Возможно, это поможет и с вашими проблемами с PDO.

0 голосов
/ 08 марта 2016

Вот что у меня сработало

brew install php55-pdo-pgsql

Это устанавливает PHP 5.5.32 и PostgreSQL 9.5. У меня уже был установлен PostgreSQL 9.4, поэтому я удалил версию homebrew:

brew uninstall postgres

Затем необходимо обновить /etc/apache2/httpd.conf, чтобы указать правильную версию PHP и перезапустить Apache:

LoadModule php5_module /usr/local/Cellar/php55/5.5.32/libexec/apache2/libphp5.so

Моя версия OSX - Yosemite.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...