LoginSignup
0
0

More than 1 year has passed since last update.

PHP Docker環境でMysql DBに接続する際の注意点

Posted at

はじめに

Dockerについての解説はしない
DockerでPHP環境が構築できているのが前提

PHPからDBに接続

適当なファイルを作成する
内容を記述

<?php
// Docker環境下ではhostはコンテナ名
const DB_HOST = 'mysql:host=mysql;dbname=udemy_php;charset=utf8';

// userとpassword
const DB_USER = 'php_user';
const DB_PASSWORD = 'password123';

// 例外処理
try {
  $pdo = new PDO(DB_HOST, DB_USER, DB_PASSWORD);
  echo '接続成功';
} catch(PDOException $e) {
  echo '接続失敗' . $e->getMessage() . "\n";
  exit();
}

注意点

DB_HOSTのmysql:host=mysqlはコンテナ名を指定している
厳密にいうとコンテナのipアドレスを指定しているのだが、コンテナ名を書けば自動で割り出してくれるらしい
これによりコンテナを立ち上げるたびにipアドレスが変わっても対応せずに済む

XAMPやMAPM環境ではlocalhostと指定するためその方法でやろうとすると詰む

Dockerfileで使用しているImageによってはPDOがない可能性がある
DockerfileのRUNdocker-php-ext-install pdo_mysql pdo_pgsqlを加えてインストールする

php:7.2-apache-stretchには含まれていないようだが、php:7.4-apacheには含まれている
stretchには含まれていないのかな?? 確認はしていない

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0