我有一堆客户销售点(POS)系统,它定期将新的销售数据发送到一个集中数据库,该数据库将数据存储到一个大数据库中以生成报告.
客户端POS基于PHPPOS,我已经实现了一个使用标准XML-RPC库将销售数据发送到服务的模块.服务器系统基于CodeIgniter构建,并使用XML-RPC和XML-RPCS库作为Web服务组件.每当我发送大量销售数据(销售表中只有50行,以及sales_items中与销售中每个项目相关的各行)时,我会收到以下错误:
Fatal error: Allowed memory size of 134217728 bytes exhausted (tried to allocate 54 bytes)
Run Code Online (Sandbox Code Playgroud)
128M是默认值php.ini,但我认为这是一个很大的数字.实际上,我甚至尝试将此值设置为1024M,而它所做的只是花费更长的时间来输出错误.
至于我采取的步骤,我已经尝试禁用服务器端的所有处理,并且已经操纵它以返回固定响应而不管输入如何.但是,我认为问题在于实际发送数据.我甚至尝试禁用PHP的最大脚本执行时间,但它仍然出错.
致命错误:允许的内存大小为67108864字节耗尽(尝试分配13965430字节)
PHPInfo显示我有一个128M的memory_limit,所以我很困惑为什么错误说我只有64M.phpinfo是否可能报错?或者为PHP使用两个单独的php.inis?
该错误是由我的一个同事在我不知情的情况下添加的一个主要php文件中的ini_set调用引起的.
我明白了:
致命错误:允许的内存大小为268435456字节耗尽(试图分配4981690字节)...
这看起来有点奇怪!从我能读到的内容来看,应该不会发生吗?并不意味着"反过来".我已经使用了一个非常大的memory_limit