ちょっとハマったので、未来の自分にメモです。
サラリーの仕事でLaravelを使って、複数通販サイトの在庫同期をやっているのですが
少し前にログを見たら定期実行が止まっておる・・・
エラーログを見ると could not find driver。
そんなバカな・・・ という事で調べて直す。
広告
原因はUpdate
タイミングからするとubunntuのアプデのタイミングッポイ。
今まで動いていたのに could not find driver って・・・ 分からん。
色々調べてみると php.ini でpdo_mysqlのエクステンションのコメントを外すと直る とありましたので、
php.iniの場所を調べます。
# php -i | grep php.ini Configuration File (php.ini) Path => /etc/php/8.1/cli Loaded Configuration File => /etc/php/8.1/cli/php.ini
ん・・・
8.1だと・・・・
ウチで使ったのは8.0だぞ・・・
まぁ 良いやと思って、php.iniを変更して、Apache再起動。
そんでコマンド叩いてみると
PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/lib/php/20210902/pdo_mysql (/usr/lib/php/20210902/pdo_mysql: cannot open shared object file: No such file or directory), /usr/lib/php/20210902/pdo_mysql.so (/usr/lib/php/20210902/pdo_mysql.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
怒られました。
もしやと思ってphpinfoで調べたら、やっぱりlaravelをインストした時はphp8で、
アプデの時に8.1がインストされたようです。
# php -v PHP 8.1.1 (cli) (built: Dec 31 2021 07:26:20) (NTS)
という事でバージョン変更
# update-alternatives --list php /usr/bin/php.default /usr/bin/php8.0 /usr/bin/php8.1
存在してるphpを見てみるとphp8.0がある。
# sudo update-alternatives --config php There are 3 choices for the alternative php (providing /usr/bin/php). Selection Path Priority Status ------------------------------------------------------------ * 0 /usr/bin/php.default 100 auto mode 1 /usr/bin/php.default 100 manual mode 2 /usr/bin/php8.0 80 manual mode 3 /usr/bin/php8.1 81 manual mode Press <enter> to keep the current choice[*], or type selection number: 2 update-alternatives: using /usr/bin/php8.0 to provide /usr/bin/php (php) in manual mode # php -v PHP 8.0.14 (cli) (built: Dec 20 2021 21:22:57) ( NTS )
そんでコマンド叩いたら無事に動きました。
あー良かった。
おすすめのコンテンツ
広告
“Laravel でcould not find driver エラー にハマる” への1件の返信