초보자 | docker-compose | PHP + Nginx + MySQL
존경하는 기사
이 기사를 작성함에 있어서, 참고로 해 주신 기사입니다.
본건, 같은 기존 기사를 답습하는 내용이 됩니다.
Docker로 PHP 개발 환경 구축(PHP+MySQL+Nginx)
Docker + Nginx + PHP-FPM이라면 40 초 정도로 환경을 준비 할 수있는 docker-compose가 즐거워졌습니다.
하고 싶은 것
docker를 사용하여 로컬 환경에서 php를 사용하고 싶습니다.
한 일
1) docker-compose.yml 준비
아래 코피 페로 OK입니다.
docker-compose.ymlversion: "3"
services:
db:
image: mysql:5.7
volumes:
- ./db/mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_pass_fB3uWvTS
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
ports: ["8888:80"]
depends_on: ["db"]
php:
image: php:7.4-fpm
volumes:
- ./nginx/html:/usr/share/nginx/html
- ./php/php.ini:/usr/local/etc/php/conf.d/php.ini
depends_on: ["db"]
nginx:
image: nginx:latest
volumes:
- ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
- ./nginx/html:/usr/share/nginx/html
restart: always
ports: ["8080:80"]
depends_on: ["php"]
2) 우선 docker-compose up
docker-compose.yml 파일이 있는 디렉토리에서 docker-compose up -d
해보십시오. 오류가 발생합니다.
오류가 발생했는지 확인한 후 docker-compose down
에서 중지하십시오.
오류가 발생한 이유는 nginx:
서비스에서 사용하는 default.conf 파일이 클라이언트 측에 없기 때문입니다.
default.conf 파일을 준비해야 합니다.
3) 【중요】 nginx 용 default.conf 파일 준비
default.conf 파일을 준비합니다.
default.confserver {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4) default.conf 파일을 저장할 위치
위의 단계 (2)에서 docker-compose up -d
를 한 후에라면 docker-compose.yml 파일이있는 디렉토리에 nginx
php
db
라는 세 개의 디렉토리가 태어날 것입니다.
디렉토리 nginx / conf.d
에 default.conf 파일을 저장하십시오.
"default.conf"라는 디렉토리가 먼저 존재하는 경우 삭제하십시오 (교환하십시오)
5) 다시 docker-compose up
다시 docker-compose up -d
하십시오. 이번에는 잘 일어난 것이 아닐까요?
6) 확인해 본다
동작을 확인하려면 디렉토리 nginx / html
에 index.php
파일을 두십시오. ( index.php
파일의 내용은 무엇이든 상관 없습니다)
index.php 예제<?php
echo phpinfo();
브라우저에서 http://localhost:8080/
에 액세스하여 표시되면 확인 완료입니다.
보충
데이터베이스와 phpMyAdmin은 필요하지 않습니다.
위의 docker-compose.yml 에는 개인적인 사정으로 mysql과 phpmyadmin를 넣고 있습니다만, php 환경을 만드는 목적만이면 불필요한 것입니다.
따라서 서비스 db:
와 phpmyadmin:
는 삭제하고 OK입니다. 그러나 서비스를 삭제하려면 php:
에 있는 depends_on: ["db"]
를 삭제하는 것을 잊지 마십시오.
phpMyAdmin에 액세스하는 경우 http://localhost:8888/
입니다.
사용자 이름root
, 암호root_pass_fB3uWvTS
로 로그인할 수 있어야 합니다.
nginx−default.conf의 기술에 대해서
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: nginx 시리즈 네 번째 : nginx 설정, 2 - 가상 서버 설정
참고 사이트: nginx 시리즈 5 번째 : nginx 설정, 3 - location 지시어
nginx와 PHP-FPM 간의 관계 이해
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: nginx와 PHP-FPM의 작동 방식을 제대로 이해하면서 PHP 실행 환경 구축
FastCGI는 무엇입니까?
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: 조사해야 잠을 잘 수 없다! 라고 조사하면 불필요하게 잠들 수 없게 된 소켓의 이야기
Reference
이 문제에 관하여(초보자 | docker-compose | PHP + Nginx + MySQL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomokei5634/items/ff0784e88b026b530e3e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
docker를 사용하여 로컬 환경에서 php를 사용하고 싶습니다.
한 일
1) docker-compose.yml 준비
아래 코피 페로 OK입니다.
docker-compose.ymlversion: "3"
services:
db:
image: mysql:5.7
volumes:
- ./db/mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_pass_fB3uWvTS
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
ports: ["8888:80"]
depends_on: ["db"]
php:
image: php:7.4-fpm
volumes:
- ./nginx/html:/usr/share/nginx/html
- ./php/php.ini:/usr/local/etc/php/conf.d/php.ini
depends_on: ["db"]
nginx:
image: nginx:latest
volumes:
- ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
- ./nginx/html:/usr/share/nginx/html
restart: always
ports: ["8080:80"]
depends_on: ["php"]
2) 우선 docker-compose up
docker-compose.yml 파일이 있는 디렉토리에서 docker-compose up -d
해보십시오. 오류가 발생합니다.
오류가 발생했는지 확인한 후 docker-compose down
에서 중지하십시오.
오류가 발생한 이유는 nginx:
서비스에서 사용하는 default.conf 파일이 클라이언트 측에 없기 때문입니다.
default.conf 파일을 준비해야 합니다.
3) 【중요】 nginx 용 default.conf 파일 준비
default.conf 파일을 준비합니다.
default.confserver {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
4) default.conf 파일을 저장할 위치
위의 단계 (2)에서 docker-compose up -d
를 한 후에라면 docker-compose.yml 파일이있는 디렉토리에 nginx
php
db
라는 세 개의 디렉토리가 태어날 것입니다.
디렉토리 nginx / conf.d
에 default.conf 파일을 저장하십시오.
"default.conf"라는 디렉토리가 먼저 존재하는 경우 삭제하십시오 (교환하십시오)
5) 다시 docker-compose up
다시 docker-compose up -d
하십시오. 이번에는 잘 일어난 것이 아닐까요?
6) 확인해 본다
동작을 확인하려면 디렉토리 nginx / html
에 index.php
파일을 두십시오. ( index.php
파일의 내용은 무엇이든 상관 없습니다)
index.php 예제<?php
echo phpinfo();
브라우저에서 http://localhost:8080/
에 액세스하여 표시되면 확인 완료입니다.
보충
데이터베이스와 phpMyAdmin은 필요하지 않습니다.
위의 docker-compose.yml 에는 개인적인 사정으로 mysql과 phpmyadmin를 넣고 있습니다만, php 환경을 만드는 목적만이면 불필요한 것입니다.
따라서 서비스 db:
와 phpmyadmin:
는 삭제하고 OK입니다. 그러나 서비스를 삭제하려면 php:
에 있는 depends_on: ["db"]
를 삭제하는 것을 잊지 마십시오.
phpMyAdmin에 액세스하는 경우 http://localhost:8888/
입니다.
사용자 이름root
, 암호root_pass_fB3uWvTS
로 로그인할 수 있어야 합니다.
nginx−default.conf의 기술에 대해서
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: nginx 시리즈 네 번째 : nginx 설정, 2 - 가상 서버 설정
참고 사이트: nginx 시리즈 5 번째 : nginx 설정, 3 - location 지시어
nginx와 PHP-FPM 간의 관계 이해
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: nginx와 PHP-FPM의 작동 방식을 제대로 이해하면서 PHP 실행 환경 구축
FastCGI는 무엇입니까?
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: 조사해야 잠을 잘 수 없다! 라고 조사하면 불필요하게 잠들 수 없게 된 소켓의 이야기
Reference
이 문제에 관하여(초보자 | docker-compose | PHP + Nginx + MySQL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/tomokei5634/items/ff0784e88b026b530e3e
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
version: "3"
services:
db:
image: mysql:5.7
volumes:
- ./db/mysql:/var/lib/mysql
restart: always
environment:
MYSQL_ROOT_PASSWORD: root_pass_fB3uWvTS
phpmyadmin:
image: phpmyadmin/phpmyadmin:latest
restart: always
ports: ["8888:80"]
depends_on: ["db"]
php:
image: php:7.4-fpm
volumes:
- ./nginx/html:/usr/share/nginx/html
- ./php/php.ini:/usr/local/etc/php/conf.d/php.ini
depends_on: ["db"]
nginx:
image: nginx:latest
volumes:
- ./nginx/conf.d/default.conf:/etc/nginx/conf.d/default.conf
- ./nginx/html:/usr/share/nginx/html
restart: always
ports: ["8080:80"]
depends_on: ["php"]
server {
listen 80;
server_name localhost;
root /usr/share/nginx/html;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php$is_args$args;
}
location ~ [^/]\.php(/|$) {
fastcgi_pass php:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
<?php
echo phpinfo();
데이터베이스와 phpMyAdmin은 필요하지 않습니다.
위의 docker-compose.yml 에는 개인적인 사정으로 mysql과 phpmyadmin를 넣고 있습니다만, php 환경을 만드는 목적만이면 불필요한 것입니다.
따라서 서비스
db:
와 phpmyadmin:
는 삭제하고 OK입니다. 그러나 서비스를 삭제하려면 php:
에 있는 depends_on: ["db"]
를 삭제하는 것을 잊지 마십시오.phpMyAdmin에 액세스하는 경우
http://localhost:8888/
입니다.사용자 이름
root
, 암호root_pass_fB3uWvTS
로 로그인할 수 있어야 합니다.nginx−default.conf의 기술에 대해서
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: nginx 시리즈 네 번째 : nginx 설정, 2 - 가상 서버 설정
참고 사이트: nginx 시리즈 5 번째 : nginx 설정, 3 - location 지시어
nginx와 PHP-FPM 간의 관계 이해
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: nginx와 PHP-FPM의 작동 방식을 제대로 이해하면서 PHP 실행 환경 구축
FastCGI는 무엇입니까?
이쪽의 참고 사이트가 매우 공부가 되었습니다.
참고 사이트: 조사해야 잠을 잘 수 없다! 라고 조사하면 불필요하게 잠들 수 없게 된 소켓의 이야기
Reference
이 문제에 관하여(초보자 | docker-compose | PHP + Nginx + MySQL), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomokei5634/items/ff0784e88b026b530e3e텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)