Назад | Перейти на главную страницу

Как добавить поддержку Postgres в PHP, установленный Homebrew?

Я уже установил и настроил новую версию PHP с Homebrew, включая поддержку MySQL и XDebug. Это нормально работает. Однако мне также необходимо установить поддержку PostgreSQL. Как мне это сделать?

Я понял, что при первой установке PHP это просто, просто добавив параметр:

homebrew install php53 --with-pgsql

Как я могу добиться чего-то подобного, если мой PHP уже установлен, без его полной переустановки? Или, если я переустановлю, все конфигурации и дополнительные настройки, такие как XDebug, сохранятся?

brew help не показывает все доступные варианты. Чтобы получить более подробную информацию обо всех доступных командах, см. man brew. В вашем случае вы можете запустить команду переустановки:

brew reinstall php53 --with-postgresql

Согласно странице руководства brew, это синоним запуска удаления и последующей установки. Похоже, что brew сначала создаст резервную копию известных файлов конфигурации.

Если варево жалуется, что не может найти pg_config, значит, вам нужно установить postgresql во-первых - это должно быть postgresql; иначе никогда не найду pg_config. Я потратил слишком много времени, пытаясь понять, почему --with-pgsql не работал бы, когда у меня был postgresql92 формулы установлены.

Я могу лично подтвердить, что он не удалит никакие пользовательские файлы конфигурации.

Когда php уже установлен, вы можете просто запустить brew install php55-pdo-pgsql

Если вы используете Homebrew:

ls /usr/local/Cellar/|grep php
php54

Как видите, моя версия Homebrew предназначена для PHP 5.4, поэтому я ищу Homebrew с помощью:

brew search php54

В результатах поиска я вижу php54-pdo-pgsql.

Итак, я устанавливаю драйвер с помощью:

brew install php54-pdo-pgsql

Затем перезапустите PHP.

Thy Follow on Mac OS X, если у вас уже установлен php.

brew install homebrew/php/php55-pdo-pgsql

Если вы установили php с помощью brew, вам необходимо перезапустить php после установки любого модуля:

brew services restart php70

после этого вы можете использовать новый установленный модуль.

У меня была аналогичная проблема с PHP55, и я решил ее с удалением (brew uninstall php55) и переустановкой (brew install php55 --with-postgresql).

Подобно приведенным выше ответам, хотя ни один из них не работал достаточно хорошо в моем случае, я использовал brew reinstall php70 --with-postgresql а не удалить / установить, что не удалось из-за связанных зависимостей.

Следуйте за этим с brew services restart php70 как предложено выше, и sudo apachectl restart для хорошей меры.