ホームページ  >  に質問  >  本文

php pdo_pgsql ファイルは存在しますが認識されません

Ubuntu (20.4?) で DigitalOcean Droplet を実行する

私のユーザー A には root 権限があります。これらは、postgres データベースの userA にも接続されています。

私が使用しているソフトウェアの設定により、postgresdb には特定のユーザー名が必要です。大量のデータがオンラインに公開されるのを避けるため、これを userB と呼びます。これは Linux と postgres の両方のユーザーです。

基本的に (uname,dbname,pdo,options) を入力として受け取る php コマンドを実行していますが、pdo ファイルが見つからないため現在失敗しています。

いくつかの投稿を閲覧しました。誰かが、すべての php.ini ファイル内のすべての pgsql 行と pdo_pgsql 行のコメントを解除することを提案しました。私は、本番環境、開発環境、またはファイルの汎用バージョンに関係なく、これを実行しました。

userA および userB としてコマンドを実行すると、このエラーが発生します。

リーリー

ただし、pdo_pgsql.so は実際にはその場所に存在します。 (探しているのは pdo_pgsql という名前のファイルではなく、pdo_pgsql.so ですか?)

php Web サイトには、

を実行するよう記載されています リーリー

コマンドですが、configure がどのフォルダーにあるかは実際にはわかりません。これは cli からインストールできるパッケージではありません。 (https://www.php.net/manual/en/ref.pdo-pgsql.php)

他のページには、最初に autoconf をインストールする必要があると書かれています (https://unix.stackexchange.com/questions/158960/can-not-run-configure-command-no- such-file-or-directory) が、これは生産していません。 /使用可能なコマンドを設定してください。

PDO ファイルの場所を表示するには、Apache の conf ファイルを更新する必要があるという記事も見つけましたが、サーバーはまだ実行していません。ローカルの pgsql にデータを入力する php ファイルを実行するだけです。データベース。 (pgsql 拡張機能がロードされていません)

###ランニング### リーリー

与えられた

リーリー

API のカスタマー サービスによれば、

が返されるはずです。 リーリー

ただし、選択したデータベース ソフトウェアに応じて、さまざまなドライバーの例が複数示されていると思います。

何をすればいいのか全く分かりません。

更新:

phpで使用されるphp.iniファイルを編集して試してみました

リーリー

使ってみました

リーリー

pdo_pgsql および pdo_pgsql.so ファイルのパスを見つけます。 php.ini ファイルに対して 4 つの異なる編集を試みました。 2 デフォルトの pgsql 拡張機能のコメントを (一度に 1 つずつ) 解除します。 2 つは、locate によってシステム上で見つかった pdo_pgsql ファイルへの異なるファイル パスです。

リーリー

次のユーザー要件に従って出力します

ああああ

P粉191610580P粉191610580170日前332

全員に返信(1)返信します

  • P粉463824410

    P粉4638244102024-03-22 09:12:49

    DEV 環境で何かが動作しない場合は、PROD で試さないでください。DEV 環境を使用する目的が損なわれます。

    php.ini には、pgsql を有効にする方法の例がすでに含まれているはずです:

    リーリー

    module=

    ではありません

    PHP のバージョンがわかりませんが、ライブラリのバージョンが間違っているようですので、適切なバージョンの php7.X-pgsql がインストールされていることを確認してください。

    次の出力を質問に追加できる場合があります:

    リーリー

    返事
    0
  • キャンセル返事