web-dev-qa-db-ja.com

Enable PHP Ubuntu 11.04サーバーでのpostgresqlのサポート

Php5をサポートするApache2をインストールしましたが、すべて動作します。 PostgreSQLをインストールし、ターミナルを使用して接続し、SQLステートメントを実行できます。

問題:phpスクリプトとPostgreSQLデータベースの間の接続を正常に確立できません。リポジトリからパッケージ化されたphp5-pgsqlをインストールしましたが、接続が機能しません。

次のエラーメッセージが表示されます。

PHP致命的エラー:[X]行で/var/www/[myfile].phpの未定義関数pg_connect()を呼び出します

Ubuntu 5でPHP5のPostgreSQL接続のサポートを有効にするにはどうすればよいですか?

編集:phpinfo()をチェックし、PostgreSQLのエントリが見つかりませんでした。なぜそうなのかわかりません。IDID= ubuntu 11.04用のphp5-pgsqlパッケージをインストールしてください。

動作したのは次のとおりです。Ubuntuリポジトリからphppgadminをインストールしました。これにより、Niceツールが利用可能になっただけでなく、phpがpostgresqlに接続するために必要なパッケージもインストールしました。

その後、すべてが接続パラメーターに含まれていました。 pg_connect()で接続ホスト、ポート、データベース、ユーザー、パスワードをこの順序で定義するまで、ローカルサーバー上のデータベースに接続しません。

Php5-pgsqlを自分でインストールしてもphpからのPostgreSQL接続が有効にならない理由はまだわかりません。これに関する入力は役に立ちます。

21
Adam

php5-pgsqlパッケージをインストールすると問題が解決します 。 (バージョンによって異なります... php4-pgsql for php4)

apt-get install php5-pgsql

Apacheを再起動することを忘れないでください。

/etc/init.d/Apache2 restart

-サーバーを管理しないと難しい場合があることに注意してください。

49

現在、Ubuntu 16.04 LTSを使用しています。私もPhpを使用してPostgress Databaseの値を取得する際に同じ問題に直面していたので、以下のコマンドを使用して解決しました。

私の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> 
4
MD Shahrouq

私が思いつく唯一の結論は、phppgadminがPHP5をPostgreSQLに接続するために必要なすべてのパッケージをインストールしたということです。依存関係を調べましたが、まったくインストールしていないか、正しくインストールしていないと思います。

作業環境があり、そのポイントに到達するための少なくとも1つの方法を知っているので、この分野でこれ以上の助けは必要ありません。

0
Adam