【问题标题】:"Premature end of script headers" with mod_fcgid and PHP带有 mod_fcgid 和 PHP 的“脚本头过早结束”
【发布时间】:2014-08-21 18:28:56
【问题描述】:

我正在尝试在 Windows 7 上安装 Wordpress。我正在使用 Wordpress 3.9.2、Apache 2.2.25 (httpd-2.2.25-win32-x86-openssl-0.9.8y.msi)、PHP 5.5.16 (php-5.5.16-Win32-VC11-x86.zip) 和 mod_fcgid 2.3.6 (@ 987654323@)。

这是我尝试使用的 Apache 设置:

LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "C:/php"
AddHandler fcgid-script .php
FcgidWrapper "C:/php/php-cgi.exe" .php

当我尝试访问任何页面时,我会收到 500 内部服务器错误,以及 error.log 条目,例如:

[Thu Aug 21 13:45:45 2014] [warn] [client 127.0.0.1] (OS 109)The pipe has been ended.  : mod_fcgid: get overlap result error, referer: http://localhost:8080/wordpress/readme.html
[Thu Aug 21 13:45:45 2014] [error] [client 127.0.0.1] Premature end of script headers: install.php, referer: http://localhost:8080/wordpress/readme.html
[Thu Aug 21 14:05:05 2014] [warn] [client 127.0.0.1] (OS 109)The pipe has been ended.  : mod_fcgid: get overlap result error
[Thu Aug 21 14:05:05 2014] [error] [client 127.0.0.1] Premature end of script headers: test.php

我注意到 Wordpress 发行版中的 PHP 文件似乎使用 LF 行结尾而不是 CRLF。但是,test.php 是我在记事本中创建的一个小文件,因此必须使用 CRLF 结尾而不是 LF。因此,行尾似乎不是问题。

【问题讨论】:

    标签: php windows wordpress apache mod-fcgid


    【解决方案1】:

    嗯,它现在可以工作了,我不知道我是如何修复它的。

    这是我记得发生的事情。 test.php 给了我上面的 500 错误。我尝试在 Windows 命令行中运行 php.exe,并且还取消了 php.ini 中 error_log 行的注释。 (这两个操作都显示了明显不相关的警告“PHP 警告:PHP 启动:无法加载动态库 'C:\php\php_mysqli.dll' - 找不到指定的模块。”)然后我尝试访问 test.php再次,它成功了。

    【讨论】:

    • 这太奇怪了!只需在php.ini 中打开error_log = php_errors.log 就可以了!
    猜你喜欢
    • 2016-12-22
    • 1970-01-01
    • 1970-01-01
    • 2013-01-07
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-11-01
    相关资源
    最近更新 更多