postgresql — PHP 5.6.2 + Postgres + Apache 2.4 не работает на Yosemite

Я решил обновить свой Mac до Yosemite, но теперь Postgres не работает.

Это моя среда

apachectl -v

Server version: Apache/2.4.9 (Unix)
Server built:   Sep  9 2014 14:48:20

php -v

PHP 5.6.2 (cli) (built: Oct 24 2014 15:50:08)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.6.0, Copyright (c) 1998-2014 Zend Technologies

PostgreSQL 9.3

Что я пытался сделать:

1. Установите с заваркой

brew tap josegonzalez/php
brew install php56 --with-apache --with-mysql  --with-intl --with-pgsql=/Library/PostgreSQL/9.3/
brew link --overwrite php56

включить расширение

sudo nano /usr/local/etc/php/5.6/php.ini

и добавить

extension=pdo_pgsql.so

sudo apachectl restart

2. Ручная компиляция

sudo pecl download pdo_pgsql
sudo tar xzf PDO_PGSQL-1.0.2.tgz
sudo cd PDO_PGSQL-1.0.2
sudo phpize

sudo ./configure --with-pgsql=/Library/PostgreSQL/9.3/
sudo make
sudo make -j5 test
sudo make -j5 install

3. Установка phpbrew

sudo phpbrew install --mirror http://br1.php.net  5.6.2 +pdo+pgsql=/Library/PostgreSQL/9.3/bin/

Это определенно не работает, когда я пытаюсь с этим файлом:

<?php

ini_set ("display_errors", "1");
error_reporting(E_ALL);
$host        = "host=127.0.0.1";
$port        = "port=5432";
$dbname      = "dbname=peajetron";
$credentials = "user=peajetron password=peajetron";

$db = pg_connect( "$host $port $dbname $credentials"  ) or die('Could not connect');;
if(!$db){
echo "Error : Unable to open database\n";
} else {
echo "Opened database successfully\n";
}
?>

Когда я пытаюсь этот код, я получаю ту же ошибку:

Fatal error: Call to undefined function pg_connect() in /Library/WebServer/Documents/testConnection.php on line 10

Я не знаю, что я делаю не так. Может кто-нибудь мне помочь?

ОБНОВИТЬ:

В соответствии с phpinfo У меня есть php.ini в /etc/php.ini

В соответствии с помощью PHP я запускаю эту команду

php -c /etc/php.ini

И у меня следующая ошибка:

PHP Warning:  PHP Startup: Unable to load dynamic library
'/usr/local/Cellar/php56/5.6.2/lib/php/extensions/no-debug-non-zts-20131226/php_pdo_pgsql.so'
- dlopen(/usr/local/Cellar/php56/5.6.2/lib/php/extensions/no-debug-non-zts-20131226
/php_pdo_pgsql.so, 9): image not found in Unknown on line 0
PHP Warning:  PHP Startup: Unable to load dynamic library
'/usr/local/Cellar/php56/5.6.2/lib/php/extensions/no-debug-non-zts-20131226/php_pgsql.so'
- dlopen(/usr/local/Cellar/php56/5.6.2/lib/php/extensions/no-debug-non-zts-20131226/php_pgsql.so,
9): image not found in Unknown on line 0

Решение

Я удалил все и переустановил все, в соответствии с этим сообщение

3

Решение

У вас установлено две копии PHP. Mac OS X поставляется с копией PHP, установленной на /usr/bin/php, Когда вы используете homebrew менеджер пакетов, устанавливает пакеты в /usr/local/Cellar а затем символические ссылки их (когда уместно) в /usr/local/bin, Вы можете проверить это, набрав /usr/bin/php -v а также /usr/local/bin/php -v и вы должны получить два разных выхода.

Когда вы установили postgres с homebrewНастроил homebrew установленная копия PHP для использования postgres, Если вы бежите /usr/local/bin/php -r 'phpinfo()', вы должны увидеть, что postgres установлено.

Копия apache у вас настроено использование копии PHP, установленной в Mac OS X, вместо копии, homebrew установлены. Вам необходимо перенастроить Apache для использования правильного модуля PHP.

Попробуйте отредактировать /etc/apache2/httpd.conf файл с вашим любимым текстовым редактором. Найдите строку, которая говорит:

LoadModule php5_module libexec/apache2/libphp5.so

Измените это на:

LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so

Сохраните файл, затем запустите sudo apachectl configtest а также sudo apachectl restart, Направьте свой браузер обратно на phpinfo() файл, и вы должны увидеть postgres настроен правильно.

3

Другие решения

Следуй этим шагам

1) запустите yum install php-pdo_pgsql

2) добавить эти строки в php.ini

extension=pdo_pgsql.so
extension=pgsql.so

3) перезапустить apache

Готово

1

Я исправил эту проблему, используя:

brew install php56 --with-mysql --with-homebrew-apache

А затем добавьте в httpd.conf

LoadModule php5_module /usr/local/opt/php56/libexec/apache2/libphp5.so
-1
По вопросам рекламы [email protected]