>백엔드 개발 >PHP 튜토리얼 >PHP 로컬 개발 환경 Docker 설치

PHP 로컬 개발 환경 Docker 설치

不言
不言원래의
2018-05-09 10:14:394584검색

이 글은 주로 PHP 로컬 개발 환경의 Docker 설치를 소개합니다. 이제는 모든 사람과 공유합니다. 도움이 필요한 친구들은 이를 참조할 수 있습니다.

docker php 로컬 개발 환경

Lu Xun: 그렇지 않습니다. 제품 프로그램을 만들고 싶지 않습니다. 직원은 판매하기가 쉽지 않습니다.

머리말

많은 사람들이 도커를 구성할 때 디렉터리 구조와 구성 문제를 이해하지 못하여 많은 혼란을 겪게 됩니다.

하지만 얘야, 이 글을 읽으면 네 말이 맞아. 나는 여러분을 도커 피트로 빠르게 안내하기 위해 "짧고 간결한" 언어를 사용할 것입니다. 귀하의 가치관과 일치하지 않는 내용이 기사에 기록되어 있을 수 있습니다. 작은 주먹을 사용하여 Ctrl+F4를 누르십시오. 나는 꾸지람을 참지 못하는 사람이다. 꾸짖으면 (꾸짖을 기회를 주겠느냐? 먼저 때려 죽여라) (수동재미).

이모지 표현을 추가하려면 csdn을 적극 권장합니다.

mysql 설치 텍스트

mysql 설치는 비교적 간단합니다

[root@test app]#  docker pull mysql:5.7
[root@test app]#   docker run - -name mysql_server -p 3308:3308 -e MYSQL\_ROOT\_PASSWORD=123456 -d mysql:5.7
命令解释 

# -e 内置环境变量 这里是给ROOT 帐号设置密码
没了。

그러나 설치 시에는 mysql을 먼저 설치한 후 php를 설치해야 합니다. 두 컨테이너 간의 대화형 통신을 위해서는 컨테이너 간에 -link가 필요하기 때문입니다. 그렇지 않으면. 헤헤, 알잖아요. MySQL은 PHP로 연결할 수 없습니다. 명령 설명은 다음과 같습니다. .

php 설치 텍스트

1. 준비

대상 컴퓨터가 우분투 시스템이기 때문에 이 글에 나오는 명령어 중 일부는 우분투용으로 통일되어 있는 것 같은데, 다른 시스템과 호환되지 않는 부분은 없는 것 같습니다.
docker 설치,
windows 설치
linux
mac

1.docker 환경
2.php:7.2.4-fpm 이미지(프로젝트 환경에 따라 다름) 공식 이미지
3. 기분에 따라) 설치 여부)

(재밌음) 일부 독자들은 nginx|apache가 작업을 단순화하기 때문에 왜 안 되냐고 물을 수도 있습니다. 이를 통해 설치를 더 빠르게 시작할 수 있고 코드를 더 빠르게 작성할 수도 있습니다.

docker를 다운로드한 후 docker를 시작하세요

PHP 로컬 개발 환경 Docker 설치
docker가 켜져 있으면 docker 버전에서는 서버 정보가 인쇄됩니다. 켜져 있지 않으면 인쇄되지 않습니다.
Docker를 열어주세요

2. 시작

1、[root@test app]# docker pull php:7.2.5-fpm              #docker pull 镜像,从docker镜像中拉取某个镜像 
2、[root@test app]# docker images                          #docker 当前所有的镜像名字 imagesREPOSITORY          TAG                 IMAGE ID            CREATED             SIZE
docker.io/php       7.2.5-fpm           e6970efc6d34        3 days ago          367 MB
3、[root@test app]# docker run -d -p 8080:8080 --link mysql_server:mysql_server -v ~/app:/app -w /app php:7.2.5-fpm php -S 0.0.0.0:8080 -t /app 
命令解释
# -d 后台默认启动
# -p 映射端口8080 映射到本机8080  使用方式 本地端口:容器端口
# -v 挂在目录 ~/app 挂载到容器里面 /app目录 
# -w 工作目录 /app目录 相当于cd (在这里,我们可以不用)
# --link  连接容器    容器名:内部使用的名字  
# php:7.2.5-fpm 镜像名
# php -S 0.0.0.0:8080 -t /app  php自带cli Server  用这个可以免除nginx|apache 安装,指定端口为8080 。
4、[root@test app]# docker ps   #查看正在运行的容器
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
9354f9338e29        php:7.2.5-fpm       "docker-php-entryp..."   4 minutes ago       Up 4 minutes        0.0.0.0:8080->8080/tcp, 9000/tcp   naughty_fermi

