如何在DDEV中设置PHP memory_limit



我正在运行本地shopware6环境内部docker与DDEV配置。

尝试通过https://sw6.ddev.site/api/search/product获取所有产品(~11.000)后,我得到以下错误:

Error: Allowed memory size of 1073741824 bytes exhausted (tried to allocate 88686592 bytes)

和我分:"file": "/var/www/html/vendor/symfony/http-foundation/Response.php", "line": 381

内容是:

/**
* Sends content for the current web response.
*
* @return $this
*/
public function sendContent()
{
echo $this->content;
return $this;
}

我从我们的登台服务器知道如何调整内存限制并解决问题,但在我的本地环境中,我设置了memory_limit = 1024M。ssh到我的容器并执行<?php phpinfo(); ?>,输出像memory_limit => -1 => -1

现在有两种可能性:由于未封顶内存限制,服务器无法(不知道为什么)处理我的请求

任何DDEV, .env or .htaccess配置php . ini文件覆盖了我的修改。

我编辑的php.ini文件的路径:/var/www/html/config/etc/php7/conf.d/php.ini

php.ini目录:

[Date] 
date.timezone="UTC" 

memory_limit = 1024M 
upload_max_filesize = 6M 
max_execution_time = 30

我不能帮助你的应用是吃太多的记忆,和默认的1 gb, DDEV设置远远超过大多数生产基地将允许。但是如果您想更改1GB的限制,您可以在.ddev/php/<name>.ini中创建一个配置文件,创建目录.ddev/php并向其中添加一个ini文件。看到https://ddev.readthedocs.io/en/latest/users/extend/customization-extendibility/custom-php-configuration-phpini

例如,.ddev/php/memlimit.ini可能包含以下内容:

[PHP]
memory_limit = 2G

但是你需要弄清楚为什么你的应用程序使用这么多内存来真正解决你的问题。

最新更新