CentOS9にApache httpd → PHP → MariaDBと入れてPHPからMariaDBへのPDO接続のメモ

▼CentOS9にApache httpdPHPMariaDBと入れてPHPからMariaDBへのPDO接続のメモ

 

CentOSはローカルのVM。ホストともども192.168.1.0/24にお住まい。

SElinux、Firewalldは有効。

Apache入れ、Webサーバへのアクセス確認済み。

・そっからPHP入れ、動作確認済み。

・そっからMariaDB入れ、初期設定やDBやらテーブルやらPHP用ユーザやら作成。

・下記PHPMariaDBに接続できず。「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なり的な文言があるべきなのかと。

phpinfo()

 

 

・何やら 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^ ̄