这里我们可以看出,NAMES 下是容器名,当我们没有指定的时候,docker 会自动创建一个容器名。
PORTS 端口,0.0.0.0:8080->8080/tcp 本机8080 映射到容器8080

3. 테스트:

앱 디렉토리에 새로운 index.php를 생성합니다

<?php 
phpinfo();

127.0.0.1:8080을 열면 익숙한 phpinfo

4를 볼 수 있습니다. 확장 프로그램

확장 프로그램을 설치할 필요가 없다면 주의사항을 참고해주세요! ! !

여기에서는 확장 프로그램을 설치하는 2가지 방법을 설명합니다

1. 확장 프로그램을 설치하려면 컨테이너에 들어가세요

1. 도커 컨테이너 이름을 확인하세요

[root@test app]# docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                              NAMES
9354f9338e29        php:7.2.5-fpm       "docker-php-entryp..."   31 minutes ago      Up 31 minutes       0.0.0.0:8080->8080/tcp, 9000/tcp   naughty_fermi

여기서 도커 이름이 naughty_fermi임을 확인하세요
2.

이것이 우리가 하는 방법입니다 확장이 설치되었습니다

참고: 일부 확장에는 일부 종속성이 필요합니다. 일부 확장을 설치하기 전에 몇 가지 종속성이 필요할 수 있습니다. PHP 코드로 접속 시 mysql 호스트는 127.0.0.1이나 localhost를 사용할 수 없습니다. 링크를 mysql_server mysql의 컨테이너 이름으로 바꿉니다.

2. 외부 설치 확장

1.进入容器
[root@test app]# docker exec -i -t naughty_fermi /bin/bash
root@9354f9338e29:/app# 
#这样子,看到我们就进入了正在运行的容器命令解释
# docker exec  进入正在使用的容器
# -i :即使没有附加也保持STDIN 打开 一般和-t合作使用
# -t :分配一个伪终端  一般和-i 合作使用  
# /bin/bash 打开交互式终端终端
2. [root@test app]# docker- 按两下tab 可以看到
docker-php-entrypoint     docker-php-ext-configure  docker-php-ext-enable     docker-php-ext-install    docker-php-source 

#docker 根据一些常用库 已经给我们写好了一些脚本 docker -php  github 地址[github]( 
3.安装扩展 
举例:sockets 
[root@test app]#  docker-php-ext-install sockets 
静静等待他编译安装
[root@test app]# php -m  # 就能够看到sockets库了。
4.退出容器 
退出容器的方法有点特殊,需要ctrl+p  再crtl + q 这样,才能在后台继续挂起

root@9354f9338e29:/app# [root@test app]# 
[root@test app]# 
4.我们需要重启一下我们cli server 
[root@test app]# ps -ef | grep php 
root     11840 11808  0 17:04 ?        00:00:00 php -S 0.0.0.0:8080 -t /app
root     14923  9900  0 17:54 pts/1    00:00:00 grep --color=auto php

找到我们的 php cli-server pid 为11840 docker 里面的这些进程,是在本机里面能够看到的。这里是解释 [解释](http://dockone.io/question/529)
我们回到了我们的本机上。
[root@test app]# kill -9 11840  # 杀死我们的进程
因为我们杀死了我们的进程,所以 php 也会自动关闭

我们从新开启这个 容器 

比如 上面可以看到 我们NAMES 为 naughty_fermi
[root@test app]# docker start naughty_fermi 这样就开启了这个扩展

처음 구성한 후 나중에 열려면 docker start 컨테이너 이름이 필요합니다.

1.

2. 컨테이너를 중지하기 위한 docker stop 컨테이너 이름
3. 컨테이너를 종료하기 위한 docker kill 컨테이너 이름

docker run에서는 --name 컨테이너 이름을 지정하여 컨테이너에 이름을 지정할 수 있습니다. 예를 들어

docker run -d -p 8080:8080 - -name php_server -v ~/app:/app -w /app php:7.2.5-fpm php -S 0.0.0.0:8080 -t /app

이런 식으로 컨테이너 이름을 스스로 정의할 수 있습니다

기타 궁금한 점이 있으면 이메일을 보내주세요. 내 이메일은

uyy2244@gmail.com

입니다. 문제를 자세히 설명해 주세요. 그렇지 않으면 무시하십시오. .

기억하세요: 이 문서는 로컬 개발 환경에만 적용됩니다.

위 내용은 이 글의 전체 내용입니다. 더 많은 관련 내용은 PHP 중국어 홈페이지를 참고해주세요.

관련 권장 사항:

최고의 6개발 환경 권장 사항을 구축하기 위한 PHP 로컬 개발 환경


위 내용은 PHP 로컬 개발 환경 Docker 설치의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.