Docker를 사용하여 PHP5.3/Apache2 로컬 환경을 구축하는 방법

소개



PHP 7.2가 곧 릴리스 되려고 하는 요즘이지만, 아직 PHP5.3을 이용하고 있는 시스템도 적지 않다고 생각합니다. 이번에는 Docker를 이용하여 PHP5.3/Apache의 로컬 환경을 구축하는 방법을 정리합니다.

왜 Docker를 사용하는가?



Docker를 사용하는 이점은 다음과 같습니다.
  • 빠른 시작
  • 다른 개발자와 환경과 공유·통일할 수 있다
  • 쉽게 조정

  • 전제



  • Docker for Mac이 설치되었습니다

  • Docker Hub 에 사용자 등록됨

  • 구축 절차



    정책을 간단히 정리하면 Docker에서 PHP5.3/Apache의 이미지를 만들고 그것을 docker-compose로 시작하여 이용하는 정책입니다. 절차는 아래에 요약됩니다.

    Docker Image 준비



    Ubuntu 12.04는 초기 상태에서 PHP 5.3.10을 설치할 수 있기 때문에 그것을 사용합니다. 다음 파일을 준비합니다.

    Dockerfile
    FROM ubuntu:12.04
    MAINTAINER Your Name <[email protected]>
    
    VOLUME ["/var/www"]
    
    # PHP 5.3 + Apache で必要なパッケージをインストール
    RUN apt-get -qq update \
        && apt-get install -y -qq --no-install-recommends \
          apache2 \
          libapache2-mod-php5 \
          php5
    
    COPY run /usr/local/bin/run
    RUN chmod +x /usr/local/bin/run
    
    EXPOSE 80
    CMD ["/usr/local/bin/run"]
    

    실행
    #!/bin/bash
    set -e
    
    # Apacheの環境変数を読み込み、Apache2をフォアグランドで起動。これによりコンテナ起動時にApacheが常時起動になる
    source /etc/apache2/envvars && exec /usr/sbin/apache2 -DFOREGROUND
    

    이미지를 빌드합니다. 태그 이름은 원하는 이름을 지정하십시오.
    $ docker build ./ -t hypermkt/php53-apache
    

    Docker Hub에 이미지 푸시



    docker 명령을 사용하여 방금 만든 태그 이름을 지정하여 이미지를 푸시합니다.
    $ docker login
    Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
    Username: hypermkt
    Password:
    Login Succeeded
    
    $ docker push hypermkt/php53-apache:latest
    

    성공하면 다음과 같이 리포지토리가 생성됩니다.



    docker-compose로 컨테이너 시작



    docker-compose.yml 파일을 준비합니다. 포인트로서는
  • Docker Hub에 푸시 한 이미지 사용
  • 80 포트에 액세스 가능
  • 호스트 바로 아래 및 컨테이너 측 문서 루트 마운트

  • 을 설정합니다.

    docker-compose.yml
    version: '2'
    services:
      web:
        image: hypermkt/php53-apache
        volumes:
          - ./:/var/www
        ports:
          - "80:80"
    

    컨테이너를 시작합니다.
    $ docker-compose up
    

    동작 확인



    확인을 위해 호스트 측에 phpinfo 파일을 준비해 둡니다.

    phpinfo.php
    <?php
    phpinfo();
    

    브라우저에서 액세스하면 phpinfo를 확인할 수있었습니다.



    이것으로 PHP 5.3 + Apache2 환경의 구축 완료입니다.

    결론



    이번에는 최소한의 환경을 구축했을 뿐이었습니다. 웹 서비스가 되면 PHP의 확장 모듈이 필요하거나 Apahce에서 설정 변경도 필요하다고 생각하므로 필요에 따라 확장해 나가면 좋다고 생각합니다.

    참고


  • hypermkt/docker-php53-apache
  • 좋은 웹페이지 즐겨찾기