3

嗨,我在尝试启动 phpPgAdmin 时遇到此错误:

您的 PHP 安装不支持 PostgreSQL。您需要使用 --with-pgsql 配置选项重新编译 PHP。

我正在使用 XAMPP 版本 1.7.7、Postgresql 9.2.4 64 位和 phpPgAdmin 5.1。

我已经做了以下事情:

  1. 打开config.inc.php找到C:\xampp\phpPgAdmin\conf\并设置extra_login_securityfalse
$conf['extra_login_security'] = false;
  1. 在 中查找php.ini文件C:\xampp\php\,然后查找该行; extension = php_pgsql.dll。去掉标签;,这样的结果就是extension = php_pgsql.dll

(虽然我找到了 php.ini- 生产和开发,所以我都取消了它们的注释)

  1. 打开C:\xampp\apache\conf\extra\httpd-xampp.conf并在部分<IfModule mime_module>添加
Alias /phppgadmin "c:/xampp/phpPgAdmin/"
<Directory "c:/xampp/phpPgAdmin">
    AllowOverride AuthConfig
    Order allow,deny
    Allow from all
</Directory>
  1. 加载文件“C:/xammp/php/libpq.dll”</li>

但我仍然收到此错误。有人能帮我吗?

4

3 回答 3

8

我从一开始就写答案,并不是你尝试的一切都是错误的。

xampp 已启动并正在运行。

下载 phpPgAdmin 并将其复制到 c:\xampp\phpPgAdmin

修改配置文件

C:\xampp\apache\conf\extra\httpd-xampp.conf

添加像 phpMyAdmin 部分的 phpPgAdmin 部分:

Alias /phppgadmin "C:/xampp/phpPgAdmin/"
<Directory "C:/xampp/phpPgAdmin">
    AllowOverride AuthConfig
    Require all granted
</Directory>

重启apache并在浏览器中输入

http://127.0.0.1/phppgadmin/

现在你会得到消息: install php with --pqsql option

Postgres 安装和配置:

即使您有 64 位 Windows,也安装 postgresql 32 位(这不是开玩笑)

Postgres 现已启动并运行

再次修改配置文件

C:\xampp\apache\conf\extra\httpd-xampp.conf

添加以下行(在我的例子中 PostgreSQL 安装在 C:/xampp/PostgreSQL 中):

LoadFile "C:/xampp/PostgreSQL/bin/libpq.dll"

在以下现有行之前

LoadFile "C:/xampp/php/php5ts.dll"
LoadModule php5_module "C:/xampp/php/php5apache2_4.dll"

修改配置文件

C:\xampp\php\php.ini

通过删除 ';' 取消注释以下行

;extension=php_pgsql.dll

重启apache并在浏览器中再次输入

http://127.0.0.1/phppgadmin/

它应该工作,它对我有用

于 2014-02-07T12:43:04.950 回答
1

不需要安装 postgresql 32 位版本只需在 php.ini 文件中启用 php_pgsql.dll 扩展并重新启动 apache 服务

事件虽然你得到像“cdbconnection failed to open the db connection could not find driver postgresql”这样的错误然后

请在 php.ini 文件中添加以下行并重新启动 apache

扩展=php_pdo_pgsql

现在它应该可以正常工作

于 2015-04-06T18:58:18.433 回答
-1

只需确保C:\xampp\php\php.ini通过删除';'取消注释以下行

extension=php_pdo_pgsql
extension=pgsql

或者,如果您没有这些行,则添加它们。

然后重新启动 Apache,它应该可以正常工作。

于 2020-04-26T20:39:25.727 回答