"Преждевременное завершение заголовков скриптов" с помощью mod_fcgid и PHP
Я пытаюсь установить Wordpress на Windows 7. Я использую 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 (mod_fcgid-2.3.6-win32-x86.zip
).
Вот настройки Apache, которые я пытаюсь использовать:
LoadModule fcgid_module modules/mod_fcgid.so
FcgidInitialEnv PHPRC "C:/php"
AddHandler fcgid-script .php
FcgidWrapper "C:/php/php-cgi.exe" .php
Когда я пытаюсь зайти на любую страницу, я получаю 500 Internal Server Error с записями 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
Я заметил, что файлы PHP в дистрибутиве Wordpress, похоже, используют LF-окончания строк вместо CRLF. Тем не менее, test.php - это крошечный файл, который я создал в Блокноте, поэтому он должен использовать окончания CRLF вместо LF. Таким образом, окончание строк не является проблемой.
1 ответ
Ну, это работает сейчас, и я не знаю, как я это исправил.
Вот что я помню. test.php давал мне вышеуказанную ошибку 500. Я попытался запустить php.exe в командной строке Windows, и я также раскомментировал строку error_log в php.ini. (Оба этих действия выявили явно не связанное предупреждение "Предупреждение PHP: Запуск PHP: невозможно загрузить динамическую библиотеку" C:\php\php_mysqli.dll "- указанный модуль не найден".) Затем я попытался посетить test.php снова, и это сработало.