PHP 미경험자가 공부용으로 Docker로 개발 환경을 만들어 보았다
4025 단어 docker-composephpMyadminPHP도커
하고 싶은 일
가능한 한 자신의 PC를 더럽히지 않고 소위 LAMP 환경
(Linux, Apache, MySQL, PHP)의 개발 환경을 간편하게 구축하고 싶다.
Mac의 경우는 MAMP나 VirtualBox가 있지만 더러워져서・・・
그렇다, Docker의 공부도 겸해 Docker를 사용하자! ! !
아티팩트
Docker를 사용하여 Apache, PHP, MySQL, phpMyAdmin을 연동하고,
PHP와 MySQL 공부에 주력하는 개발 환경을 만들었습니다.
개발 환경
도구 이름
버전
OS
macOS Mojava 10.14.3
도커
Mac용 Docker 18.06.1-ce
Docker Compose
1.22.0
PHP
7.2.7-apache (Apache와 연관된 컨테이너)
MySQL
8
phpMyAdmin
4.7
프로젝트 구성
[PHP]
Docker 컨테이너의 80번 포트와 호스트 OS의 80번 포트를 연결.
MySQL과의 접속에는 mysqli
를 사용.
Docker Compose만으로는 PHP의 확장 기능을 인스톨 할 수 없기 때문에, Dockerfile로 대응.
[MySQL]
Version8부터 디폴트 인증 방식이 caching_sha2_password
이므로,mysql_native_password
로 변경한다.
이 설정을 하지 않으면 MySQL에 접속할 수 없다.
사용 절차
[전제조건]
Docker를 사용하여 Apache, PHP, MySQL, phpMyAdmin을 연동하고,
PHP와 MySQL 공부에 주력하는 개발 환경을 만들었습니다.
개발 환경
도구 이름
버전
OS
macOS Mojava 10.14.3
도커
Mac용 Docker 18.06.1-ce
Docker Compose
1.22.0
PHP
7.2.7-apache (Apache와 연관된 컨테이너)
MySQL
8
phpMyAdmin
4.7
프로젝트 구성
[PHP]
Docker 컨테이너의 80번 포트와 호스트 OS의 80번 포트를 연결.
MySQL과의 접속에는 mysqli
를 사용.
Docker Compose만으로는 PHP의 확장 기능을 인스톨 할 수 없기 때문에, Dockerfile로 대응.
[MySQL]
Version8부터 디폴트 인증 방식이 caching_sha2_password
이므로,mysql_native_password
로 변경한다.
이 설정을 하지 않으면 MySQL에 접속할 수 없다.
사용 절차
[전제조건]
Docker를 설치하지 않은 경우 Mac의 경우 다음 명령으로 도입하십시오.
# Homebrewがインストールされていること
$ brew install docker
$ brew cask install docker
$ brew install docker-compose
# Clone
$ git clone https://github.com/MasanoriIwakura/php_study.git
# フォルダ移動
$ cd php_study
# コンテナ実行
$ docker-compose up -d
# 全てのコンテナが立ち上がっていることを確認
$ docker-compose ps
Name Command State Ports
------------------------------------------------------------------------------------------------
php_study_mysql_1 docker-entrypoint.sh mysqld Up 3306/tcp, 33060/tcp
php_study_php_1 docker-php-entrypoint apac ... Up 0.0.0.0:80->80/tcp
php_study_phpmyadmin_1 /run.sh phpmyadmin Up 0.0.0.0:8080->80/tcp, 9000/tcp
[연결 확인]
PHP의 표시 확인은
http://localhost
방문
phpMyAdmin의 표시는
http://localhost:8080
방문
[소스 편집 방법]
php/html
바로 아래에 폴더나 php 파일을 작성·편집하면 됩니다.예를 들어
php/html/index.php
를 편집한 경우 http://localhost
php/html/sample/sample.php
를 편집한 경우에는 http://localhost/sample/sample.php
에 액세스 하여 동작 확인을 할 수 있습니다.또한 소스를 수정하고 저장하고 브라우저를 다시로드하기 만하면 반영 될 수 있습니다.
Docker에서 이미지를 다시 빌드하거나 다시 배포할 필요가 없습니다.
기타
[MySQL 초기화]
시작시에
mysql/sql
안에 실행한 SQL을 배치하는 것으로 자동적으로 MySQL내에 테이블을 작성하거나 초기 데이터를 투입할 수 있습니다.[이번에 만든 Docker 컨테이너 재구축]
사실 이번 리포지토리 바로 아래에 Shell을 배치하고 있습니다.
실행함으로써 영속화한 파일의 삭제, 컨테이너 삭제, 컨테이너 재구축을 한꺼번에 실시합니다.
영구화된 파일을 삭제하지 않으려면 컨테이너를 수동으로 삭제하십시오.
# リポジトリ直下で使用
./docker-clean.sh
# 永続化したファイルを削除したくない場合(コンテナだけ削除)
docker-compose stop
docker-compose rm
앞으로 더 편리하게 할 수 있으면 이 기사도 갱신합니다.
Reference
이 문제에 관하여(PHP 미경험자가 공부용으로 Docker로 개발 환경을 만들어 보았다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/MasanoriIwakura/items/92f11e31a58e559d7c28텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)