2010-05-14 1 views
8

Мне было поручено создать приложение PHP, которое обращается к существующей базе данных PostgreSQL. Это мой первый опыт работы с Postgre, не говоря уже о том, что PHP уже установлен в ящике Linux, на котором должно запускаться приложение. У меня нет опыта в настройке этого материала, я просто код.pgsql.so не загружается в PHP

Мой вопрос в том, что я не могу получить расширение Postgre, работающее на PHP. Я проверил файл php.ini, линий «extension = ...» не было. Поэтому я добавил «extension = pgsql.so». Затем я проверил «extension_dir» и обнаружил, что там было всего 2 файла (ldap.so, phpcups.so), я добавил файл pgsql.so, взятый из другого Linux-пакета. Я перезапустил httpd. И это не сработает. Я не мог найти никаких «pgsql» или «postgre» в phpinfo().

Простите мою пустоту. Я слишком мало знаю Linux. Я бы очень признателен, если вы можете указать мне в правильном направлении.


Я использовал предложение, данное number5:

Чувак, я на RedHat. Я использовал «ни» версию команды вы дали, и я получил это:

[корень @ Перси ~] # ня установить PHP-PGSQL Загрузки «installonlyn» плагина Настройку Установку процесса Настройку репозитории не удалось получить mirrorlist http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=extras ошибка [Errno 4] IOError: ошибка: не удается найти правильный BaseUrl для репо: статистов


СОЖАЛЕНИЮ, сервер Linux я использую нЕ подключен к Интернету. Любой другой способ установки?

+1

Это выглядит как вопрос для ServerFault. –

+0

надеюсь, что вы уже решили свою проблему. Если нет, вы можете загрузить необходимые rpms и установить с помощью команды rpm. wget http://mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/php-pdo-5.1.6-23.2.el5_3.x86_64.rpm wget http://mirrors.gigenet.com/ centos/5.4/os/x86_64/CentOS/php-pgsql-5.1.6-23.2.el5_3.x86_64.rpm rpm -ivh * .rpm Если он говорит вам, что некоторые депиляции отсутствуют, вы можете найти его здесь http : //mirrors.gigenet.com/centos/5.4/os/x86_64/CentOS/ ссылка для скачивания предполагает, что ваш CentOS 5.4 x86_64 – number5

+0

спасибо number5, super! – Obay

ответ

9

Это зависит от того, какой дистрибутив Linux вы используете.

Если вы используете Ubuntu/Debian, вам нужно:

sudo apt-get install php5-pgsql 

Fedora/CentOS

yum install php-pgsql 

обычно вы можете узнать, какой дистрибутив вы на по:

ls /etc/*-release 
+0

Чувак Я добавил несколько комментариев выше – Obay

1
  • Удалите файл .so, который вы скопировали с другой машины e (хотя это может сработать, нет необходимости рисковать)
  • Используйте диспетчер пакетов распространения для установки модуля php_pgsql/php5_pqsql
  • Перезапустите apache и повторите попытку. Может быть, модуль был добавлен в файл .ini автомагический
  • Если нет, запустите <?php echo 'ini: ', get_cfg_var('cfg_file_path');, чтобы увидеть, какие php.ini вы должны редактировать
  • редактировать этот INI-файлы
  • рестарта Апач
3

На Расширения CentOS создают отдельный файл * .ini по одному на каждое расширение php в /etc/php.d

Итак, не изменяйте основной файл * .ini, а создавайте /etc/php.d/pgsql.INI и добавить туда линию

extension=pgsql.so 

Затем вам нужно будет перезапустить Apache с помощью

service httpd restart 

Но лучший автоматизированный способ это просто тип

yum install php-pgsql 

В вашем случае, Ждут» t из-за некоторых проблем в конфигурации yum. Перейти к /etc/yum-repos.d Type

nano /etc/yum.repos.d/CentOS-Base.repo 

Прокрутка вниз в разделе [дополнительные] и убедитесь, что это так:

#additional packages that may be useful 
[extras] 
priority=1 
name=CentOS-$releasever - Extras 
=extras 
#baseurl=http://mirror.centos.org/centos/$releasever/extras/$basearch/ 
gpgcheck=1 
gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-5 

исправьте при необходимости сохраните файл (Ctrl- X) и сделайте следующее:

yum clean all 
yum upgrade 

Затем попробуйте повторить

yum install php-pgsql 
+0

: Ошибка конфигурации: Файл содержит ошибки анализа: файл: /////etc/yum.repos.d/CentOS-Base.repo [строка 41]: '= extras \ n ' – Obay

+0

Кто говорит? Какова ваша версия CentOS? Может быть, вы должны удалить строку «приоритет»? –

-1

Моя операционная система Linux Mint KDE и там была такая же проблема

pg_connect()

Вы должны установить, если вы будете использовать php5.6

sudo apt-get install php5.6-pgsql 

После вы должны изменить имя Удлинитель в «php.ini» файл.

;extension=php_pgsql.dll 

'длл' до 'так'

Например

extension=php_pgsql.so 
+1

Это похоже на другую проблему. Для начала в OP уже была такая строка конфигурации точно так же, как написано. –

Смежные вопросы