Docker:PhpMyAdmin的上传限制为2048KiB

时间:2019-11-14 23:44:59

标签: php apache docker phpmyadmin yaml

我有一个看起来像这样的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

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

和这样的php ini:

max_input_vars = 1500
max_execution_time = 300
post_max_size=50M
upload_max_filesize=50M

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

我在其中放了一个index.php的{​​{1}},它表明phpinfo();是有效的。

当我打开php.ini并登录到PMA时,显示我的上传限制设置为2048KiB。

我在哪里可以更改?

谢谢!

4 个答案:

答案 0 :(得分:27)

在Docker中像这样使用UPLOAD_LIMIT env。这是从我的docker-compose.yml中获得的。默认情况下,它以字节为单位,因此3000000000将约为3000MB。

 phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: 'php7.3-phpmyadmin'
    restart: 'always'
    links:
      - mysql
    environment:
      PMA_HOST: mysql
      PMA_PORT: 3306
      UPLOAD_LIMIT: 3000000000
    ports:
      - '8082:80'
    volumes:
      - /sessions

答案 1 :(得分:5)

答案 2 :(得分:3)

以下内容效果很好。 我的docker-compose.yml包含以下内容:

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    container_name: some-name
    env_file:
      - phpmyadmin.env
    depends_on:
      - mariadb
    volumes:

以下条目已添加到phpmyadmin.env中:UPLOAD_LIMIT = 256MB 放下容器后立即显示较大的数字(最大:256MiB)。

答案 3 :(得分:1)

就我而言,我无法使用UPLOAD_LIMIT对其进行修复,因此,即使是暂时的,也无需进一步调试,我就需要快速的解决方案:

  1. 打开phpmyadmin容器终端:docker exec -it container_name bash

  2. 如果您没有vim或nano编辑器,请安装以下一项:apt-get updateapt-get install vim

  3. 创建配置文件:vi /usr/local/php/conf.d/myconf.ini
  4. 具有以下内容:post_max_size=50M upload_max_filesize=50M

  5. 重新启动容器

记住,当重新创建容器时,这些更改将消失,这只是一个临时解决方案。按照上一个答案的建议尝试使用UPLOAD_LIMIT。

更新 使用设置upload_limit环境再次尝试,但仍然没有运气,因此找到了另一个解决方案: 创建了一个文件uploads.ini并包含以下内容:

post_max_size=50M 
upload_max_filesize=50M

并将其链接到容器体积:

  phpmyadmin:
    image: phpmyadmin/phpmyadmin
    links: 
      - mysql:db
    ports:
      - 8084:80
    volumes:
      - ./uploads.ini:/usr/local/etc/php/conf.d/php-phpmyadmin.ini
    environment:
      MYSQL_ROOT_PASSWORD: something
      #UPLOAD_LIMIT: 3000000000 <-- didn't work