要求具有 return 值的文件静默失败。

require of a file with return value fails silently.

我有两个简单的文件(+由 composer 生成和下载的文件)

我有一个简单的 php 文件:

<?php
error_reporting(E_ALL);
ini_set("display_errors", 1);

require __DIR__ . '/vendor/composer/autoload_classmap.php';

echo 'OK';

其中autoload_classmap.php是根据这个composer.json生成的:

{
  "require-dev": {
    "symplify/easy-coding-standard": "5.3.*"
  },
  "config": {
    "optimize-autoloader": true
  }
}

但是 php 脚本在需要的行上失败。没有错误,没有返回数据。浏览器只显示 ERR_CONNECTION_RESET.

(composer中的具体包可能无关紧要,我选择它是因为它有很多依赖项)

问题在于所需文件的大小(可能不在于文件的绝对大小,但返回的数组中的行数确实起作用),如果我将行数减少到 1600 左右(我无法确定确切的数字 - 各行的长度可能会影响)。

我认为这个问题与作曲家本身并没有真正的联系,尽管当我尝试用更大的随机长文本数组替换 类 数组时它工作正常。

问题(很可能)取决于平台:我在我的服务器上试过它并且工作正常但是当我 运行 它在本地使用 Windows + WAMPServer 的机器上时(在两个上测试不同的机器)通过网络浏览器失败并出现上述断开连接错误。它在 Chrome 和 Edge 中都失败了。

I 运行 Windows 10,PHP 7.2.12(但也使用 7.3 进行了测试),Apache 2.4.37

另一方面,当 运行 通过 CLI 连接时它再次工作正常 - 所以我认为 php 中的某些特定设置没有问题。但同样 - 可能,我知道什么? :)

我试图找到 require 可能无声地失败的原因,但我找不到任何东西。而且我没有办法让它发挥作用。我在我的真实应用程序中使用的框架依赖于需要这个文件,因此我需要将优化自动加载器保持为 false(仅仅是因为这样它会生成更小的文件并且需要工作)

有什么想法吗?

谢谢

原来 apache 记录了这个通知:

[mpm_winnt:notice] [pid 6696:tid 672] AH00428: Parent: child process 14924 exited with status 3221225725 -- Restarting.

这让我找到了这个解决方案:https://www.codexpedia.com/apache-server/parent-child-process-exited-with-status-3221225725-restarting-on-xamp-apache/

我需要做的就是添加这个:

<IfModule mpm_winnt_module>
   ThreadStackSize 8888888
</IfModule>

在 httpd.conf 文件中。