更改显示设置后,新的 Drupal 8 安装中出现错误 500已分配的最大内存

问题描述

我已经设置了一个 Drupal 8 的新实例并安装了两个模块:

  • 段落 (8.x-1.12)
  • 实体参考修订版 (8.x-1.9)

我还安装了 Barrio 主题(Barrio 5.5.1。)

然后我继续创建了一个包含两个字段的新内容类型(都是段落修订版)。 当尝试通过导航到“内容”->“添加”来添加页面时,一切正常,直到我继续对“内容类型”的“表单显示”或“显示设置”进行任何修改。 一旦进行了修改,无论进行了哪些修改,我都会在添加所述内容类型的页面时收到错误 500。

相关日志条目:

var/www/vhosts/some-website.com/httpdocs/core/lib/Drupal/Core/Field/WidgetBase.PHP on line 510',referer: https://some-website.com/node/add/

[Thu Jun 24 16:33:28.779959 2021] [proxy_fcgi:error] [pid 10213:tid 140020013704960] [client 91.249.132.211:43799] AH01071: Got error 'PHP message: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 135168 bytes) in /var/www/vhosts/some-website.com/httpdocs/core/lib/Drupal/Core/Field/WidgetBase.PHP on line 510'

[Thu Jun 24 16:36:33.558731 2021] [proxy_fcgi:error] [pid 10213:tid 140019649947392] [client 91.249.132.211:62936] AH01071: Got error 'PHP message: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 135168 bytes) in /var/www/vhosts/some-website.com/httpdocs/modules/paragraphs/src/Plugin/Field/FieldWidget/InlineParagraphsWidget.PHP on line 821',referer: https://some-website.com/node/add/

[Thu Jun 24 16:36:55.127020 2021] [proxy_fcgi:error] [pid 10213:tid 140019616376576] [client 91.249.132.211:63829] AH01071: Got error 'PHP message: PHP Fatal error:  Allowed memory size of 268435456 bytes exhausted (tried to allocate 135168 bytes) in /var/www/vhosts/some-website.com/httpdocs/core/lib/Drupal/Core/Field/WidgetBase.PHP on line 510'

我已经尝试将内存限制增加到极值,但没有成功。 我目前正在使用 PHP v7.3.28 以及 Drupal 核心 8.9.16。 安装通过 Plesk 在 Linux 服务器上运行。

有人知道哪里出了问题吗?

解决方法

您的内存设置为小于 256MB,这是它试图分配的 - (268435456 + 135168) / 1024 / 1024

你提到过,

我已经尝试将内存限制增加到极值,但没有成功。

在评论中,

是的,绝对成功并且没有变化,无论设置的值如何

如果您转到 /admin/reports/status,是报告 256MB 还是报告您正在设置的更高的极端值。

如果未显示,请转到 /admin/reports/status/php 并查找 Loaded Configuration File。该值将指向您应该修改的 php.ini 文件。

确保您正在修改该文件。

如果这是您正在修改的文件,我会尝试重新启动整个服务器。要么您只是重新启动 Apache,而 PHP 并未作为模块运行,要么发生了其他事情,例如存在上限或值在其他位置被覆盖。

,

只是一个问题(这也可能是您的答案):您的服务器是共享的吗?它是否有足够的内存来运行应用程序或至少有足够的内存来执行主要安装命令?

我在 Magento 上遇到了同样的问题,但这是因为它是共享的服务器,当我尝试使用某些 CI/CD 脚本在服务器上部署应用程序时,composer 因内存堆而崩溃。

但无论如何,问题可能是以下原因:

  • 您的服务器内存不足。
  • php.ini 配置正在设置使用的最大内存上限。

有时可能是库,因为安装时间太长(由于互联网连接或在线存储库面临问题)并且 PHP 挂起等待安装完成,因为它需要更多的时间更多的内存被使用.

无论如何,该错误表明您尝试执行的操作没有足够的内存。