【问题标题】:`mcrypt_create_iv` Stalls, But Only Through Apache`mcrypt_create_iv` 停止,但只能通过 Apache
【发布时间】:2015-10-16 06:15:53
【问题描述】:

我的本​​地 PHP 安装最近开始这样做,但我不知道发生了什么变化并且可能会启动它。当我调用 mycrypt_create_iv 时,它完全停止了 100% 的 CPU 使用率,但 在被 Apache 调用时。当我从 CLI 调用它时,它几乎立即返回。我的测试文件如下:

<?php echo mcrypt_create_iv(16, MCRYPT_DEV_URANDOM);

当然,这些值是我发现此问题时调用该函数的内容。这个问题发生在 PHP 5.5 或 5.6 中,所以我不认为这是特定的 PHP 版本。

我正在运行 Gentoo Linux,因此根本原因可能是构建问题,但我重新构建了 libmcrypt、PHP 和 Apache,但没有任何效果。

【问题讨论】:

  • Apache 是如何配置来运行 PHP 的?

标签: php mcrypt gentoo


【解决方案1】:

经过一些实验,我明白了。

我没有在make.conf 中设置APACHE2_MPMS,所以它默认为worker MPM。我将它设置为使用prefork,这个问题就解决了。

我确实设置了threads USE 标志,它与prefork 和 PHP 冲突,所以我删除了那个 use 标志。根据我的个人资料,这意味着大多数带有该标志的软件包仍然设置了它,但 phpmod_php 已禁用。

【讨论】:

    【解决方案2】:

    似乎是 5.6.13 中修复的 php 错误(https://bugs.php.net/bug.php?id=69833)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-07-17
      • 2013-05-05
      • 2012-03-12
      • 1970-01-01
      • 1970-01-01
      • 2012-09-07
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多