【问题标题】:Wordpress Docker won't increase upload limitWordpress Docker 不会增加上传限制
【发布时间】:2017-08-16 10:25:15
【问题描述】:

我正在尝试将 Dockerized Wordpress 实例的上传限制设置为 150M。

[filename] exceeds the maximum upload size for this site.

我创建了一个uploads.ini 文件并将其按卷附加到实例。然而,我仍然无法让 Wordpress 媒体上传器增加它的限制。

Docker-compose.yml:

version: '2'
services:
   db:
     image: mysql:5.7
     volumes:
       - db_data:/var/lib/mysql
     restart: always
     environment:
       MYSQL_ROOT_PASSWORD: password1
       MYSQL_DATABASE: wordpress
       MYSQL_USER: wordpress
       MYSQL_PASSWORD: password1

   wordpress:
     depends_on:
       - db
     build: ./wordpress
     ports:
       - "8085:80"
     restart: always
     environment:
       WORDPRESS_DB_HOST: db:3306
       WORDPRESS_DB_PASSWORD: password1
     volumes: 
       - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini 
volumes:
    db_data:

上传.ini:

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

Docker 检查容器:

[
    {
        "Id": "8edc91a51bf8480edc927de2fa5c16624ac43a7beb58c109cd771a143f67746f",
        "Created": "2017-03-15T23:47:54.480206792Z",
        "Path": "docker-entrypoint.sh",
        "Args": [
            "apache2-foreground"
        ],
        "State": {
            "Status": "running",
            "Running": true,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 15956,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "2017-03-16T17:46:30.075247017Z",
            "FinishedAt": "2017-03-16T17:46:29.700791339Z"
        },
        "Image": "sha256:cfe94722592e66629527d7fc1546174916c758c6945eb9911506077e76c4d00e",
        "ResolvConfPath": "/var/lib/docker/containers/8edc91a51bf8480edc927de2fa5c16624ac43a7beb58c109cd771a143f67746f/resolv.conf",
        "HostnamePath": "/var/lib/docker/containers/8edc91a51bf8480edc927de2fa5c16624ac43a7beb58c109cd771a143f67746f/hostname",
        "HostsPath": "/var/lib/docker/containers/8edc91a51bf8480edc927de2fa5c16624ac43a7beb58c109cd771a143f67746f/hosts",
        "LogPath": "/var/lib/docker/containers/8edc91a51bf8480edc927de2fa5c16624ac43a7beb58c109cd771a143f67746f/8edc91a51bf8480edc927de2fa5c16624ac43a7beb58c109cd771a143f67746f-json.log",
        "Name": "/edgeofrevolt_wordpress_1",
        "RestartCount": 0,
        "Driver": "aufs",
        "MountLabel": "",
        "ProcessLabel": "",
        "AppArmorProfile": "",
        "ExecIDs": [
            "8efe40659ebd3e44b17d45f1dd2aac20f12e13a4513e41520d6c2a1b1f01aa08"
        ],
        "HostConfig": {
            "Binds": [
                "/root/NginxDockerProxyPass/edgeofrevolt/uploads.ini:/usr/local/etc/php/conf.d/uploads.ini:rw",
                "374db2645434a23b92074b6d95935361948397519f2d5a531986bb925ceb0f53:/var/www/html:rw"
            ],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "json-file",
                "Config": {}
            },
            "NetworkMode": "edgeofrevolt_default",
            "PortBindings": {
                "80/tcp": [
                    {
                        "HostIp": "",
                        "HostPort": "8085"
                    }
                ]
            },
            "RestartPolicy": {
                "Name": "always",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": [],
            "CapAdd": null,
            "CapDrop": null,
            "Dns": null,
            "DnsOptions": null,
            "DnsSearch": null,
            "ExtraHosts": null,
            "GroupAdd": null,
            "IpcMode": "",
            "Cgroup": "",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": null,
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 67108864,
            "Runtime": "runc",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": null,
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": -1,
            "OomKillDisable": false,
            "PidsLimit": 0,
            "Ulimits": null,
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        },
        "GraphDriver": {
            "Name": "aufs",
            "Data": null
        },
        "Mounts": [
            {
                "Source": "/root/NginxDockerProxyPass/edgeofrevolt/uploads.ini",
                "Destination": "/usr/local/etc/php/conf.d/uploads.ini",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            },
            {
                "Name": "374db2645434a23b92074b6d95935361948397519f2d5a531986bb925ceb0f53",
                "Source": "/var/lib/docker/volumes/374db2645434a23b92074b6d95935361948397519f2d5a531986bb925ceb0f53/_data",
                "Destination": "/var/www/html",
                "Driver": "local",
                "Mode": "rw",
                "RW": true,
                "Propagation": "rprivate"
            }
        ],
        "Config": {
            "Hostname": "8edc91a51bf8",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "ExposedPorts": {
                "80/tcp": {}
            },
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "affinity:container==6797730d5702955f114fd260628b82615aa7702d0cafae7dae456b1806009437",
                "WORDPRESS_DB_HOST=db:3306",
                "WORDPRESS_DB_PASSWORD=p0kem0n2468Y",
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "PHPIZE_DEPS=autoconf \t\tfile \t\tg++ \t\tgcc \t\tlibc-dev \t\tmake \t\tpkg-config \t\tre2c",
                "PHP_INI_DIR=/usr/local/etc/php",
                "APACHE_CONFDIR=/etc/apache2",
                "APACHE_ENVVARS=/etc/apache2/envvars",
                "PHP_EXTRA_BUILD_DEPS=apache2-dev",
                "PHP_EXTRA_CONFIGURE_ARGS=--with-apxs2",
                "PHP_CFLAGS=-fstack-protector-strong -fpic -fpie -O2",
                "PHP_CPPFLAGS=-fstack-protector-strong -fpic -fpie -O2",
                "PHP_LDFLAGS=-Wl,-O1 -Wl,--hash-style=both -pie",
                "GPG_KEYS=0BD78B5F97500D450838F95DFE857D9A90D90EC1 6E4F6AB321FDC07F2C332E3AC2BF0BC433CFC8B3",
                "PHP_VERSION=5.6.30",
                "PHP_URL=https://secure.php.net/get/php-5.6.30.tar.xz/from/this/mirror",
                "PHP_ASC_URL=https://secure.php.net/get/php-5.6.30.tar.xz.asc/from/this/mirror",
                "PHP_SHA256=a363185c786432f75e3c7ff956b49c3369c3f6906a6b10459f8d1ddc22f70805",
                "PHP_MD5=68753955a8964ae49064c6424f81eb3e",
                "WORDPRESS_VERSION=4.7.2",
                "WORDPRESS_SHA1=7b687f1af589c337124e6247229af209ec1d52c3"
            ],
            "Cmd": [
                "apache2-foreground"
            ],
            "Image": "edgeofrevolt_wordpress",
            "Volumes": {
                "/usr/local/etc/php/conf.d/uploads.ini": {},
                "/var/www/html": {}
            },
            "WorkingDir": "/var/www/html",
            "Entrypoint": [
                "docker-entrypoint.sh"
            ],
            "OnBuild": null,
            "Labels": {
                "com.docker.compose.config-hash": "da7c1855141bc762874ddd4734f2b062556a041750ff48a3cfa3954bb7dfed6c",
                "com.docker.compose.container-number": "1",
                "com.docker.compose.oneoff": "False",
                "com.docker.compose.project": "edgeofrevolt",
                "com.docker.compose.service": "wordpress",
                "com.docker.compose.version": "1.8.1"
            }
        },
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "ceec8d1498a6988b4cc56ad10afa5cf87e0670d030460efbd26bd5ace185a375",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": {
                "80/tcp": [
                    {
                        "HostIp": "0.0.0.0",
                        "HostPort": "8085"
                    }
                ]
            },
            "SandboxKey": "/var/run/docker/netns/ceec8d1498a6",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": "",
            "Networks": {
                "edgeofrevolt_default": {
                    "IPAMConfig": null,
                    "Links": null,
                    "Aliases": [
                        "wordpress",
                        "8edc91a51bf8"
                    ],
                    "NetworkID": "89bde3d402cc2fe938279c30415cc2947f92205e610dff1acba69101440b90e7",
                    "EndpointID": "916db2fab99a1637aef87aa1f05fb702fb9b6d3692bf04a9bf46bf122fe9e990",
                    "Gateway": "172.23.0.1",
                    "IPAddress": "172.23.0.3",
                    "IPPrefixLen": 16,
                    "IPv6Gateway": "",
                    "GlobalIPv6Address": "",
                    "GlobalIPv6PrefixLen": 0,
                    "MacAddress": "02:42:ac:17:00:03"
                }
            }
        }
    }
]

