这是一个更安全的问题:是否有任何情况下(即将PHP作为CGI二进制文件与Apache模块进行比较,缺省默认configuration的例子等),如果PHP会崩溃,Apache将呈现PHP脚本的未处理源代码独立于Apache?
否:Apache使用某种方法(DSO,CGI,suPHP等)将脚本处理完全委托给PHP。 无论它输出什么,都将被视为提供给用户的响应。
如果它会崩溃,那么大多数情况下,这个过程将会崩溃而不输出标题。 如果它没有输出头文件(Apache会知道这个头文件,因为它不会在响应中find一个空白行),那么会导致500 Internal Server Error失败,并在error_loglogging一个消息, Premature end of script headers 。
如果说,它设法输出:
Content-type: text/plain Segmentation Fault
然后用户会在屏幕上看到“Segmentation Fault”(分段错误),除此之外别无他法。
你的问题也说:
糟糕的默认configuration的例子
是的,如果Apache 没有configuration为处理PHP页面,那么它将输出只是将文件转储给用户。 除此之外,没有一种糟糕的configuration可以让你处于半工作状态,在大多数情况下工作,但并非全部工作。