I have IIS7 and trying to render a sample PHP script. Please note that I have windows authentication set as ON:
<?php
echo "Content-Type: text/html";
echo "n";
echo "BEGINn";
echo "END";
?>
But I get the below error:
HTTP Error 502.2 - Bad Gateway
The specified CGI application misbehaved by not returning a complete set of HTTP headers. The headers it did return are "<b>Security Alert!</b> The PHP CGI cannot be accessed directly. <p>This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.</p> <p>For more information as to <i>why</i> this behaviour exists, see the <a href="http://php.net/security.cgi-bin">manual page for CGI security</a>.</p> <p>For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit <a href="http://php.net/install.windows">the manual page</a>.</p>"
Module CgiModule
Notification ExecuteRequestHandler
Handler PHP
Error Code 0x00000103
Requested URL http://localhost:8080/phpinfo.php
Physical Path C:inetpubwwwrootphpinfo.php
Logon Method Anonymous
Logon User Anonymous
But :
In C:PHPphp.ini:
cgi.force_redirect = 0
cgi.redirect_status_env = REDIRECT_STATUS
And
c:PHP>php-cgi.exe C:inetpubwwwrootphpinfo.php
X-Powered-By: PHP/5.2.17
Content-type: text/html
Content-Type: text/html
BEGIN
END
c:PHP>
Please let me know how can I resolve this? Actually I need the value of $_SERVER[‘LOGON_USER’] variable to know which intranet user is visiting our intranet site?
::UPDATE::
The issue got resolved by modifying the php.ini file — it seems some default configuration where set as OFF which needs to be turned on:
http://www.thesitewizard.com/php/install-php-5-apache-windows.shtml
- Remove From My Forums
Перенос CGI.EXE с IIS6 на IIS8 — Ошибка HTTP 502.2 — Bad Gateway
-
Вопрос
-
Указанное приложение CGI не работает должным образом: оно не возвращает полный набор заголовков HTTP. Возвращённые заголовки: «Exception EInOutError in module prc.exe at 00027974. I/O error 6. «.
Серверное приложение cgi.exe не запускается при переносе с IIS 6 (Windows Server 2003) на Windows Server 2012 Standard. Всё, что можно было настроить, настроил. Запуск 32-битных приложений разрешён. выполнение CGI и ISAPI разрешено. Пробовал
везде в пределах IIS сменить NETWORK-пользователя на Учётную запись администратора — не помогает. Пробовал создать новое приложение с единственной строкой кода Response.Content:=’Hello World’; — такая же ошибка.Модуль: CgiModule
Уведомление: ExecuteRequestHandler
Обработчик: CGI-exe
Код ошибки: 0x00000103
Разрешения все проверены и перепроверены… С чем это может быть связано? Где-то в сети проскакивало, что возможно виноват Borland Delphi (на нём написано приложение), но сомневаюсь, что в этом дело.
-
#1
Ошибка CGI
Win2k3SP1, IIS6 и PHP 5.1.1
Есть строка:
$result = shell_exec($config[‘mplayer’].’ ‘.$file_name2.’ -frames 0 -identify -ao null -vo null’);
где
$config[‘mplayer’] — ‘c:/mplayer/mplayer’
$file_name2 — ftp://user:[email protected]/video/film.avi
Собственно говоря, выдирается инфа о файле.
Так вот, возникает следующая ошибка:
—————
Ошибка CGI
Указанное приложение CGI не возвратило полный набор заголовков HTTP.
—————
При этом код дальше продолжает выполнятся! Причем эта строка отрабатывается нормально и данные о файле заносятся куда следует…
Если эту строку закрыть, ошибки не возникает…
В чем может быть проблема, уже всю голову сломал, весь инет перерыл… Помогите!
-
#2
Ну а ты посмотри, какие заголовки возвращает сервер.
-
#3
[офф]не удержался — ах, как шикарно бб-код отработал [/офф]
-
#4
Автор оригинала: Кром
Ну а ты посмотри, какие заголовки возвращает сервер.
Как и где посмотреть? Просто только начал со всем этим разбираться, ничего толком не знаю…
-~{}~ 17.03.06 11:21:
Автор оригинала: Long
[офф]не удержался — ах, как шикарно бб-код отработал[/офф]
О да
Там было user : pass
-
#5
Я, честно говоря, не знаю, как это смотреть в IIS. Посмотри help по нему.
Смысл в том, что сервер должен вернуть хоть какие-то заголовки, а у тебя, видимо, IIS не проверяет то что скрипт выдает в output. Можешь сам поэксперементировать через header()
с заголовками
HTTP/1.1 200 OK
и
Content-Type.
-
#6
Сделал отдельно:
<?php
$config = «c:/mplayer/mplayer'»;
$file_name2 = «ftp://Admin:[email protected]/video3/doom.avi»;
$result = shell_exec($config.’ ‘.$file_name2.’ -frames 0 -identify -ao null -vo null’);
print $result;
?>
Результат тот же:
Ошибка CGI
Указанное приложение CGI не возвратило полный набор заголовков HTTP.
Так что же мне подкрутить в IIS?
-
#7
Я уже написал что делать.
-
#8
Как с header поэксперементировать?
И кто-нибудь по IIS что-нибудь может прокомментировать?
Я понимаю, что дело скорее всего в IIS (не надо советовать поставить Apache)…….
-
#9
>Как с header поэксперементировать?
Написать перед выводом в output
header(‘HTTP/1.1 200 OK’);
header(‘Content-Type: text/html;’)
и проверить, что получиться.
Пытаюсь подружить IIS 6.0 и питон. Пишу скрипт
print 'Status: 200 OK'
print 'Content-Type: text/html; charset=windows-1251'
print
print '<html><head><title>Python test</title></head>'
print '<body><h1>Test!</h1></body>'
print '</html>'
Все работает, страница отображается.
Пытаюсь вывести русские буквы (файл сохранен в win1251)
print 'Status: 200 OK'
print 'Content-Type: text/html; charset=windows-1251'
print
print '<html><head><title>Python test</title></head>'
print '<body><h1>Тест!</h1></body>'
print '</html>'
получаю ошибку
Ошибка CGI
Указанное приложение CGI не возвратило полный набор заголовков HTTP.
Чего я не учитываю?
В логе IIS такие строчки (на удачный и неудачный вызов)
2018-12-28 16:17:36 W3SVC1 192.168.1.1 GET /hg/test.cgi - 80 - 192.168.1.2 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.2;+WOW64;+Trident/6.0;+.NET4.0E;+.NET4.0C;+.NET+CLR+3.5.30729;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.30729) 200 0 0
2018-12-28 16:19:33 W3SVC1 192.168.1.1 GET /hg/test.cgi - 80 - 192.168.1.2 Mozilla/4.0+(compatible;+MSIE+7.0;+Windows+NT+6.2;+WOW64;+Trident/6.0;+.NET4.0E;+.NET4.0C;+.NET+CLR+3.5.30729;+.NET+CLR+2.0.50727;+.NET+CLR+3.0.30729) 502 2 0
Вы можете прочитать этот комментарий
Sowmya
Я сделал то, что сказано в сообщении, но мое приложение показывает ошибку HTTP 502.3 — Bad Gateway Произошла ошибка соединения при попытке перенаправить запрос. Наиболее вероятные причины: приложение CGI не вернуло допустимый набор ошибок HTTP. Сервер, выступающий в качестве прокси или шлюза, не смог обработать запрос из-за ошибки в родительском шлюзе. При просмотре файла через диспетчер IIS я также получил ту же ошибку. Но при запуске приложения rails с помощью webrick это работает. Есть идеи, что я тут не так сделал?
jaytho
Эй, спасибо за эту статью! Я боролся с этим и мне интересно, как, черт возьми, ты заставил это работать. httpPlatformHandler поддерживает только IIS8.0+, который предлагает 2012r2, а RubyOneclickInstaller не полностью поддерживает 2012r2. 2008 только сейчас — и когда я пытаюсь установить ruby, git не устанавливает полностью в моем тестовом примере новую блестящую коробку AWS 2012r2. Звучит очень многообещающе, однако. Я получил мое приложение (даже с libV8), работающее в веб-кирпиче на 2008r2, но не радует конфиги XML, которые вы показали выше (я получаю ошибки). Я пытался установить ограниченную версию IIS8.0, отказывается от установки, а также httpPlatformHandler. Какие именно платформы вы использовали? Еще раз спасибо, что нашли время, чтобы написать это.
Do’h! Я схватил установщик ruby вместо установщика rails. Вот почему Git не устанавливал.HostForLIFE.eu
Отличная информация! Поздравляю Microsoft за запуск этого HttpPlatformHandler. Это действительно интересно — запускать Ruby в среде Windows. Наше мнение, что для запуска Ruby on Rails лучше будет использовать JRuby. Во всяком случае, это действительно интересно. Мы с нетерпением ждем возможности проверить ваше следующее обновление. С уважением
Большое спасибо за отличную статью! Я получаю сообщение об ошибке — может быть, вы можете посмотреть на мой вопрос о переполнении стека и посмотреть, знаете ли вы ответ?
Обсуждение продолжается в этом сообщении stackru