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

啓動容器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

配置Nginxhtml

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...nginx

相關文章
相關標籤/搜索