PHP 응용 용기 화 및 배치 방법
전형 적 인 LNMP(Liux+nginx+phop+my sql)환경 에는 기 존의 배치 스 크 립 트 가 많 지만 Docker 가 성행 하 는 오늘날 에 도 많은 학생 들 이 어떻게 배치 하 는 지 에 문제 가 있 기 때문에 이 편 은 Docker 와 docker-compose 를 사용 하여 서비스 기 에 phop 응용 을 배치 하 는 방법 을 간단하게 소개 합 니 다.
우선 과거의 nginx 에서 phop 설정 을 살 펴 보 겠 습 니 다.
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
모든 phop 파일 은 phop 엔진 을 사용 하여 분석 합 니 다.phop 은 로 컬 9000 포트(ip/유 닉 스 domain sockets 를 통 해 접근 할 수 있 습 니 다)에서 실 행 됩 니 다.로 컬 일 수도 있 으 니 원 격 서 비 스 를 통 해 분석 할 수도 있 습 니 다.따라서 우리 의 nginx 서 비 스 는 다음 과 같이 설정 합 니 다.
server {
listen 80;
charset utf-8;
# access_log /var/log/nginx/nginx.access.log main;
# error_log /var/log/nginx/error.log;
root /var/www/html;
index index.php index.html;
add_header X-Cache $upstream_cache_status;
location ~ \.php$ {
try_files $uri =404;
include fastcgi_params;
fastcgi_pass php-fpm:9000;
fastcgi_index index.php;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_param PATH_INFO $fastcgi_path_info;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
이 동시에 비교적 까다 로 운 문 제 는 phop 코드 가 nginx 와 phop 엔진 에 존재 해 야 한 다 는 것 입 니 다.그렇지 않 으 면 해석 할 수 없 지만 이것 은 모두 일이 아 닙 니 다.docker 의 volume 천연 지원!아래 docker-compose.yml 설정 을 직접 보 세 요:
version: '2'
services:
nginx:
image: nginx:stable-alpine
ports:
- 80:80
volumes:
- ./conf/nginx/conf.d:/etc/nginx/conf.d
volumes_from:
- php-fpm
restart: always
php-fpm:
image: php:7.1-fpm-alpine
volumes:
- ./code:/var/www/html
restart: always
주의 점:php-fpm 로 컬 디 렉 터 리 code 를/var/www/html 에 마 운 트 했 습 니 다.
nginx conf 에서 service 사용php-fpm
nginx volumes 통과from 명령 은 php-fpm 의/var/www/html 를 공유 합 니 다.
code 디 렉 터 리 아래 index.php 에 다음 과 같이 쓰 십시오.
<?php
echo phpinfo();
그리고 실행:
# bash
docker-compose up
브 라 우 저 를 열 면 익숙 한 phopinfo 를 볼 수 있 습 니 다:그럼 질문 이 왔 습 니 다.동료 가 물 어 볼 것 이 있 습 니 다.의지 하면 어떻게 합 니까?좋아,이것 이 바로 내 가 계속 말 하고 자 하 는 것 이다.
프로젝트 에 Dockerfile 을 넣 으 십시오:
FROM php:7.1-fpm-alpine
RUN docker-php-install pdo pdo-mysql
COPY src /var/www/html
구축 하면 아 리 클 라 우 드 미 러 서비스 구축 기능 이나 Docker 가 제공 하 는 자동 구축 을 선택 하고 이전 docker-compose.yml 을 업데이트 하면 됩 니 다.
version: '2'
services:
nginx:
image: nginx:stable-alpine
ports:
- 8000:80
volumes:
- ./conf/nginx/conf.d:/etc/nginx/conf.d
volumes_from:
- php-fpm
restart: always
php-fpm:
image: {YOUR_PHP_IMAGE_NAME}:{TAG}
restart: always
이 예제 코드:ImplementsIO/docker-labs
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Swarm의 도커 비밀이 게시물에서는 Redis를 사용한 실제 시나리오 예제를 제공하여 사용 방법을 보여주고자 합니다. Docker 기술에 대한 기본 지식 Docker Swarm 오케스트레이터에 대한 기본 지식 "Docker Swarm ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.