(Docker) 2. PHP와 mysql 연동

최대 1 분 소요

1. Dockerfile 수정

  • 경로이동
- 명령어
cd /home/ubuntu/example/

sudo vi Dockerfile 
  • DOckerfile에 아래 코드를 추가 해준다.
RUN apt-get install -y php5.6-mysql
  • Dockerfile 내용
FROM ubuntu:18.04
MAINTAINER Richard Kim <hiddeneventor@gmail.com>

# 사용자 interaction  대비
ENV DEBIAN_FRONTEND=noninteractive

RUN apt-get update
RUN apt-get install -y apache2 # Install Apache Web server (Only 'yes')
RUN apt-get install -y software-properties-common
RUN add-apt-repository ppa:ondrej/php # For Installing PHP 5.6
RUN apt-get update
RUN apt-get install -y php5.6
RUN apt-get install -y php5.6-mysql

EXPOSE 80

CMD ["apachectl","-D", "FOREGROUND"]

2. Dockerfile 빌드하여 이미지 만들기

  • 빌드
docker build -t example .
  • image 파일 확인
docker images

3. 마운트 실행

  • 호스트에 있는 home example html 폴더와
  • 컨테이너 내부에 php 소스폴더를 서로 볼륨으로 마운트 시키는 과정
docker run -p 80:80 -v /home/ubuntu/example/html:/var/www/html example

4. index.php 파일 수정

<?php
   $conn = mysqli_connect(
      '52.79.243.241', #아이피 주소
      'test', # mysql 계정
      'password', # mysql 패스워드
      'TEST', # 데이터베이스 이름
      '9876' # 포트번호
    );
    if(mysqli_connect_errno()){ # 에러처리
      echo "Falled to connect to MySQL: ".mysqli_connect_error();
    }
    $sql = "SELECT VERSION()";
    $result = mysqli_query($conn, $sql);
    $row = mysqli_fetch_array($result);
    print($row["VERSION()"]);
?>
  • https로 정상출력되는지 확인하여 정상출력되면 php와 mysql 연동이 성공적이라는 뜻

댓글남기기