WAMP上集成PostgreSQL

16

我刚刚在Windows 7上安装了PostgreSQL。我正在尝试将PostgreSQL与WAMP服务器集成。为此,在httpd.conf和php.ini文件中进行了以下更改:

1 在httpd.conf文件中添加c:/pathlibpq.dllLoadModule中,然后

2 在php.ini中启用(删除;) extension=php_mod_pgsql.dllextension=php_pgsql.dll

如果我执行以上更改,则本地主机将无法工作。

如果我执行第二个更改,则本地主机可以正常工作但无法加载libpq.dll

我通过PHP脚本检查了pgsql:

<?php
 echo extension_loaded('pgsql') ? 'yes':'no';
 ?>

这个脚本显示“是”,但 Apache 没有加载 libpq.dll。 现在我应该怎么做才能将 PostgreSQL 加载到 Apache2.2*(wamp)中?

7个回答

41
  1. 安装PostgreSQL后,需要将wamp\bin\php\phpX.X.X中的libpq.dll复制到wamp\bin\apache\Apache2.2*\bin中,并重新启动Wampserver。
  2. 在此处下载phpPgAdmin
  3. phpPgAdmin-5.1.zip解压缩到C:\wamp\apps,因此路径将是C:\wamp\apps\phpPgAdmin-5.1
  4. C:\wamp\alias中创建名为phppgadmin.conf的文件。并复制以下内容:

    Alias /phppgadmin "C:/wamp/apps/phpPgAdmin-5.1/" 
    
    <Directory "C:/wamp/apps/phpPgAdmin-5.1/">
        Options Indexes FollowSymLinks MultiViews
        AllowOverride all
            Order Deny,Allow
      Allow from all
    </Directory>
    
    左键单击Wampserver托盘图标。导航到PHP > PHP扩展。然后启用它。
  5. Save the file and restart Wampserver.

  6. a. php_pgsql 
    b. php_pdo_pgsql extension.
    
  7. 打开C:\wamp\apps\phpPgAdmin-5.1\conf\config.inc.php

    a. 找到$conf['servers'][0]['host'] = '';将其更改为$conf['servers'][0]['host'] ='localhost';
    b. 找到$conf['extra_login_security'] = true;true更改为false

  8. 重启所有服务

  9. 转到http://localhost/phppgadmin/并尝试登录。

  10. 默认登录凭据为

    • 用户名="postgres"
    • 密码="root"

参考资料:

  1. WAMP+PostgreSQL集成
  2. 适用于Windows和Wamp的可以下载的phpPgAdmin

谢谢,伙计,它有效了!但是登录phppgadmin的登录凭据是什么? - Raj
1
这是非常有帮助的信息!感谢回答这个问题。它解决了我最初的所有问题,但现在当我尝试导航到http://localhost/phppgadmin/时,我得到一个403错误。有什么想法如何解决吗? - KingRichard
1
找到了。在这里找到的:https://dev59.com/X4Dba4cB1Zd3GeqPK_fd - KingRichard
2
确保您的WAMP路径是正确的。我的路径在c:/wamp64/ - Chad
@sid.s:复制libpq.dll时出现错误,因为它被符号链接(symbolic link)使用,可能存在于wamp\bin\apache\Apache2.2*\bin中。删除或重命名此文件将允许您将其复制到文件夹中。 - Pankaj
显示剩余3条评论

12

谢谢。这些说明有效,我还需将'Require local'添加到phppgadmin.conf文件中:

Alias /phppgadmin "C:/wamp/apps/phpPgAdmin-5.1/" 

<Directory "C:/wamp/apps/phpPgAdmin-5.1/">
    Require local
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Deny,Allow
  Allow from all
</Directory>

添加“Require local”对我也有帮助。谢谢Jessica。 - Pankaj

1

请注意WAMP有两个php.ini文件,一个在Apache目录中,另一个在php目录中(bin\php\php5.X.X)。 Wampserver托盘管理Apache目录中的那个。

要能够运行PHP cli工具(例如php artisan),您需要取消注释php目录中的php.ini中的php_pgsqlphp_pdo_pgsql


1

它起作用了,谢谢你

Alias /phppgadmin "C:/wamp/apps/phpPgAdmin-5.1/" 

<Directory "C:/wamp/apps/phpPgAdmin-5.1/">
    Require local
    Options Indexes FollowSymLinks MultiViews
    AllowOverride all
        Order Deny,Allow
  Allow from all
</Directory>

0

可能最好的起点是msdn文档。 看起来最简单的修复方法是将%PATH%环境变量系统范围设置为包含libpq.dll路径。

请注意,%PATH是最后搜索的,因此如果将libpq放入系统目录或Apache目录中,它将首先被捕获。


0

不确定您为什么要查看此页面,但即使尝试了上述所有方法并遵循其他页面的指示,只因为您已经安装了WAMP,那么请不要浪费时间。

请查看下面的链接https://bitnami.com/,它可以让您轻松地将WAMP与PostgreSQL集成,无需使用WAMP服务器。

现在就开始您的项目吧!


0
  1. 从WAMP图标启用Postgresql扩展后,我能够获得postgresql管理页面,但是bin/cake bake all命令失败并显示错误“php extn missing”。 (参考@rails_id的帖子完成了与WAMP的postgresql集成)

  2. 在cmd提示符中使用php -m检查,没有“postgresql”模块。

  3. 进入php安装目录,在我的情况下是“C:\wamp64\bin\php\php7.2.10”,并在php.ini文件中启用(删除;)以下pg模块:

    extension=pdo_pgsql extension=pgsql

  4. 重新启动wamp服务。

  5. bin/cake bake all从命令提示符中正常工作。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接