我几个月来一直在和这个问题作斗争。我有两个不同的系统,每个系统都有不同的设置和PHP代码,但两者都有完全相同的问题。
我的服务器将抛出500错误,日志将填充内存分配问题,直到重新启动Apache。
系统ONE
操作系统:Windows Server 2008
XAMPP:PHP 7.1.9 / Apache 2.4.27
代码库:一个小型的laravel网站没什么特别的
系统二
操作系统:Windows服务器2016
XAMPP:PHP 7.2.3.0 / Apache 2.4.29
Codebase:一些长时间运行的php进程,大约2分钟。
Apache错误
VirtualFree()失败:[0x000001e7]尝试访问无效地址。VirtualAlloc()失败:[0x00000008]没有足够的存储空间可用于处理此命令。VirtualFree()失败:[0x000001e7]尝试访问无效地址。
PHP错误
[星期一5月21日09:27:42.078308 2018] [php7:错误] [pid 10236:tid 12736] [客户端43.245.8.13:1553] PHP致命错误:内存不足(已分配2097152)(试图分配6626884字节)第141行的C:\ xampp \ htdocs \ * \ vendor \ doctrine \ dbal \ lib \ Doctrine \ DBAL \ Driver \ PDOStatement.php,referer:http://m.facebook.com/
[星期一5月21日09:28:12.703338 2018] [php7:错误] [pid 10236:tid 12736] [客户端122.170.190.70:63513] PHP致命错误:内存不足(分配73400320)(试图分配4096字节)第294行的C:\ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Model.php
[星期一5月21日09:28:14.640812 2018] [php7:错误] [pid 10236:tid 12736] [客户端122.170.190.70:63529] PHP致命错误:内存不足(分配37748736)(试图分配4096字节)第294行的C:\ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Model.php
[星期一5月21日09:28:19.218972 2018] [php7:错误] [pid 10236:tid 12736] [客户端157.49.220.122:64984] PHP致命错误:内存不足(分配20971520)(试图分配4096字节)第161行的C:\ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Database \ Eloquent \ Concerns \ HasEvents.php,referer:https://www.facebook.com/
[星期一5月21日09:28:27.125182 2018] [php7:错误] [pid 10236:tid 12704] [客户端150.143.104.159:12178] PHP致命错误:内存不足(分配12582912)(试图分配131072字节)第141行的C:\ xampp \ htdocs \ * \ vendor \ doctrine \ dbal \ lib \ Doctrine \ DBAL \ Driver \ PDOStatement.php
[星期一5月21日09:28:27.125182 2018] [php7:错误] [pid 10236:tid 12704] [客户端150.143.104.159:12178] PHP致命错误:内存不足(分配12582912)(试图分配32768字节)第451行的C:\ xampp \ htdocs \ * \ vendor \ laravel \ framework \ src \ Illuminate \ Foundation \ Exceptions \ Handler.php
[星期一5月21日09:28:27.125182 2018] [php7:错误] [pid 10236:tid 12704] [客户端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配置的其他建议或我还能尝试什么?
发布于 2018-08-31 12:40:13
我遇到了同样的问题。这有什么解决方案吗?
https://stackoverflow.com/questions/-100005029
复制相似问题