かあちゃんエンジニアの気まぐれ開発メモ

フリーランス15年から足を洗ったかあちゃんエンジニアの技術メモ

【CakePHP2】「Database connection "Mysql" is missing」が出た

f:id:tarcoizy:20210217140931p:plain

1. 環境

ローカル検証を終えて、いざ本番環境へデプロイ。
オンプレミスなんで、WebサーバもDBも同じお家にinしていきます。
一通り設置できたかな?と、動かしてみた。
ま、そう簡単に動くはずないわね。

MariaDBのロゴ、初めて見たw


CMS: CakePHP2
PHP: 7.4
DB: MariaDB
OS: Linux ( Debian10 )

app/tmp/logs/error.logにこんなエラーが出ている。

2021-02-17 08:58:53 Error: [MissingConnectionException] Database connection "Mysql" is missing, or could not be created.
Exception Attributes: array (
  'class' => 'Mysql',
  'message' => 'Selected driver is not enabled',
  'enabled' => false,
)
Request URL: /mysystem/users/login
Stack Trace:
#0 /var/www/html/mysystem/lib/Cake/Model/ConnectionManager.php(105): DboSource->__construct()
#1 /var/www/html/mysystem/lib/Cake/Model/Model.php(3659): ConnectionManager::getDataSource()
#2 /var/www/html/mysystem/lib/Cake/Model/Model.php(1162): Model->setDataSource()
#3 /var/www/html/mysystem/lib/Cake/Model/Model.php(3686): Model->setSource()
#4 /var/www/html/mysystem/lib/Cake/Model/Model.php(1394): Model->getDataSource()
#5 /var/www/html/mysystem/lib/Cake/Model/Model.php(1490): Model->schema()

<..略>



2. PHPinfoでも見てみる

ドキュメントルートにphpinfo() を出力させて確認。 どうやらPDOというDBのドライバをインストールし忘れている模様。

f:id:tarcoizy:20210217135357p:plain

3. PDOをインストール

下記コマンドにて、pdo入れました。

$ sudo apt install -y php7.4-pdo

4. 無事動作できましたf:id:tarcoizy:20210217140310p:plain

これでmysqlのドライバが入った状態。MariaDBMySQLのドライバでいんですね。動いてよかった、ほ。