版本介绍

  • cli 命令行版本
  • apache apache版本
  • fpm 反向代理版本
  • alpine 精简版本
  • buster & stretch 用于Debian发行版

应用形式

形式一:基于 Dockerfile 构建
vim DockerfileFROM php:7.3-fpmRUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini"COPY . /usr/src/myappWORKDIR /usr/src/myappCMD [ "php", "./your-script.php" ]
$ docker build -t my-php-app .$ docker run -it --rm --name my-running-app my-php-app
PHP_INI_DIR 为 /usr/local/etc/php
WORKDIR 为 /var/www/html
形式二:基于目录挂载运行
$ docker run -it --rm --name my-running-script -v "$PWD":/usr/src/myapp -w /usr/src/myapp php:7.3-fpm php your-script.php

应用实战

cd ~mkdir -p docker/phpdocker run -d --rm --name php php:7.3-fpm# 将所有配置文件复制到宿主机docker cp php:/usr/local/etc ~/docker/phpls etc/# 进行容器docker stop php

启动容器

docker run -itd --name php -p 9001:9000 \-v /mnt/website/project-name:/var/www/html \-v /root/docker/php/etc:/usr/local/etc \php:7.3-fpm

配置Nginx

location ~ \.php$ {    root            /var/www/html/public;    fastcgi_pass    127.0.0.1:9001;    fastcgi_index   index.php;    fastcgi_param   SCRIPT_FILENAME  $document_root$fastcgi_script_name;    include         fastcgi_params;}
参数阐明:$document_root       最近一个root配置的值$uri                 不带查问参数的申请地址,如:/index.php/api/users$fastcgi_script_name 申请的URI,如果申请以/结尾,则会主动追加 fastcgi_index 指令配置的脚本名称

参考:http://nginx.org/en/docs/http...
https://github.com/docker-lib...