版本介绍
cli
命令行版本apache
apache版本fpm
反向代理版本alpine
精简版本buster
&stretch
用于Debian发行版
应用形式
形式一:基于 Dockerfile 构建
vim Dockerfile FROM php:7.3-fpm RUN mv "$PHP_INI_DIR/php.ini-production" "$PHP_INI_DIR/php.ini" COPY . /usr/src/myapp WORKDIR /usr/src/myapp CMD [ "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/php docker run -d --rm --name php php:7.3-fpm # 将所有配置文件复制到宿主机 docker cp php:/usr/local/etc ~/docker/php ls 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…