【问题标题】:Allowed memory size of x exhausted error on installing PHPUnit with Yii使用 Yii 安装 PHPUnit 时允许的内存大小为 x 耗尽错误
【发布时间】:2011-07-18 15:22:30
【问题描述】:

我正在关注“使用 Yii 1.1 和 PHP5 进行敏捷 Web 应用程序开发”一书,并且我刚刚开始了第 2 章中有关单元测试的部分。

当我按照通过 PEAR 安装 PHPUnit 的说明进行操作时,我收到了一个致命错误 "Allowed memory size of x exhausted." 我尝试使用 ini_set('memory_limit','1024M'); 在 PEAR.PHP 顶部将分配的内存增加到 1024 但这只是导致 CLI 崩溃。

这是完整的错误信息:

C:\xampp\htdocs\yii_sc2>pear channel-discover pear.phpunit.de

Fatal error: Allowed memory size of 16777216 bytes exhausted (tried to allocate
269279590 bytes) in C:\xampp\php\PEAR\PEAR.php on line 719

Call Stack:
0.0015 535368 1. {main}() C:\xampp\php\PEAR\pearcmd.php:0
0.0986 3506816 2. PEAR::popErrorHandling() C:\xampp\php\PEAR\pearcmd.php:269

有什么想法吗?

【问题讨论】:

  • 分配超过 256 megs...
  • 在安装 phpunit 之前,请确保您拥有最新的 pear 安装程序,例如做pear upgrade-all,直到它告诉你没有什么可以升级了。
  • 这并没有解决问题,实际上当我尝试做 pear upgrade-all 时,php CLI 停止工作。
  • 你能把http://pear.php.net/go-pear保存到C:\xampp\php\go-pear.php,然后运行php go-pear.php再试一次吗?

标签: php phpunit pear yii


【解决方案1】:

不要更改 PEAR.php 文件中的内存限制。一旦您更新 PEAR,它可能会被覆盖。如果为您的 php-cli 可执行文件更改 php.ini 中的内存限制 不会使错误消失,请尝试运行

peardev upgrade-all

与pear 相同的命令,但没有内存限制。要安装 PHPUnit,您必须至少有 PEAR 安装程序 1.9.1。您可以通过键入验证您的 PEAR 版本

pear version

一切都升级到所需版本后,运行

peardev channel-discover pear.phpunit.de
peardev channel-discover components.ez.no
peardev channel-discover pear.symfony-project.com
peardev install --alldeps --force phpunit/PHPUnit

如果这仍然导致错误,请考虑访问官方支持渠道

【讨论】:

  • 谢谢,我最终选择了这条路线。原来 XAMPP 带有一个过时的 PEAR 版本。
  • peardev 对于解决方案来说是一个令人难以置信的晦涩难懂的东西。但它确实在pear install doc.php.net/pman 因内存耗尽错误而崩溃的地方起作用。
【解决方案2】:

您需要在php.ini 文件中增加memory_limit 参数。

您当前的值是: memory_limit = 16M

将其更改为: memory_limit = 64M

(或更多,如果你需要)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2013-10-21
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 2020-06-25
    • 2020-08-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多