Docker 搭建 PHP 环境
Posted 小伍
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker 搭建 PHP 环境相关的知识,希望对你有一定的参考价值。
版本介绍
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...
以上是关于Docker 搭建 PHP 环境的主要内容,如果未能解决你的问题,请参考以下文章
基于Swoole4.4的 PHP性能分析平台 docker搭建