繁体   English   中英

问题:最大上传文件大小:Google Kubernetes Wordpress 中的 2 MB

[英]Problem with: Maximum upload file size: 2 MB in Google Kubernetes Wordpress

我部署了这个 Wordpress kubernetes 容器: https ://console.cloud.google.com/marketplace/details/google/wordpress ? project

但是我在 Wordpress 中上传主题时遇到问题。 上传的文件超过了 php.ini 中的 upload_max_filesize 指令。

我找不到文件:php.ini。 在 kubernetes 的 pod 中。

我尝试使用插件在 Wordpress https://wordpress.org/plugins/php-settings/ 中编辑 php.ini,但没有写入文件。

有人可以通过分步指南帮助我修改容器的 yaml 或其他解决方案吗?

正如这里所建议的,推荐的方法是挂载一个 php 配置 ini 文件。 公开它的最方便的方法是使用 Kubernetes ConfigMaps。 请创建一个新的配置映射:

apiVersion: v1
kind: ConfigMap
metadata:
  name: wp-php-config
  namespace: default
data:
  uploads.ini: |-
    file_uploads = On
    upload_max_filesize = 256M
    post_max_size = 256M
    memory_limit = 64M
    max_execution_time = 600

然后通过将以下配置添加到您的 pod spec.template.spec.containers来将 configMap 作为您的 pod 中的卷spec.template.spec.containers

... (wordpress container specs)
  volumeMounts:
    - mountPath: /usr/local/etc/php/conf.d/uploads.ini
      name: php-config
      subPath: uploads.ini

(...)

volumes:
  - configMap:
      defaultMode: 420
      name: wp-php-config
    name: php-config

您可能还需要调整入口最大上传限制。 假设您使用的是 nginx ingress,请用注释装饰它:

nginx.ingress.kubernetes.io/proxy-body-size: 50m

如果要将更改全局应用到入口,请搜索入口 configMap 并在那里添加设置。

您可以执行 'kubectl get pods' 来列出 pods,然后使用 'kubectl exec -it [POD_NAME] -- /bin/bash' 进入 shell。 然后,您可以按照此链接中提到的方法更改值。

另一种选择是使用类似于此链接的自定义配置创建一个ConfigMap ,以增加上传文件的大小。

然后,您需要转到 GKE 工作负载,在“StatefulSet”类型的“wordpress-1-wordpress”工作负载中,您需要修改 YAML 文件,您可以在其中将ConfigMap 数据添加到 Volume

另一种解决方法是,您可以重建您在 docker 文件中使用的映像。

这是我为解决问题所做的工作:

  1. 我将这些行添加到我的 Dockerfile

    上传文件

    运行 touch /usr/local/etc/php/conf.d/uploads.ini \\ && echo "file_uploads = On \\n\\ max_execution_time = 600 \\n\\ upload_max_filesize = 200M \\n\\ post_max_size = 200M" >> /usr/local /etc/php/conf.d/uploads.ini

  2. 在 nginx-ingress dependencies.yml 中,我在 configmap 中添加了这些“数据”参数并且它起作用了。

    种类:ConfigMap apiVersion:v1 元数据:名称:nginx-configuration 命名空间:ingress-nginx 标签:app.kubernetes.io/name:ingress-nginx app.kubernetes.io/part-of:ingress-nginx 数据:proxy-body-尺寸:“200m”客户端最大身体尺寸:“200m”

  3. 之后, *kubectl apply -f ingress/dependencies.yml*并且我能够上传超过 2mb。

试试这个,看看它是否适合你

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM