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-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에서 설정 변경도 필요하다고 생각하므로 필요에 따라 확장해 나가면 좋다고 생각합니다.
참고
Reference
이 문제에 관하여(Docker를 사용하여 PHP5.3/Apache2 로컬 환경을 구축하는 방법), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/hypermkt/items/c1cfe5f6e55a64c338d2텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)