Установка PDO-драйверов для PostgreSQL на Mac (с использованием Zend для eclipse)
-
09-06-2019 - |
Вопрос
Как я могу заставить PDO работать на моем Mac (os x 10.5)?Я использую встроенный php и php в Zend / Eclipse.Похоже, я вообще не могу найти полезных драйверов для этого.
Решение
Недавно мне пришлось установить драйвер PDO_PGSQL на Leopard, и я столкнулся с множеством проблем.В поисках ответов я наткнулся на этот вопрос.Теперь я успешно установил его, и поэтому, хотя этот вопрос довольно старый, я надеюсь, что то, что я нашел, может помочь другим (таким же, как я), которые, несомненно, столкнутся с подобными проблемами.
Первое, что вам нужно будет сделать, это установите ГРУШУ, если вы еще этого не сделали, поскольку по умолчанию он не установлен в 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 будет запущен.
Другие советы
Взгляните на этот пакет PECL: PDO_PGSQL
Я сам этого не пробовал, но мне было интересно поиграть с Postgres как альтернативой MySQL.Если у меня скоро будет возможность попробовать это, я выложу здесь свои результаты на случай, если это поможет.
Я не уверен, что это поможет конкретно с драйверами PDO, но вы могли бы заглянуть в Картографический стек BitNami.
У меня была масса проблем с Postgres, PHP и Apache на моем Mac, отчасти это было связано с 64- или 32-разрядными версиями некоторых или всех из них.Пока что установка BitNami MAPPStack в целом работает нормально.Возможно, это также поможет с вашими проблемами PDO.
Установите новую версию php через brew и перезапустите сервер, а также php -v, все проблемы будут удалены.
Это то, что сработало у меня
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.