やりたいこと
Laravelで外部サーバのデータベースに接続してデータを取り出したいです
config/database.phpに以下のような設定をしました
database.php
1 'pgsql' => [ 2 'driver' => 'pgsql', 3 'host' => env('DB_HOST', 'リモート先サーバのホスト名'), 4 'port' => env('DB_PORT', '5432'), 5 'database' => env('DB_DATABASE', 'リモート先のDB名'), 6 'username' => env('DB_USERNAME', 'リモート先のユーザ名'), 7 'password' => env('DB_PASSWORD', 'パスワード'), 8 'charset' => 'utf8', 9 'prefix' => '', 10 'schema' => 'public', 11 'sslmode' => 'prefer', 12 ],
環境
Amazon Linux release 2.0 (2017.12) LTS Release Candidate
PHP 7.0.33 (cli) (built: Aug 4 2020 08:47:59) ( NTS )
Server version: Apache/2.4.6 (Amazon Linux 2)
インストールに使ったコマンド
sudo yum install –enablerepo=remi,remi-php70 php-pgsql
実行結果
Loaded plugins: langpacks, priorities, update-motd 231 packages excluded due to repository priority protections Package php-pgsql-5.4.16-46.amzn2.0.2.x86_64 already installed and latest version Nothing to do
発生したエラー
could not find driver (SQL: SELECT * FROM users LIMIT 1;)
上記のエラーが発生したので下記のコマンドをうって確認したところpgsqlが入っていなかったです
php -i | grep pdo
/etc/opt/remi/php70/php.d/20-pdo.ini, /etc/opt/remi/php70/php.d/30-pdo_mysql.ini, /etc/opt/remi/php70/php.d/30-pdo_sqlite.ini, API Extensions => mysqli,pdo_mysql pdo_mysql pdo_mysql.default_socket => /var/lib/mysql/mysql.sock => /var/lib/mysql/mysql.sock pdo_sqlite
そこからさらにやったこと
sudo yum install php-pgsql
sudo systemctl restart httpd
pg-sqlをインストールして再起動しましたが、grep pdoしても結果がかわらず、could not find driverのエラーがでています
php -i | grep pdo
下記エラーは「https://qiita.com/_s2_/items/a756ece34f77f94f8b86」で消えました
また、phpinfo()から確認してphp.iniに
extension = pgsql.so
と追記しましたが、grep pdoしたときに下記のエラーが発生していました。
~~```エラー内容
HP Warning: PHP Startup: Unable to load dynamic library '/opt/remi/php70/root/usr/lib64/php/modules/pgsql.so'
ほかに何か確認すること、実行する事はあるでしょうか・・・よろしくお願いします。
回答1件
あなたの回答
tips
プレビュー