Apache / PHP / Win内存问题,两个不同的系统+代码。同样的问题

时间:2018-05-21 09:50:52

标签: php laravel apache

我几个月来一直在和这个问题作斗争。我有两个不同的系统,每个系统都有不同的设置和PHP代码,但两者都有完全相同的问题。

我的服务器将抛出500错误,日志将填充内存分配问题,直到重新启动Apache。

系统ONE

操作系统:Windows Server 2008

XAMPP:PHP 7.1.9 / Apache 2.4.27

代码库:一个小小的laravel网站没有什么花哨的

系统二

操作系统:Windows Server 2016

XAMPP:PHP 7.2.3.0 / Apache 2.4.29

Codebase:一些长时间运行的php进程,大约2分钟。

Apache错误

VirtualFree()失败:[0x000001e7]尝试访问无效地址。 VirtualAlloc()失败:[0x00000008]没有足够的存储空间可用于处理此命令。 VirtualFree()失败:[0x000001e7]尝试访问无效地址。

PHP错误

[Mon May 21 09:27:42.078308 2018] [php7:error] [pid 10236:tid 12736] [client 43.245.8.13:1553] PHP致命错误:内存不足(已分配2097152)(试图分配6626884在第141行的C:\ xampp \ htdocs \ * \ vendor \ doctrine \ dbal \ lib \ Doctrine \ DBAL \ Driver \ PDOStatement.php中,引用:http://m.facebook.com/

[Mon May 21 09:28:12.703338 2018] [php7:error] [pid 10236:tid 12736] [client 122.170.190.70:63513] PHP致命错误:内存不足(已分配73400320)(试图分配4096)第294行的C:\ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Model.php

[Mon May 21 09:28:14.640812 2018] [php7:error] [pid 10236:tid 12736] [client 122.170.190.70:63529] PHP致命错误:内存不足(已分配37748736)(试图分配4096)第294行的C:\ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Model.php

[Mon May 21 09:28:19.218972 2018] [php7:error] [pid 10236:tid 12736] [client 157.49.220.122:64984] PHP致命错误:内存不足(已分配20971520)(试图分配4096)在第161行的C:\ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Concerns \ HasEvents.php中,引用:https://www.facebook.com/

[Mon May 21 09:28:27.125182 2018] [php7:error] [pid 10236:tid 12704] [client 150.143.104.159:12178] PHP致命错误:内存不足(已分配12582912)(试图分配131072)第141行的C:\ xampp \ htdocs \ * \ vendor \ doctrine \ dbal \ lib \ Doctrine \ DBAL \ Driver \ PDOStatement.php

[Mon May 21 09:28:27.125182 2018] [php7:error] [pid 10236:tid 12704] [client 150.143.104.159:12178] PHP致命错误:内存不足(已分配12582912)(试图分配32768)在第451行的C:\ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions \ Handler.php

[Mon May 21 09:28:27.125182 2018] [php7:error] [pid 10236:tid 12704] [client 150.143.104.159:12178] PHP致命错误:内存不足(已分配12582912)(试图分配20480)在第0行的未知中

触发错误的原因

错误似乎是随机发生的,但在Apache重新启动后不会立即发生。然而,好像它的占用内存,我在服务器上有6GB的8GB空闲。

到目前为止我尝试了什么

各种php.ini内存调整,例如memory_limit=1200M以及脚本调整ini_set('memory_limit', -1);

Apache配置调整

ThreadStackSize        56*1024*1024
ThreadsPerChild        150
MaxConnectionsPerChild   0
RLimitMEM 99999999999 99999999999999

但是,重启后我注意到了

AH00118: RLimitMEM not supported on this platform

我看到这些错误散布在互联网上,似乎没有人为他们找到解决方案。我在Windows上需要PHP,我开始认为我应该尝试IIS。

Apache配置上还有其他建议吗?我还可以尝试其他什么?

0 个答案:

没有答案