9

我的任务是创建一个访问现有 PostgreSQL 数据库的 PHP 应用程序。这是我第一次使用 Postgre,更不用说 PHP 已经安装在应该运行应用程序的 Linux 机器上。我没有设置这些东西的经验,我只是编码。

我的问题是我似乎无法让 Postgre 扩展在 PHP 中工作。我检查了 php.ini 文件,没有“extension=...”行。所以我添加了“extension=pgsql.so”。然后我检查了“extension_dir”,发现里面只有 2 个文件(ldap.so、phpcups.so),我添加了一个从另一个 Linux 机器上获取的 pgsql.so 文件。我重新启动了httpd。它不起作用。我在 phpinfo() 中找不到任何“pgsql”或“postgre”。

原谅我的菜鸟。我对Linux知之甚少。如果您能指出正确的方向,我将不胜感激。


我使用了 number5 给出的建议:

伙计,我在 RedHat 上。我使用了你给出的命令的“yum”版本,我得到了这个:

[root@perseus ~]# yum install php-pgsql 正在加载“installonlyn”插件 设置安装过程 设置存储库 无法检索镜像列表http://mirrorlist.centos.org/?release=5&arch=x86_64&repo=extras错误为 [Errno 4] IOError:错误:无法为 repo 找到有效的 baseurl:extras


不幸的是,我使用的 Linux 服务器没有连接到 Internet。还有其他安装方式吗?

4

4 回答 4

10

这取决于您使用的是哪个 Linux 发行版。

如果您使用的是 Ubuntu/Debian,您需要:

sudo apt-get install php5-pgsql

Fedora/CentOS

yum install php-pgsql

通常你可以通过以下方式找出你所在的发行版:

ls /etc/*-release
于 2010-05-14T07:51:55.903 回答
3

在 CentOS 扩展上,为 /etc/php.d 中的每个 php 扩展创建一个单独的 *.ini 文件

所以,不要改变主 *.ini 文件,而是创建 /etc/php.d/pgsql.ini 并在那里添加一行

extension=pgsql.so

然后你需要使用重启 Apache

service httpd restart

但最好的自动化方法是只输入

yum install php-pgsql

在您的情况下,由于 yum 配置中的一些问题而无法正常工作。转到 /etc/yum-repos.d 类型

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

向下滚动到 [extras] 部分并确保它是这样的:

#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
于 2010-05-14T08:21:45.623 回答
1
  • 删除您从另一台机器复制的 .so 文件(尽管它可能有效,但无需冒险)
  • 使用发行版的包管理器安装 php_pgsql/php5_pqsql 模块
  • 重新启动 apache 并重试。也许该模块已自动添加到 .ini 文件中
  • 如果没有,请运行<?php echo 'ini: ', get_cfg_var('cfg_file_path');以查看您必须编辑的 php.ini
  • 编辑这个ini文件
  • 重启阿帕奇
于 2010-05-14T07:52:59.537 回答
-1

我的操作系统 Linux mint kde 也有同样的问题

pg_connect()

如果您使用的是php5.6,则必须安装

sudo apt-get install php5.6-pgsql

在您必须更改“php.ini”文件中的扩展名之后。

;extension=php_pgsql.dll

'dll' 到 'so'

例如

extension=php_pgsql.so
于 2017-01-13T17:44:29.593 回答