编辑:“upload_max_filesize”中有错字

【问题讨论】:

  • 供参考,这是问题讨论的延续:github.com/docker-library/wordpress/issues/…
  • @Gant 是的,我是这方面的最新帖子。实际上,我创建此帖子是为了不再淹没该帖子。那里的人有它的工作。希望其中一个能回击我。我在那个线程中用尽了所有可用的选项:/
  • @Gant 确实有更多洞察力,不幸的是我得到了任何帮助:/

标签: wordpress docker wordpress-theming docker-compose dockerfile


【解决方案1】:

此解决方案通过 Dockerfile 解决问题:

当我遇到 PHP 文件上传限制问题时,我通过以下方式修改了我的 docker-compose.yml

首先我创建了uploads.ini

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

接下来我创建了Dockerfile-php

FROM wordpress:5.8.2
COPY ./uploads.ini /usr/local/etc/php/conf.d

最后,我在docker-compose.ymlwordpress 部分添加了build 配置以引用Dockerfile-php,而Dockerfile-php 又引用了uploads.ini

  wordpress:
    build:
      context: .
      dockerfile: Dockerfile-php
    depends_on:
      - db
    image: wordpress:5.8.2
   <snippity snip>

然后,在包含我所有文件的 docker-compose 目录中:

docker rm [containerName]
docker-compose build --no-cache
docker-compose up -d

