【问题标题】:Enable PHP support for postgresql in Ubuntu 11.04 server在 Ubuntu 11.04 服务器中启用对 postgresql 的 PHP 支持
【发布时间】:2011-11-30 06:13:50
【问题描述】:

我已经安装了支持 php5 的 Apache2,一切正常。我已经安装了 PostgreSQL,并且能够使用终端连接到它并执行 SQL 语句。

问题:我无法在我的 php 脚本和 PostgreSQL 数据库之间建立有效的连接。我已经安装了从存储库打包的 php5-pgsql,但是连接不起作用。

我收到以下错误消息:

PHP 致命错误:在第 [X] 行的 /var/www/[myfile].php 中调用未定义函数 pg_connect()

如何在 ubuntu 11.04 的 PHP5 中启用对 PostgreSQL 连接的支持?

编辑:检查 phpinfo() 并没有找到 PostgreSQL 的条目。我不知道为什么会这样,我确实为 ubuntu 11.04 安装了 php5-pgsql 包。

这是有效的:我从 Ubuntu 存储库安装了 phppgadmin。这不仅为我现在提供了一个不错的工具,它还安装了 php 连接到 postgresql 所需的包。

在那之后,一切都在连接参数中。它不会连接到本地服务器上的数据库,直到我在 pg_connect() 中按顺序定义了连接主机、端口、数据库、用户和密码。

我仍然不知道为什么我自己安装 php5-pgsql 并没有启用来自 php.ini 的 PostgreSQL 连接。对此的任何意见都会有所帮助。

【问题讨论】:

  • echo phpinfo();看看是否启用了PostgreSQL数据库

标签: php postgresql apache2 ubuntu-11.04


【解决方案1】:

Install the php5-pgsql package solves the problem。 (取决于版本... php4-pgsql for php4)

apt-get install php5-pgsql

记得重启 Apache。

/etc/init.d/apache2 restart

--注意如果你不管理你的服务器可能会很困难。

【讨论】:

  • 在Fedora中可以输入dnf install php-pgsql
  • 适用于 Ubuntu 14.04、apache2、php5、postgres 9.11.3。看起来很奇怪,但我之前做过:“service apache2 restart”并跳过了“sudo /etc/init.d/apache2 restart”方法。刚才我做了“sudo /etc/init.d/apache2 restart”方法而不是使用“服务”,突然我不再得到 PHP/postgress 配置数据库连接错误。谢谢!
【解决方案2】:

目前,我使用的是 Ubuntu 16.04 LTS。 我在使用 Php 获取 Postgress 数据库值时也遇到了同样的问题,所以我使用以下命令解决了它。

我的 PHP 版本是 7.0,所以我尝试了以下命令。

apt-get install php-pgsql

记得重启 Apache

/etc/init.d/apache2 restart

以下是我的代码,可能有人从中受益:

- testdb.php

<html> 
    <body> 
        <table border="0" cellspacing="0" cellpadding="0"> 
            <tr> 
                <td> 
                    Friend ID 
                </td> 
                <td> 
                     Name 
                </td> 

            </tr> 
        <?php 
        $db = pg_connect('host=localhost dbname=postgres user=postgres password=root port=5432'); 

        $query = "SELECT * FROM account"; //account is name of table 

        $result = pg_query($query); 
        if (!$result) { 
            echo "Problem with query " . $query . "<br/>"; 
            echo pg_last_error(); 
            exit(); 
        } 

        while($myrow = pg_fetch_assoc($result)) { 
            printf ("<tr><td>%s</td><td>%s</td></tr>", $myrow['id'], htmlspecialchars($myrow['name']));
        } 
        ?> 
        </table> 
    </body> 
</html> 

【讨论】:

    【解决方案3】:

    我能得出的唯一结论是 phppgadmin 安装了所有需要的包以使 PHP5 连接到 PostgreSQL。我查看了依赖项,我认为我要么根本没有安装它们,要么没有正确安装它们。

    我在这个领域不需要更多帮助,因为我有一个有效的设置并且知道至少一种方法可以达到这一点。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多