前提
当初の質問はdockerにおいてpdoを接続することができないでしたが、そこから原因がpdo driverがはいっていないことだとわかり質問タイトル、内容を変更しました。
dockerfileおよびphp.iniにpdo driverを追加する記述をしたのですがうまくダウンロードすることができません。
どこが間違っているかわかる方、ご指摘いただけないでしょうか?よろしくお願いいたします
以下コードです。
php.ini
1[Date] 2date.timezone = "Asia/Tokyo" 3[mbstring] 4mbstring.internal_encoding = "UTF-8" 5mbstring.language = "Japanese" 6extension=pdo_mysql
index.php
1<?php 2define('DSN', 'mysql:host=mysql;dbname=test;charset=utf8mb4'); 3define('DB_USER', 'test'); 4define('DB_PASS', 'test'); 5 6try { 7 $pdo = new PDO( 8 DSN, 9 DB_USER, 10 DB_PASS, 11 [ 12 PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION, 13 ] 14 ); 15} catch (PDOException $e) { 16 echo $e->getMessage(); 17 exit; 18} 19 20 21?>
dockerfile
1FROM php:7.2-apache 2RUN apt-get update 3RUN apt-get install -y vim 4RUN docker-php-ext-install pdo pdo_mysql 5 6COPY php.ini /usr/local/etc/php/php.ini
docker-compose.ymlです
docker
1version: '3' 2 3services: 4 php: 5 image: php:7.2-apache 6 volumes: 7 - ./php.ini:/usr/local/etc/php/php.ini 8 - ./html:/var/www/html 9 ports: 10 - 8080:80 11 mysql: 12 image: mysql:5.5 13 volumes: 14 - ./mysql:/var/lib/mysql 15 environment: 16 - MYSQL_ROOT_PASSWORD=root 17 - MYSQL_DATABASE=test 18 - MYSQL_USER=test 19 - MYSQL_PASSWORD=test 20 phpmyadmin: 21 image: phpmyadmin/phpmyadmin 22 environment: 23 - PMA_ARBITRARY=1 24 - PMA_HOST=mysql 25 - PMA_USER=test 26 - PMA_PASSWORD=test 27 ports: 28 - 4040:80 29 volumes: 30 - ./phpmyadmin/sessions:/sessions
発生している問題・エラーメッセージ
could not find driver
補足情報(FW/ツールのバージョンなど)
Windowsにwslを使ってubuntu環境を作成して、そこにdockerを入れました。
windows11
以下phpinfo();の出力内容です。こちらにpdo_mysqlがないためpdoを用いたデータベース接続ができません。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。