如果我们已经删除了旧容器,我知道上面build 命令中的--no-cache 是多余的;只是确保我们始终阅读最新更改的好习惯)

我现在能够成功上传之前由于 PHP 限制而失败的文件。

【讨论】:

    【解决方案2】:

    只需将这两行添加到 .htaccess 文件的末尾即可:

    php_value upload_max_filesize 500M
    php_value post_max_size 500M
    

    你甚至不需要重启容器

    【讨论】:

      【解决方案3】:

      它对我有用,如下所示: 我在docker-compose.yml 旁边创建了uploads.ini,并带有以下几行。这正是它在第一篇文章中所说的。

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

      之后我添加了

      volumes: 
         - ./uploads.ini:/usr/local/etc/php/conf.d/uploads.ini
      

      到我在第一篇文章中所述的 .yml 文件。

      在此之后我不得不删除容器/图像(基本上从头开始):

      docker stop [image name]
      docker rm [image name]
      docker image rm [image name]
      

      有些地方我最终会使用 ID 插入图像名称。名称或 ID 基本上你必须停止,删除容器和图像。底线是从头开始,在您的 .yml 文件中添加一行,如第一篇文章中所述。请记住,您将失去所有的 wp 工作。 现在运行

      docker-compose up -d --build
      

      现在应该提高上传限制。更改后,我能够上传新的更大主题。不再有上传文件大小错误。唯一的问题是,如果您需要在工作过程中增加此上传大小限制,那么您将如何做到这一点?...

      【讨论】:

      • 小心还有一个缓存,如果您尝试重新从头开始,有时您的音量会持续存在。至少在我写这篇文章的时候,你删除容器时不会删除 Docker 卷。我现在有几个 Wordpress 网站,我已经完成了一些疯狂的大型上传。阅读 Wordpress 文档或 Apache 文档以了解在开发过程中执行此操作的问题。
      • uploads.ini 是个好主意,但您可以只用docker-compose up -d 重新启动容器;您不需要重建或删除正在运行的容器
      • 这对我来说比首选答案更有效。 04.10.2019
      • 这行得通,但是当我使用 bash 连接到容器并浏览到 /usr/local/etc/ 时,我没有看到 php 文件夹。为什么会这样?它是如何工作的?
      【解决方案4】:

      我更喜欢为自己的工作流程调整 .htaccess。 最后两行是我添加的

      <IfModule mod_rewrite.c>
      RewriteEngine On
      RewriteBase /
      RewriteRule ^index\.php$ - [L]
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule . /index.php [L]
      </IfModule>
      
      # END WordPress
      
      php_value upload_max_filesize 500M
      php_value post_max_size 500M
      

      然后重启

      docker-compose down --volumes
      docker-compose up -d
      

      享受)

      【讨论】:

      • 我什至不必重新启动容器。
      【解决方案5】:

      最好的选择是执行命令:

      docker-compose down && docker-compose up -d --build
      

      docker-compose kill,在这种情况下进程本身被杀死,这并不完全正确。

      【讨论】:

        【解决方案6】:

        我发现了我的问题。

        docker-compose kill 将杀死一个容器,但从缓存中重建它。这意味着我的文件没有发生任何更改。

        使用docker-compose up -d --build

        【讨论】:

        • 你可以使用docker-compose up -d --build
        【解决方案7】:

        您的 uploads.ini 中有错字

        upload_max_fileszie => upload_max_filesize

        【讨论】:

          猜你喜欢
          • 2013-07-19
          • 1970-01-01
          • 2021-10-03
          • 1970-01-01
          • 1970-01-01
          • 2016-03-20
          • 2015-07-26
          • 2014-01-29
          • 2023-01-28
          相关资源
          最近更新 更多