CentOS9にApache httpd → PHP → MariaDBと入れてPHPからMariaDBへのPDO接続のメモ
▼CentOS9にApache httpd → PHP → MariaDBと入れてPHPからMariaDBへのPDO接続のメモ
・CentOSはローカルのVM。ホストともども192.168.1.0/24にお住まい。
・SElinux、Firewalldは有効。
・Apache入れ、Webサーバへのアクセス確認済み。
・そっからPHP入れ、動作確認済み。
・そっからMariaDB入れ、初期設定やDBやらテーブルやらPHP用ユーザやら作成。
・下記PHPでMariaDBに接続できず。「could not find driver」とかって怒られる。
$dsn = 'mysql:host=localhost;dbname=testdb;charset=utf8';
$user = 'phpnoyuuzaa';
$pass = 'hogehoge';
try{
$db = new PDO($dsn, $user, $pass);
} catch(PDOException $e) {
die('エラー:' . $e->getMessage());
}
echo('ここまできたらDB接続に成功');
・DBへの到達以前に、DB利用のドライバ周辺が何か足りてない? 下図は解決後の画だが、PDOで検索してもsqliteのことしか見当たらず。ここにmysqlなりmariadbなり的な文言があるべきなのかと。
・何やら php-mysqlnd なるものを入れろとの情報。やってみる。
> sudo yum install php-mysqlnd.x86_64
パッケージのダウンロード:
php-mysqlnd-8.0.27-1.el9.x86_64.rpm 351 kB/s | 152 kB 00:00
--------------------------------------------------------------------------------
合計 98 kB/s | 152 kB 00:01
トランザクションの確認を実行中
トランザクションの確認に成功しました。
トランザクションのテストを実行中
トランザクションのテストに成功しました。
トランザクションを実行中
準備 : 1/1
インストール中 : php-mysqlnd-8.0.27-1.el9.x86_64 1/1
scriptletの実行中: php-mysqlnd-8.0.27-1.el9.x86_64 1/1
検証 : php-mysqlnd-8.0.27-1.el9.x86_64 1/1
インストール済み:
php-mysqlnd-8.0.27-1.el9.x86_64
完了しました!
・いちおうPHP再起動しておく。
> sudo systemctl restart php-fpm.service
・行けた。
> _人人人人人人人人人人人人人人人_
> > ここまできたらDB接続に成功 <
>  ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^ ̄