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粉4638244102024-03-22 09:12:49
DEV 環境で何かが動作しない場合は、PROD で試さないでください。DEV 環境を使用する目的が損なわれます。
php.ini
には、pgsql を有効にする方法の例がすでに含まれているはずです:
は module=
PHP のバージョンがわかりませんが、ライブラリのバージョンが間違っているようですので、適切なバージョンの php7.X-pgsql
がインストールされていることを確認してください。
次の出力を質問に追加できる場合があります:
リーリー