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の基本的な機能について学べます。
- バージョン:Laravel 5.4
- OS:Windows, Mac OS対応
注意:HTML/CSSが解かる人向けです。基本からちょっと外れたこと(既存のDBを使う方法など)は載っていません。