2

在尝试调试不同的问题时,我创建了一个包含以下内容的 HTML 文件:

<body>
Try 1:<iframe style='height:60px;' src='return_test1.php' ></iframe><br/>
Try 2:<iframe style='height:60px;' src='return_test2.php' ></iframe><br/>
Try 3:<iframe style='height:60px;' src='return_test3.php' ></iframe><br/>
Try 4:<iframe style='height:60px;' src='return_test4.php' ></iframe><br/>
Try 5:<iframe style='height:60px;' src='return_test5.php' ></iframe><br/>
Try 6:<iframe style='height:60px;' src='return_test1.php' ></iframe><br/>
Try 7:<iframe style='height:60px;' src='return_test2.php' ></iframe><br/>
Try 8:<iframe style='height:60px;' src='return_test3.php' ></iframe><br/>
Try 9:<iframe style='height:60px;' src='return_test4.php' ></iframe><br/>
Try 10:<iframe style='height:60px;' src='return_test5.php' ></iframe><br/>
</body>

每个脚本(return_test1.phpreturn_test5.php)只包含以下代码:

<?php
echo "SUCCESS";
?>

问题是打开 HTML 文件时,一些 iframe 会显示预期的“SUCCESS”输出,但其他会显示“ Internal Server Error ”。这些随着页面的每次刷新而变化。

查看 cPanel 服务器日志,出现错误“无法分配内存:无法创建子进程”。查看资源统计信息,打开 HTML 文件时使用的内存高达 1 GB。

我在其他服务器上尝试了代码,当然它运行没有问题。

我还应该提到,直接打开其中一个 PHP 脚本总是会产生良好的结果。它们仅在同时调用时才会失败。

该站点位于共享主机上,流量很少。进行托管的公司没有帮助,似乎唯一的解决方案是转移到另一家托管服务提供商。

有谁知道可能导致问题的原因?或者我可以建议托管人员检查服务器配置?

4

3 回答 3

1

我们最终改变了主机。

更改后的第二天,我们收到了旧主机商的消息,称他们在与 cPanel 和 cloudLinux 的制造商协商后解决了问题。显然,这是一个影响极少数用户的问题,并且已通过“资源管理部分”的自定义补丁修复(对不起,我不知道确切的细节)。

于 2012-11-19T14:12:15.293 回答
0

似乎您的共享托管环境是一个笑话,快点摆脱它们。如果他们不能保证你有足够的内存来产生 10 个进程,那他们就是荒谬的。

于 2012-11-16T13:39:42.010 回答
0

您的主机可能限制了您可以同时运行的进程/内存数量。在您的示例中,服务器同时创建了 11 个 PHP 进程。并且不同的 PHP 进程之间不共享内存:每个进程使用 X 兆字节并且达到内存限制。

您的托管解决方案似乎(非常)有限。但是,如果您不想或无法更改,则可以处理脚本逻辑。

例如,使用这种解决方案,您将只使用一个进程:

<body>
Try 1:<div style="height:60px; overflow: auto;"><?php require('return_test1.php'); ?></div>
Try 2:<div style="height:60px; overflow: auto;"><?php require('return_test2.php'); ?></div>
Try 3:<div style="height:60px; overflow: auto;"><?php require('return_test3.php'); ?></div>
<!-- ... etc ... -->
</body>
于 2012-11-16T13:51:47.270 回答