【问题标题】:Docker Wordpress container with custom php.ini file settings具有自定义 php.ini 文件设置的 Docker Wordpress 容器
【发布时间】:2020-03-07 20:27:50
【问题描述】:

我在 Docker 容器中运行 Wordpress(以及 PHPMyAdmin 和 MySQL),我需要进行更改以增加 PHPMyAdmin 的最大可上传文件大小

我研究了许多解决方案并找到了创建自定义uploads.ini 文件然后将此文件包含在docker-compose 文件中的建议。

所以我有这个:

uploads.ini

file_uploads = On
memory_limit = 64M
upload_max_filesize = 64M
post_max_size = 64M
max_execution_time = 600

docker-compose.yml

version: '3'

services:
  # Database
  db:
    image: mysql:5.7
    volumes:
      - db_data:/var/lib/mysql
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: password
      MYSQL_DATABASE: wordpress
      MYSQL_USER: wordpress
      MYSQL_PASSWORD: wordpress
    networks:
      - wpsite
  # phpmyadmin
  phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password 
    networks:
      - wpsite
  # Wordpress
  wordpress:
    depends_on:
      - db
    image: wordpress:latest
    ports:
      - '8000:80'
    restart: always
    volumes:
      - './:/var/www/html'
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    environment:
      WORDPRESS_DB_HOST: db:3306
      WORDPRESS_DB_USER: wordpress
      WORDPRESS_DB_PASSWORD: wordpress
    networks:
      - wpsite
networks:
  wpsite:
volumes:
  db_data:

我已将uploads.ini 文件包含在volumes 中,用于wordpress

volumes:
      - './:/var/www/html'
      - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

但遗憾的是,在运行 docker-compose 并打开 localhost:8080 以转到 PHPMyAdmin 后,我的最大文件上传大小仍然只有 2m,而不是自定义文件中的 64m

【问题讨论】:

标签: wordpress docker phpmyadmin


【解决方案1】:

根据this answer需要设置绝对路径挂载单个文件。所以在要挂载的文件之前添加${PWD}

你的音量部分会是这样的:

volumes:
  - ${PWD}/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini

【讨论】:

    【解决方案2】:

    您想增加 PHPMyAdmin 的最大可上传文件大小,但您为 wordpress 容器添加了 uploads.ini)

    为 phpmyadmin 容器添加卷,你会很高兴=)

    # phpmyadmin
    phpmyadmin:
    depends_on:
      - db
    image: phpmyadmin/phpmyadmin
    volumes:
     - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
    restart: always
    ports:
      - '8080:80'
    environment:
      PMA_HOST: db
      MYSQL_ROOT_PASSWORD: password 
    networks:
      - wpsite
    

    【讨论】:

      【解决方案3】:

      您可以使用 ENV 变量将上传限制传递给 phpmyadmin docker 容器

      例子

      phpmyadmin:
      image: phpmyadmin/phpmyadmin
      container_name: phpmyadmin
      depends_on:
        - mysql
      environment:
        - UPLOAD_LIMIT=512M
        - PMA_HOST=mysql
        - PMA_PORT=3306
        - PMA_ARBITRARY=1
      ports:
        - "8888:80"
      

      【讨论】:

      • 这是对我有用的方法。之后您只需停止并启动 docker 容器。请注意,我的 docker-compose.yml 文件中的语法略有不同:` phpmyadmin: image: phpmyadmin/phpmyadmin depends_on: - mysql environment: UPLOAD_LIMIT: 512M PMA_HOST: mysql PMA_PORT: 3306 PMA_ARBITRARY: 1 `
      【解决方案4】:

      您可以尝试重建您的图像,但就像这样。 将此添加到您的 Dockerfile 中的某个位置。 这样你就可以确定它不是某种许可问题(我认为是)

        COPY ./uploads.ini /usr/local/etc/php/conf.d
      

      【讨论】:

        【解决方案5】:

        你可以使用这个插件来增加上传的最大尺寸

        https://wordpress.org/plugins/upload-max-file-size/

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2017-02-13
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-10
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多