【问题标题】:PHP 5.2.9 build fails on zend_execute.lo - out of memory?PHP 5.2.9 在 zend_execute.lo 上构建失败 - 内存不足?
【发布时间】:2010-11-01 12:09:31
【问题描述】:

我正在尝试使用 EXIF 支持编译 PHP。每次我尝试在运行 CentOS 5.3 的虚拟专用服务器上构建 PHP 5.2.9 时,在构建 zend_execute.lo 时都会失败。我尝试自己编译该文件,但它失败了。表示内存不足,在...之后分配 [####] 个字节。

如何编译 PHP?

【问题讨论】:

  • 您能否更新您的问题,提供更多详细信息,如果可能,提供确切的错误消息?

标签: php build compilation php-internals


【解决方案1】:

zend_vm_execute.c 文件包含整个执行器,编译它很容易消耗超过 100 MB 的内存。建议的解决方案是在具有更多内存的盒子上编译。如果那 - 无论出于何种原因 - 不可能,您可能会尝试禁用编译器优化(获取打印在屏幕上的命令并将 -=2 替换为 -O0 并手动运行它)这会损害您的性能,或者您可以尝试使用使用以下选项之一的另一个 VM 实现:

--with-zend-vm=CALL
--with-zend-vm=SWITCH
--with-zend-vm=GOTO

但是那个 agian 可能会影响你的表现并给其他麻烦。如前所述:获取更多内存并在那里编译以确保安全 - 只要使用的库使用相同的版本,您就不必在运行 PHP 的系统上编译。

【讨论】:

  • 嗯...我刚刚尝试编译ffmpeg,也遇到了内存不足的错误。有些东西告诉我,我实际上可能是失忆了……我还没有收到支持的回复,但我很确定我的 VPS 肯定只有少量的 RAM |事实证明我确实需要更多的内存。我没有特别尝试这些方法,但对于那些不能仅仅增加记忆力的人来说,它们是很好的建议:) 谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 2023-03-30
  • 2012-02-09
  • 2011-06-26
  • 2016-01-22
相关资源
最近更新 更多