PHP+Nginx+도커
읽어보기
프로젝트에
README
를 추가하여 시작하고 프로젝트가 진행됨에 따라 정말 멋지게 보일 때까지 편집합니다.touch README.md
메이크파일
이제
Makefile
를 사용할 폴더에 도커를 구성해 보겠습니다.touch Makefile
도커 작성
이제 docker 폴더를 만들고 그 안에
docker-composer.yml
파일만 만들어 보겠습니다.mkdir docker && touch docker-composer.yml
내
docker-compose.yml
에는 현재 nginx와 php-fpm만 있습니다.version: "3.9"
name: default
services:
nginx_default:
container_name: nginx_default
image: nginx:1.17.8
ports:
- 80:80
volumes:
- ./default.conf:/etc/nginx/conf.d/default.conf
- ../:/var/www
links:
- php_default
php_default:
container_name: php_default
build: ./php
working_dir: /var/www
volumes:
- ../:/var/www
💡특정 조직을 갖도록 컨테이너의 이름을 바꾸는 것을 좋아한다는 것을 기억하고 이 프로젝트는 기본값이므로 그대로 두겠습니다
{imagename}_default
.💡프로젝트 이름으로
.env
파일을 넣으면 orfan 컨테이너 생성을 피하십시오.COMPOSE_PROJECT_NAME=mvc
원하는 경우(내가 선호하는 경우) 프로젝트에 이름을 추가하면 더 간단하고 체계적으로 됩니다.
엔진엑스
또 하나의 구성은 docker 폴더에 넣을 default.conf입니다.
server {
listen 80;
server_name default.localhost;
error_log /var/log/nginx/error.system-default.log;
access_log /var/log/nginx/access.system-default.log;
root /var/www/public;
index index.html index.htm index.php;
charset utf-8;
location / {
#try to get file directly, try it as a directory or fall back to modx
try_files $uri $uri/ @mod_rewrite;
}
location @mod_rewrite {
#including ? in second rewrite argument causes nginx to drop GET params, so append them again
rewrite ^/(.*)$ /index.php?route=/$1;
}
# You may need this to prevent return 404 recursion.
location = /404.html {
internal;
}
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass php_default:9000;
fastcgi_read_timeout 6000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
fastcgi_param PATH_INFO $fastcgi_path_info;
}
}
💡이름을 기본값으로 변경하고 있음을 기억합니다.
Xdebug 및 컴포저
저는 xdebug로 디버그하는 것을 좋아하기 때문에 작성기와 함께 준비하여 php dockerfile이 다음과 같이 보이도록 할 것입니다.
# Image and version
FROM php:7.4-fpm
# Call PHP images script `docker-php-ext-install` and install language extensions
RUN docker-php-ext-install pdo_mysql
# copy the Composer PHAR from the Composer image into the PHP image
COPY --from=composer /usr/bin/composer /usr/bin/composer
# Install xdebug
RUN pecl install xdebug && docker-php-ext-enable xdebug
COPY xdebug.ini /usr/local/etc/php/conf.d/xdebug.ini
및 컨테이너에 복사될
xdebug.ini
파일[xdebug]
xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.client_host=host.docker.internal
완료하기 전에 다음과 같이 make를 조정해 보겠습니다.
up:
docker-compose up -d
stop:
docker-compose stop
destroy:
docker-compose down
build:
docker-compose up --build -d
docker 프로젝트가 별도의 폴더에 있으므로 makefile이 찾기 위해 다음과 같이 간단하게
.env
파일을 만들고 la 파일을 추가하면 됩니다.# Docker
COMPOSE_FILE=docker/docker-compose.yml
작곡가.json
마지막으로 내가 psr-4를 사용한다는 것을 알리기 위해
composer.json
파일을 생성하여 자동 로드가 준비되도록 합시다.{
"autoload": {
"psr-4": {
"App\\": "app/"
}
}
}
index.php
를 생성하여 nginx 구성 파일에서와 같이 public이라는 폴더를 찾고 있으므로 모든 것이 제대로 작동하는지 확인하고 public 폴더에 생성해야 합니다.mkdir public && touch index.php
그리고
index.php
에서 우리는<?php
require __DIR__ . '/../vendor/autoload.php';
phpinfo();
결론
이제 우리는 할 일만 남았다
make build
make composer
엑스트라
gitignore
git에 프로젝트를 제출하기 전에
.gitignore
파일을 추가하고 공급업체 폴더에 알리는 것을 잊지 마십시오.touch .gitignore
그리고 나는 항상 vscode를 사용하므로 자동으로 생성되는 폴더도 알려줄 것입니다.
vendor
.vscode
편집 구성
나는 또한 editorconfig를 사용하고 싶지만 그것을 사용하기 전에 vscode 저장시 형식을 활성화하는 것을 좋아합니다. 먼저 vscode 설정으로 이동하십시오.
Code > Preferences > Settings e ative a função “Format on Save”
마지막으로 editorconfig 확장을 설치합니다.
지금은 이 구성을 사용하겠습니다.
특허
마지막으로 이 프로젝트가 열려 있으므로 라이선스를 MIT로 남겨두겠습니다
프로젝트
이 프로젝트를 다음 프로젝트의 템플릿으로 사용하려면 다음으로 이동하세요.
https://github.com/walternascimentobarroso/php-nginx-docker
<시간/>
읽어 주셔서 감사합니다!
질문, 불만 또는 팁이 있는 경우 여기 댓글에 남겨주세요. 기꺼이 답변해 드리겠습니다!
😊😊 만나요! 😊😊
<시간/>
지원 해줘
Github - WalterNascimentoBarroso
Codepen - WalterNascimentoBarroso
Reference
이 문제에 관하여(PHP+Nginx+도커), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/walternascimentobarroso/phpnginxdocker-nih텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)