Как установить PostgreSQL и связать его с PHP ?

Собственно появилась нужда в использованнии PostgreSQL в одном из проекте. Решил установить самостоятельно - наступил на грабли. Подробности под катом.

  • Linux Mint

    Открываем командную строку и там выполняем следующее по порядку:

    1. Устанавливаем PostgreSQL sudo apt-get install postgresql
    2. Добавляем нового юзера:
      1. sudo su - postgres
      2. psql
      3. CREATE USER new_super_user WITH SUPERUSER CREATEDB CREATEROLE PASSWORD 'password';
      4. \q
      5. exit
    3. Добавляем поддержку PostgreSQL в PHP:
      1. sudo apt-get install php5-pgsql
      2. Далее на всякий случай добавляем extension=php_pgsql.so в php.ini
      3. sudo service apache2 restart

  • OS X (10.9.5)

    Cкачиваем Postgres.app и устанавливаем её просто переместив в папку Applications. Всё, PostgreSQL установлен. Для добавления нового юзера запускаем Postgres.app, открываем консоль и выполняем CREATE USER new_super_user WITH SUPERUSER CREATEDB CREATEROLE PASSWORD 'password';

    С PHP тут немного сложнее... Поскольку нативной пакетной системы на маке нету, да и я не любитель засорять систему разным хламом - будем компилировать сами. Для начала узнаем версию своего PHP php -v:

    PHP 5.4.30 (cli) (built: Jul 29 2014 23:43:29)
    Copyright (c) 1997-2014 The PHP Group
    Zend Engine v2.4.0, Copyright (c) 1998-2014 Zend Technologies
    В моём случае мне нужно качать PHP версии 5.4.*. Скачали, разархивировали, перешли в ext/pdo_pgsql/. Далее:
    1. phpize
    2. ./configure --with-pdo-pgsql=/Applications/Postgres.app/Contents/Versions/9.4 - тут строит обратить внимание на то, что путь нужно указывать именно до самого Postgres.
    3. make
    4. sudo make install
    5. Далее на всякий случай добавляем extension=php_pgsql.so в php.ini
    6. Перегружаем апач sudo apachectl restart

Вот и всё. По быстрому проверить установилось ли можно php -r 'print_r(PDO::getAvailableDrivers());'

Fork me on GitHub