Docker:PhpMyAdmin 的上传限制为 2048KiB

lvo*_*mer 18 php apache yaml phpmyadmin docker

我有一个 docker-compose.yml 看起来像这样:

webserver:
  build: ./_docker/php
  ports:
    - 80:80
  links:
    - mysql
  volumes_from:
    - app

mysql:
  image: mysql:5.7
  environment:
    MYSQL_DATABASE: "${DB_NAME}"
    MYSQL_USER: "${DB_USER}"
    MYSQL_ROOT_PASSWORD: "${DB_ROOT_PW}"
    MYSQL_PASSWORD: "${DB_PW}"
  volumes:
    - ./_docker/data/db:/docker-entrypoint-initdb.d
  volumes_from:
    - data

data:
  image: mysql:5.7
  volumes:
    - /var/lib/mysql
  command: "true"

phpmyadmin:
  image: phpmyadmin/phpmyadmin
  ports:
    - 8080:80
  links:
    - mysql
  environment:
    PMA_HOST: mysql

app:
  image: tianon/true
  volumes:
    - .:/var/www/public_html
Run Code Online (Sandbox Code Playgroud)

Dockerfile 看起来像这样:

FROM php:7.0-apache
#php:7.2.2-apache
#php:5.6.33-apache

COPY php.ini /usr/local/etc/php/

COPY 000-default.conf /etc/apache2/sites-available/

RUN a2enmod rewrite
RUN a2enmod expires
RUN a2enmod headers

RUN apt-get update
RUN apt-get install -y zlib1g-dev libxml2-dev libfreetype6-dev libjpeg62-turbo-dev libmcrypt-dev libpng12.0 imagemagick
RUN docker-php-ext-install mysqli zip soap
RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
RUN docker-php-ext-install gd

# Install opcache
RUN docker-php-ext-install opcache
Run Code Online (Sandbox Code Playgroud)

和 php ini 是这样的:

max_input_vars = 1500
max_execution_time = 300
post_max_size=50M
upload_max_filesize=50M
Run Code Online (Sandbox Code Playgroud)

当我启动容器时,我的网络服务器位于http://localhost.

index.phpphpinfo();里面放了一个,它显示,php.ini有效。

当我打开http://localhost:8080并登录到 PMA 时,它显示我的上传限制设置为 2048KiB。

我在哪里可以改变这个?

提前致谢!

小智 65

UPLOAD_LIMIT在 docker 中像这样使用这个env。这是来自我的 docker-compose.yml。默认值为UPLOAD_LIMIT2048K,即 2048KiB。将值设置为 300M 会将其增加到 300MiB。

参考:https : //github.com/phpmyadmin/docker#environment-variables-summary

 phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: 'php7.3-phpmyadmin'
    restart: 'always'
    links:
      - mysql
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
      UPLOAD_LIMIT: 300M
    ports:
      - '8082:80'
    volumes:
      - /sessions
Run Code Online (Sandbox Code Playgroud)

  • 对于 docker-compose 版本“3.6”,环境变量应为 UPLOAD_LIMIT=30M。不确定其他版本 (3认同)

小智 11

您需要使用UPLOAD_LIMITinside enviroment,并且需要使用 = 符号指定值,例如:UPLOAD_LIMIT=300M

version: '3.1'
services:
  db:
    image: mysql
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: somerandompasswordgenerated
    ports:
      - 3306:3306

  phpmyadmin:
    image: phpmyadmin
    restart: always
    ports:
      - 8080:80
    environment:
      - PMA_ARBITRARY=1
      - UPLOAD_LIMIT=300M
Run Code Online (Sandbox Code Playgroud)


小智 9

上传限制:500M

mariadb:
    image: mariadb:latest
    container_name: w-mariadb
    restart: always
    ports:
      - "3307:3306"
    environment:
      MYSQL_DATABASE: db_name
      MYSQL_USER: root
      MYSQL_PASSWORD: db_password
      MYSQL_ROOT_PASSWORD: db_password
    volumes:
      - 'w-mariadb:/var/lib/mysql'
    networks:
      - w-network
  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: w-phpmyadmin
    links:
      - mariadb
    environment:
      MYSQL_ROOT_PASSWORD: db_password
      PMA_HOST: mariadb
      UPLOAD_LIMIT: 500M
    restart: always
    ports:
      - '8383:80'
    networks:
      - w-network
Run Code Online (Sandbox Code Playgroud)