schedule2019-05-15

LaravelでPostgreSQLに接続できないエラー|could not find driver

Laravelから外部サーバーに立てたPostgreSQLに接続できないエラーcould not find driverを解消した。

環境

  • CentOS 7
  • Laravel 5.8
  • php7.3
  • Nginx

php7.3はremiリポジトリのものを利用している。詳しくは下記の記事参照。

PostgreSQLに関して、.env\config\database.phpの設定をしてある。

.env

DB_CONNECTION=pgsql
DB_HOST=ホスト先のサーバIP
DB_PORT=5432
DB_DATABASE=db_name
DB_USERNAME=user_name
DB_PASSWORD=secret

\config\database.php

'default' => env('DB_CONNECTION', 'pgsql'),

デフォルトをpgsqlに変更。

現象

コントローラー内でテーブルからデータを取得をする処理を実行した際に下記のエラー。

[2019-05-15 04:58:19] local.ERROR: could not find driver (SQL: select * from "table_name") {"exception":"[object] (Illuminate\\Database\\QueryException(code: 0): could not find driver (SQL: select * from \"table_name\") at /srv/www/App/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664, PDOException(code: 0): could not find driver at /srv/www/App/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:70)

要はPostgreSQLを操作するドライバーがないようです。

ドライバーのインストール

こちらの記事より、php-pdo_pgsqlがPostgreSQLのドライバーみたいです。

その前に現在のphpのrpmを確認する。

$ rpm -qa | grep php
php-devel-7.3.4-1.el7.remi.x86_64
php-mbstring-7.3.4-1.el7.remi.x86_64
php73-php-json-7.3.4-1.el7.remi.x86_64
php-pecl-mcrypt-1.0.2-2.el7.remi.7.3.x86_64
php-pdo-7.3.4-1.el7.remi.x86_64
php73-php-common-7.3.4-1.el7.remi.x86_64
php-json-7.3.4-1.el7.remi.x86_64
php-cli-7.3.4-1.el7.remi.x86_64
php-gd-7.3.4-1.el7.remi.x86_64
php-common-7.3.4-1.el7.remi.x86_64
php-7.3.4-1.el7.remi.x86_64
php-xml-7.3.4-1.el7.remi.x86_64
php73-runtime-2.0-1.el7.remi.x86_64
php-fpm-7.3.4-1.el7.remi.x86_64

インストールする。

$ sudo yum install php-pdo_pgsql

インストール:
  php-pgsql.x86_64 0:7.3.5-1.el7.remi

依存性関連をインストールしました:
  oniguruma5.x86_64 0:6.9.2-1.el7.remi

依存性を更新しました:
  php.x86_64 0:7.3.5-1.el7.remi                      php-cli.x86_64 0:7.3.5-1.el7.remi
  php-common.x86_64 0:7.3.5-1.el7.remi               php-devel.x86_64 0:7.3.5-1.el7.remi
  php-fpm.x86_64 0:7.3.5-1.el7.remi                  php-gd.x86_64 0:7.3.5-1.el7.remi
  php-json.x86_64 0:7.3.5-1.el7.remi                 php-mbstring.x86_64 0:7.3.5-1.el7.remi
  php-pdo.x86_64 0:7.3.5-1.el7.remi                  php-xml.x86_64 0:7.3.5-1.el7.remi

完了しました!

無事、エラーが解消されました。

Laravelのおすすめ参考書

こちらの書籍でLaravelの全体像が分かりやすいです。 MVCの概念の説明から開発環境の構築、Laravelの基本的な機能について学べます。

PHPフレームワーク Laravel入門

  • バージョン:Laravel 5.4
  • OS:Windows, Mac OS対応

注意:HTML/CSSが解かる人向けです。基本からちょっと外れたこと(既存のDBを使う方法など)は載っていません。