#開発環境
ツール | バージョン |
---|---|
Debian GNU/Linux 10 (buster) | 10 (buster) |
MySQL | 10.3.22-MariaDB-0+deb10u1 |
PHP | 7.4.8 |
Laravel | 7.12.0 |
Debian GNU/Linux 10 (buster)はUbuntu(18.04)とほぼ同じ構成であり、ubuntuで使用するコマンドもubuntuと同じように使用できています。
#困っていること
docker
でLaravelの開発環境を作成しています。
php artinsan migrate
でデータベースを作成しようとしたところ、エラーが発生して作成できませんでした。自分と同じようなエラーが出た時の対処法を調べ、その方法を試してみましたがそのエラーが解決できませんでした。
どうしたらphp artisan migrate
を実行できるようになるのかアドバイスを頂きたいです。
#自分のコード
Dockerfile
1 FROM ubuntu:18.04 2 FROM php:7.4-apache 3 4 ENV DEBIAN_FRONTEND=noninteractive 5 6 RUN apt-get -y update && apt-get -y upgrade 7 RUN apt-get -y install default-mysql-server default-mysql-client 8 RUN apt-get install -y tzdata 9 RUN apt-get -y update 10 RUN apt-get -y install vim 11 12 EXPOSE 80 13 14 ONBUILD ADD web-test.tar /var/www/html/
Laravelのenvファイル
env
1DB_CONNECTION=mysql 2DB_HOST=127.0.0.1 3DB_PORT=3306 4DB_DATABASE=laravel 5DB_USERNAME=root 6DB_PASSWORD=
php.ini(一部抜粋)
~省略~ ;;;;;;;;;;;;;;;;;;;;;; ; Dynamic Extensions ; ;;;;;;;;;;;;;;;;;;;;;; ;extension=bz2 ;extension=curl ;extension=ffi ;extension=ftp ;extension=fileinfo ;extension=gd2 ;extension=gettext ;extension=gmp ;extension=intl ;extension=imap ;extension=ldap ;extension=mbstring ;extension=exif ; Must be after mbstring as it depends on it ;extension=mysqli ;extension=oci8_12c ; Use with Oracle Database 12c Instant Client ;extension=odbc ;extension=openssl ;extension=pdo_firebird ;extension=pdo_mysql ;extension=pdo_oci ;extension=pdo_odbc ;extension=pdo_pgsql ;extension=pdo_sqlite ;extension=pgsql ;extension=shmop ;extension=soap ;extension=sockets ;extension=sodium ;extension=sqlite3 ;extension=tidy ;extension=xmlrpc ;extension=xsl ~省略~ ;;;;;;;;;;;;;;;;;;; ; Module Settings ; ;;;;;;;;;;;;;;;;;;; [Pdo] ;pdo_odbc.connection_pooling=strict ;pdo_odbc.db2_instance_name [Pdo_mysql] pdo_mysql.default_socket= [MySQLi] mysqli.max_persistent = -1 ;mysqli.allow_local_infile = On mysqli.allow_persistent = On mysqli.max_links = -1 mysqli.default_port = 3306 mysqli.default_socket = mysqli.default_host = mysqli.default_user = mysqli.default_pw = mysqli.reconnect = Off [mysqlnd] mysqlnd.collect_statistics = On mysqlnd.collect_memory_statistics = On ;mysqlnd.debug = ;mysqlnd.log_mask = 0 ;mysqlnd.mempool_default_size = 16000 ;mysqlnd.net_cmd_buffer_size = 2048 ;mysqlnd.net_read_buffer_size = 32768 ;mysqlnd.net_read_timeout = 31536000 ;mysqlnd.sha256_server_public_key = ~省略~
#エラー文とそれを踏まえて自分が行ったこと
最初にphp artisan migrate
を行った時、このようなエラーが発生しました。
terminal
1 Illuminate\Database\QueryException 2 3 could not find driver (SQL: select * from information_schema.tables where table_schema = laravel and table_name = migrations and table_type = 'BASE TABLE') 4 5 at vendor/laravel/framework/src/Illuminate/Database/Connection.php:671 6 667| // If an exception occurs when attempting to run a query, we'll format the error 7 668| // message to include the bindings with SQL, which will make this exception a 8 669| // lot more helpful to the developer instead of just the database's errors. 9 670| catch (Exception $e) { 10 > 671| throw new QueryException( 11 672| $query, $this->prepareBindings($bindings), $e 12 673| ); 13 674| } 14 675| 15 16 +34 vendor frames 17 35 artisan:37 18 Illuminate\Foundation\Console\Kernel::handle(Object(Symfony\Component\Console\Input\ArgvInput), Object(Symfony\Component\Console\Output\ConsoleOutput))
そこで下の記事を参考にphp.ini
の一部を変更しました。
Laravel7 「php artisan migrate」実行時にエラー「could not find driver」が発生した場合の対処法
変更内容は
;extension=pdo_mysql ↓ extension=pdo_mysql
変更後再びphp
コマンドを実行すると
terminal
1PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql.so (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql.so: cannot open shared object file: No such file or directory)) in Unknown on line 0 2 3Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql' (tried: /usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql: cannot open shared object file: No such file or directory), /usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql.so (/usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql.so: cannot open shared object file: No such file or directory)) in Unknown on line 0
という新たなエラーが発生し、php artisan migrate
のエラーも解決されませんでした。
tarminalのエラーにある(/usr/local/lib/php/extensions/no-debug-non-zts-20190902/pdo_mysql.so: cannot open shared object file: No such file or directory)
からpdo_mysql.so
ファイルがないことでこのエラーが出ているのかなと思い、pdo_mysql.so
をインストールする方法を探してみたのですが、解決方法が見つかりませんでした。(PHP Warning: PHP Startup: Unable to load dynamic library 'pdo_mysql'
で検索をかけると同じような事例はあったのですが、試してもダメだったり、Dockerfile
の構成が自分のものとかなり違うので試せなかったものしか見当たりませんでした。)
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/07/31 14:43
2020/07/31 14:51
2020/07/31 15:03