nginx上的php内存不会在任何棘手的事情上增加



fyi这个问题是重复的,很多人都问,但我已经收集了我问题的所有答案,我做了什么仍然存在问题或不起作用,但我解释了更多细节,我想知道为什么。类似于

  1. 致命错误:允许的内存大小268435456字节已用完(试图分配71字节(和其他有很多反应告诉它的重复和任何事情

情况是我有3个服务器(引擎(运行应用程序(laravelweb(。

A。我的引擎(工作/没有错误(:(apache Ubuntu 18.04.6 LTS(

❯ free -m
total        used        free      shared  buff/cache   available
Mem:           7976         865         497          18        6613        6797
Swap:             0           0           0

B我的引擎(不工作/错误分配内存(:(nginx((Ubuntu 18.04.4 LTS(

➜  ~ free -m
total        used        free      shared  buff/cache   available
Mem:           7975         658        4312          22        3005        7006
Swap:          4095           1        4094

C。我的引擎(不工作/错误分配内存(:(nginx((Ubuntu 20.04.1 LTS(

~ » free -m                                                                                                                                         ~  
total        used        free      shared  buff/cache   available
Mem:           1987        1096         112         131         778         568
Swap:             0           0           0

我所做的是运行一个查询,导出一个excel文件,其中数据来自应用程序。到目前为止,应用程序正在构建,因此需要大量内存、时间或处理。如果昨天看到有9000个数据/行。

我(用我的三台服务器(在做什么

  1. 在nginx/apache上增加内存配置
  2. 尝试覆盖.httaccess/file.php/index.php上的设置以增加内存处理
  3. 调优mysql-oracle/mysql-mariadb

我的服务器(B(不工作:(我的配置(

➜  ~ locate php.ini   
/etc/php/7.4/apache2/php.ini
/etc/php/7.4/cli/php.ini
/etc/php/7.4/fpm/php.ini
/usr/lib/php/7.4/php.ini-development
/usr/lib/php/7.4/php.ini-production
/usr/lib/php/7.4/php.ini-production.cli
/usr/lib/php/8.1/php.ini-development
/usr/lib/php/8.1/php.ini-production
/usr/lib/php/8.1/php.ini-production.cli
➜  ~ php -i | grep php.ini
Configuration File (php.ini) Path => /etc/php/7.4/cli
Loaded Configuration File => /etc/php/7.4/cli/php.ini

然后我修改了php内存

// [ 1 ]
// /etc/php/7.4/cli/php.ini
max_execution_time = 3600
max_input_time = -1
memory_limit=512M // i have tried set to 2048M or -1 or 99999999999M

然后我重新启动php和nginx进行测量。。。

➜  ~ sudo service nginx restart && sudo service php7.4-fpm restart
➜  ~ nginx -s reload

没有错误,但仍然存在问题分配内存停留在16384字节所以我试着覆盖index.php上的设置,它位于laravel/index.phplaravel/public/index.php上。我把这些代码粘贴到.php文件中。

<?php
set_time_limit(0);
ini_set('memory_limit', '-1');
ini_set('max_execution_time', 360);

仍然存在问题。我调试的是,当我试图将内存设置为仅512M时,它的警报会引导我增加更多内存(允许内存大小为268435456字节已耗尽(试图分配20480字节((,但当我尝试增加到2048M时,警报会有所不同

所以我们可以在这里近距离了解对于第一个

  1. 请尝试分配更多20480字节秒
  2. 请尝试分配更多16384字节

有人能解释为什么吗?卡在16384字节上。。。我增加到最大。

但在我的第一台使用apache的服务器上,它的配置工作和覆盖(而不是index.php(的棘手之处在于使用.htaccess.

您按照我的理解编辑了/etc/php/7.4/cli/php.ini。这只是您的php-cli的配置文件。

Nginx正在使用/etc/php/7.4/fpm/php.ini

你需要在那里更改你的内存限制

相关内容

  • 没有找到相关文章

最新更新