Добрый день. У меня вот какая проблема. Был написан скрипт на php,причем
даже несовсем написан, просто в KDevelop сгенрировал php скрипт Hello World
! И ничего там не менял. Установил права на исполнение 777
так уже просто что бы для эксперемента. Вот, а с другой
машины XP пишу в броузере такую строку http://bla-ba-bla/cgi-bin/simp.php
На что мне выдается следующее :Security Alert! The PHP CGI cannot be accessed directly.
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.For more information as to why this behaviour exists, see the manual
page for CGI security.For more information about changing this behaviour or re-enabling this webserver, consult
the installation file that came with this distribution, or visit the
manual page.Я конечно понимаю что дело тут обстоит с защитой, и по ссылкам
по этим по ходил почитал, перерыл конфиг апача, ничего непонял, пробывал
и то и это все не то. Подскажите пожалуйста, как решить
эту проблему. Из этого же разряда
Если php прога начинается со строк
<?
phpinfo();
?>
то выдаются ошибки синкаксиа, и тд. и тп
а если
#!/usr/bin/php
то все нормально ну как нормально я конечно незнаю как это отработает
в браузере но в консоле без ошибок.
К слову сказать, у меня Slackware 9.0, Apache 1.3 php 4.
Заранее благодарен Максим Заикин.Кто-нибудь помогите !!!!
Ставить php не как CGI
>Ставить php не как CGI
Вот проблема локализовалась.
Во-первых, когда я пишу ./test.php который содержит
<?
phpinfo();
?>выдаются ошибки
./test.php: line 1: ?: No such file or directory
./test.php: line 2: syntax error near unexpected token `;'
./test.php: line 2: `phpinfo();'
Вот. А если я на этот test.php в броузере выхожу там пишется Internal Server Error
А в логе апач пишет
[Wed Jan 19 19:34:14 2005] [notice] Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.1
0 mod_ssl/2.8.12 OpenSSL/0.9.7a configured -- resuming normal operations
[Wed Jan 19 19:34:14 2005] [notice] Accept mutex: sysvsem (Default: sysvsem)
[Wed Jan 19 19:34:17 2005] [error] (8)Exec format error: exec of /usr/local/apac
he/data/cgi-bin/test.php failed
[Wed Jan 19 19:34:17 2005] [error] [client 192.168.10.20] Premature end of scrip
t headers: /usr/local/apache/data/cgi-bin/test.phpПомогите как в этом разобраться, я уже все что мог перепробывал.
А зачем класть в cgi-bin то????? просто положи в корень сайта
>А зачем класть в cgi-bin то????? просто положи в корень сайта
Да вопрос конечно интересный. =) Ну незнаю я думал что все скрипты по определению должны там лежать. Я попробывал, скопировал его в htdocs.
А в эксплорере на машине под виндой прописал localhost/test.php
В итоге ничего непроизошло, он попытался какбудто скачать его и запустить локально но ничего не произошло. Так я вот думаю а какая разница где его запускать из cgi-bin или htdocs. Ведь он даже в консоле ошибку выдает.
>>А зачем класть в cgi-bin то????? просто положи в корень сайта
>Да вопрос конечно интересный. =) Ну незнаю я думал что все скрипты
>по определению должны там лежать. Я попробывал, скопировал его в
>htdocs.
>А в эксплорере на машине под виндой прописал localhost/test.php
>В итоге ничего непроизошло, он попытался какбудто скачать его и запустить локально
>но ничего не произошло. Так я вот думаю а какая разница
>где его запускать из cgi-bin или htdocs. Ведь он даже в
>консоле ошибку выдает.Класть нужно сюда,
/usr/local/apache/data/
если это корень сайта<? phpinfo() ?> по определению не можеть дать никаких ошибок
Если он ничего не выдает - значит надо глядеть еррор лог апача.
чулес не бывает.
Кроме того неплохо проапгрейдить апач до 1.3.33 а php - до 4.3.10
>>>А зачем класть в cgi-bin то????? просто положи в корень сайта
>>Да вопрос конечно интересный. =) Ну незнаю я думал что все скрипты
>>по определению должны там лежать. Я попробывал, скопировал его в
>>htdocs.
>>А в эксплорере на машине под виндой прописал localhost/test.php
>>В итоге ничего непроизошло, он попытался какбудто скачать его и запустить локально
>>но ничего не произошло. Так я вот думаю а какая разница
>>где его запускать из cgi-bin или htdocs. Ведь он даже в
>>консоле ошибку выдает.
>
>Класть нужно сюда,
>/usr/local/apache/data/
>если это корень сайта
>
><? phpinfo() ?> по определению не можеть дать никаких ошибок
>Если он ничего не выдает - значит надо глядеть еррор лог апача.
>
>чулес не бывает.
>Кроме того неплохо проапгрейдить апач до 1.3.33 а php - до 4.3.10
>
Да вот именно ! Я все что мог в инете перерыл ненашел описания подобных проблем. Ошибок недолжно быть но они есть ! и от этого никуда недеться .
>>>>А зачем класть в cgi-bin то????? просто положи в корень сайта
>>>Да вопрос конечно интересный. =) Ну незнаю я думал что все скрипты
>>>по определению должны там лежать. Я попробывал, скопировал его в
>>>htdocs.
>>>А в эксплорере на машине под виндой прописал localhost/test.php
>>>В итоге ничего непроизошло, он попытался какбудто скачать его и запустить локально
>>>но ничего не произошло. Так я вот думаю а какая разница
>>>где его запускать из cgi-bin или htdocs. Ведь он даже в
>>>консоле ошибку выдает.
>>
>>Класть нужно сюда,
>>/usr/local/apache/data/
>>если это корень сайта
>>
>><? phpinfo() ?> по определению не можеть дать никаких ошибок
>>Если он ничего не выдает - значит надо глядеть еррор лог апача.
>>
>>чулес не бывает.
>>Кроме того неплохо проапгрейдить апач до 1.3.33 а php - до 4.3.10
>>
>Да вот именно ! Я все что мог в инете перерыл ненашел
>описания подобных проблем. Ошибок недолжно быть но они есть ! и
>от этого никуда недеться .Проверить телнетом, что php прицеплен к апачу
>>>>>А зачем класть в cgi-bin то????? просто положи в корень сайта
>>>>Да вопрос конечно интересный. =) Ну незнаю я думал что все скрипты
>>>>по определению должны там лежать. Я попробывал, скопировал его в
>>>>htdocs.
>>>>А в эксплорере на машине под виндой прописал localhost/test.php
>>>>В итоге ничего непроизошло, он попытался какбудто скачать его и запустить локально
>>>>но ничего не произошло. Так я вот думаю а какая разница
>>>>где его запускать из cgi-bin или htdocs. Ведь он даже в
>>>>консоле ошибку выдает.
>>>
>>>Класть нужно сюда,
>>>/usr/local/apache/data/
>>>если это корень сайта
>>>
>>><? phpinfo() ?> по определению не можеть дать никаких ошибок
>>>Если он ничего не выдает - значит надо глядеть еррор лог апача.
>>>
>>>чулес не бывает.
>>>Кроме того неплохо проапгрейдить апач до 1.3.33 а php - до 4.3.10
>>>
>>Да вот именно ! Я все что мог в инете перерыл ненашел
>>описания подобных проблем. Ошибок недолжно быть но они есть ! и
>>от этого никуда недеться .
>
>Проверить телнетом, что php прицеплен к апачуКак ? Я в этом незнаток? И честно говоря не уверен что делаю это правильно. Попробывал telnet localhost 80
но как увидеть прицелен ли он к php я не понял. Но зато вот cgi-bin есть скрипт
printenv и он выдает следующее причем вот он то отрабатывает нормально и под виндой и в консоли и в линеCOLORTERM=""
CPLUS_INCLUDE_PATH="/usr/lib/qt-3.1.2/include:/usr/lib/qt-3.1.2/include"
DISPLAY=":0.0"
GDK_USE_XFT="1"
GS_LIB="/root/.kde/share/fonts"
GTK_RC_FILES="/etc/gtk/gtkrc:/root/.gtkrc:/root/.gtkrc-kde"
HOME="/root"
HOSTNAME="Slackware.slackdom"
HUSHLOGIN="FALSE"
HZ="100"
INPUTRC="/etc/inputrc"
KDEDIR="/opt/kde"
KDE_MULTIHEAD="false"
KONSOLE_DCOP="DCOPRef(konsole-771,konsole)"
KONSOLE_DCOP_SESSION="DCOPRef(konsole-771,session-1)"
LANG="ru"
LC_ALL=""
LC_NUMERIC="C"
LESS="-M"
LESSOPEN="|lesspipe.sh %s"
LOGNAME="root"
LS_COLORS="no=00:fi=00:di=01;34:ln=01;36:pi=40;33:so=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:ex=01;32:*.cmd=01;32:*.exe=01;32:*.com=01;32:*.btm=01;32:*.bat=01;32:*.tar=01;31:*.tgz=01;31:*.arj=01;31:*.taz=01;31:*.lzh=01;31:*.zip=01;31:*.bz2=01;31:*.rpm=01;31:*.deb=01;31:*.z=01;31:*.Z=01;31:*.gz=01;31:*.jpg=01;35:*.gif=01;35:*.bmp=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.mpg=01;37:*.avi=01;37:*.mov=01;37:"
LS_OPTIONS=" --color=auto -F -b -T 0"
MAIL="/var/spool/mail/root"
MANPATH="/usr/local/man:/usr/man:/usr/X11R6/man:/usr/lib/qt-3.1.2/doc/man:/usr/share/texmf/man"
MINICOM="-c on"
OLDPWD="/usr/local/apache/data"
PATH="/usr/local/sbin:/usr/sbin:/sbin:/usr/local/bin:/usr/bin:/bin:/usr/X11R6/bin:/usr/games:/opt/www/htdig/bin:/opt/kde/bin:/usr/lib/qt-3.1.2/bin:/usr/share/texmf/bin"
PS1="\u@\h:\w\$ "
PS2="> "
PWD="/usr/local/apache/data/cgi-bin"
QTDIR="/usr/lib/qt-3.1.2"
SESSION_MANAGER="local/Slackware:/tmp/.ICE-unix/216"
SHELL="/bin/bash"
SHLVL="5"
T1LIB_CONFIG="/usr/share/t1lib/t1lib.config"
TERM="xterm"
USER="root"
WINDOW_MANAGER="metacity"
XAUTHORITY="/root/.Xauthority"
_="./printenА другой скрипт test-cgi там же говорит следующее
CGI/1.0 test script report:argc is 0. argv is .
SERVER_SOFTWARE = Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.10 mod_ssl/2.8.12 OpenSSL/0.9.7a
SERVER_NAME = Slackware.slackdom
GATEWAY_INTERFACE = CGI/1.1
SERVER_PROTOCOL = HTTP/1.1
SERVER_PORT = 80
REQUEST_METHOD = GET
HTTP_ACCEPT = text/*, image/jpeg, image/png, image/*, */*
PATH_INFO =
PATH_TRANSLATED =
SCRIPT_NAME = /cgi-bin/test-cgi
QUERY_STRING =
REMOTE_HOST =
REMOTE_ADDR = 192.168.10.10
REMOTE_USER =
AUTH_TYPE =
CONTENT_TYPE =
CONTENT_LENGTH =
То есть как я понимаю апач я проинсталил с php собирал я его сам и ./config указывал --with-apache=/ и всяк хрень.
SERVER_SOFTWARE = Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.10 mod_ssl/2.8.12 OpenSSL/0.9.7aпхп прицеплен, статично, уже хорошо.
ищем далее строки пхп в httpd.confAddType application/x-httpd-php .php
Ну и лог апача сюда на запрос этого скрипта
>SERVER_SOFTWARE = Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.10 mod_ssl/2.8.12 OpenSSL/0.9.7a
>
>пхп прицеплен, статично, уже хорошо.
>ищем далее строки пхп в httpd.conf
>
>AddType application/x-httpd-php .php
>Ну и лог апача сюда на запрос этого скриптаЭти строку я сам прописывал.
Прописал я ее следующим образом,
не выделяя ее тэгами просто нписал так
AddType application/x-httpd-php4 .php
Вот. А влоге пишет следующее
в access_log
192.168.10.20 - - [19/Jan/2005:21:39:46 +0300] "GET /cgi-bin/test.php HTTP/1.1"
500 618в error_log
[Wed Jan 19 21:39:46 2005] [error] (8)Exec format error: exec of /usr/local/apac
he/data/cgi-bin/test.php failed
[Wed Jan 19 21:39:46 2005] [error] [client 192.168.10.20] Premature end of scrip
t headers: /usr/local/apache/data/cgi-bin/test.phpВот.
>>SERVER_SOFTWARE = Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.10 mod_ssl/2.8.12 OpenSSL/0.9.7a
>>
>>пхп прицеплен, статично, уже хорошо.
>>ищем далее строки пхп в httpd.conf
>>
>>AddType application/x-httpd-php .php
>>Ну и лог апача сюда на запрос этого скрипта
>
>Эти строку я сам прописывал.
>Прописал я ее следующим образом,
>не выделяя ее тэгами просто нписал так
>AddType application/x-httpd-php4 .php
>Вот. А влоге пишет следующее
>в access_log
>192.168.10.20 - - [19/Jan/2005:21:39:46 +0300] "GET /cgi-bin/test.php HTTP/1.1"
>500 618
>
>в error_log
>[Wed Jan 19 21:39:46 2005] [error] (8)Exec format error: exec of /usr/local/apac
>
>he/data/cgi-bin/test.php failed
>[Wed Jan 19 21:39:46 2005] [error] [client 192.168.10.20] Premature end of scrip
>
>t headers: /usr/local/apache/data/cgi-bin/test.php
>
>Вот.
Почему опять в cgi-bin то???? положи в корень и все заработает.
>>>SERVER_SOFTWARE = Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.10 mod_ssl/2.8.12 OpenSSL/0.9.7a
>>>
>>>пхп прицеплен, статично, уже хорошо.
>>>ищем далее строки пхп в httpd.conf
>>>
>>>AddType application/x-httpd-php .php
>>>Ну и лог апача сюда на запрос этого скрипта
>>
>>Эти строку я сам прописывал.
>>Прописал я ее следующим образом,
>>не выделяя ее тэгами просто нписал так
>>AddType application/x-httpd-php4 .php
>>Вот. А влоге пишет следующее
>>в access_log
>>192.168.10.20 - - [19/Jan/2005:21:39:46 +0300] "GET /cgi-bin/test.php HTTP/1.1"
>>500 618
>>
>>в error_log
>>[Wed Jan 19 21:39:46 2005] [error] (8)Exec format error: exec of /usr/local/apac
>>
>>he/data/cgi-bin/test.php failed
>>[Wed Jan 19 21:39:46 2005] [error] [client 192.168.10.20] Premature end of scrip
>>
>>t headers: /usr/local/apache/data/cgi-bin/test.php
>>
>>Вот.
>Почему опять в cgi-bin то???? положи в корень и все заработает.При запуске из корня то есть htdocs/
В эксплорере происходит следующее.
На секунду появляется окошко закачки, тут же что то качается, фокус исчезает как буд то что то щас запуститься и тут же опять возврящается в окно эксплорера, при этом в окне эксплорера вобще ничего не проичходит.
А в файле access_log появляется запись
92.168.10.20 - - [19/Jan/2005:21:48:36 +0300] "GET /test.php HTTP/1.1" 304 -
в error_log все в порядке ничего не пишет.
Я просто ума неприложу что делать, что нетак. Да и потом а почему бы ему не срабатывать так же и в cgi-bin ведь разницы нет. У меня в cgi-bin .htaccess неприсутствует. По всем признакам все должно проходить нормально. Что делать вот загадка блин.
>>>>SERVER_SOFTWARE = Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.10 mod_ssl/2.8.12 OpenSSL/0.9.7a
>>>>
>>>>пхп прицеплен, статично, уже хорошо.
>>>>ищем далее строки пхп в httpd.conf
>>>>
>>>>AddType application/x-httpd-php .php
>>>>Ну и лог апача сюда на запрос этого скрипта
>>>
>>>Эти строку я сам прописывал.
>>>Прописал я ее следующим образом,
>>>не выделяя ее тэгами просто нписал так
>>>AddType application/x-httpd-php4 .php
>>>Вот. А влоге пишет следующее
>>>в access_log
>>>192.168.10.20 - - [19/Jan/2005:21:39:46 +0300] "GET /cgi-bin/test.php HTTP/1.1"
>>>500 618
>>>
>>>в error_log
>>>[Wed Jan 19 21:39:46 2005] [error] (8)Exec format error: exec of /usr/local/apac
>>>
>>>he/data/cgi-bin/test.php failed
>>>[Wed Jan 19 21:39:46 2005] [error] [client 192.168.10.20] Premature end of scrip
>>>
>>>t headers: /usr/local/apache/data/cgi-bin/test.php
>>>
>>>Вот.
>>Почему опять в cgi-bin то???? положи в корень и все заработает.
>
>При запуске из корня то есть htdocs/
>В эксплорере происходит следующее.
>На секунду появляется окошко закачки, тут же что то качается, фокус исчезает
>как буд то что то щас запуститься и тут же опять
>возврящается в окно эксплорера, при этом в окне эксплорера вобще ничего
>не проичходит.
>А в файле access_log появляется запись
>92.168.10.20 - - [19/Jan/2005:21:48:36 +0300] "GET /test.php HTTP/1.1" 304 -
>в error_log все в порядке ничего не пишет.
>Я просто ума неприложу что делать, что нетак. Да и потом а
>почему бы ему не срабатывать так же и в cgi-bin ведь
>разницы нет. У меня в cgi-bin .htaccess неприсутствует. По всем признакам
>все должно проходить нормально. Что делать вот загадка блин.почему htdocs то?
Что у тебя в DocumentRoot? в httpd.conf?
>>>>>SERVER_SOFTWARE = Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.10 mod_ssl/2.8.12 OpenSSL/0.9.7a
>>>>>
>>>>>пхп прицеплен, статично, уже хорошо.
>>>>>ищем далее строки пхп в httpd.conf
>>>>>
>>>>>AddType application/x-httpd-php .php
>>>>>Ну и лог апача сюда на запрос этого скрипта
>>>>
>>>>Эти строку я сам прописывал.
>>>>Прописал я ее следующим образом,
>>>>не выделяя ее тэгами просто нписал так
>>>>AddType application/x-httpd-php4 .php
>>>>Вот. А влоге пишет следующее
>>>>в access_log
>>>>192.168.10.20 - - [19/Jan/2005:21:39:46 +0300] "GET /cgi-bin/test.php HTTP/1.1"
>>>>500 618
>>>>
>>>>в error_log
>>>>[Wed Jan 19 21:39:46 2005] [error] (8)Exec format error: exec of /usr/local/apac
>>>>
>>>>he/data/cgi-bin/test.php failed
>>>>[Wed Jan 19 21:39:46 2005] [error] [client 192.168.10.20] Premature end of scrip
>>>>
>>>>t headers: /usr/local/apache/data/cgi-bin/test.php
>>>>
>>>>Вот.
>>>Почему опять в cgi-bin то???? положи в корень и все заработает.
>>
>>При запуске из корня то есть htdocs/
>>В эксплорере происходит следующее.
>>На секунду появляется окошко закачки, тут же что то качается, фокус исчезает
>>как буд то что то щас запуститься и тут же опять
>>возврящается в окно эксплорера, при этом в окне эксплорера вобще ничего
>>не проичходит.
>>А в файле access_log появляется запись
>>92.168.10.20 - - [19/Jan/2005:21:48:36 +0300] "GET /test.php HTTP/1.1" 304 -
>>в error_log все в порядке ничего не пишет.
>>Я просто ума неприложу что делать, что нетак. Да и потом а
>>почему бы ему не срабатывать так же и в cgi-bin ведь
>>разницы нет. У меня в cgi-bin .htaccess неприсутствует. По всем признакам
>>все должно проходить нормально. Что делать вот загадка блин.
>
>почему htdocs то?
>Что у тебя в DocumentRoot? в httpd.conf?
Права какие на этот файл стоят?
>>>>>SERVER_SOFTWARE = Apache/1.3.27 (Unix) mod_perl/1.28 PHP/4.3.10 mod_ssl/2.8.12 OpenSSL/0.9.7a
>>>>>
>>>>>пхп прицеплен, статично, уже хорошо.
>>>>>ищем далее строки пхп в httpd.conf
>>>>>
>>>>>AddType application/x-httpd-php .php
>>>>>Ну и лог апача сюда на запрос этого скрипта
>>>>
>>>>Эти строку я сам прописывал.
>>>>Прописал я ее следующим образом,
>>>>не выделяя ее тэгами просто нписал так
>>>>AddType application/x-httpd-php4 .php
>>>>Вот. А влоге пишет следующее
>>>>в access_log
>>>>192.168.10.20 - - [19/Jan/2005:21:39:46 +0300] "GET /cgi-bin/test.php HTTP/1.1"
>>>>500 618
>>>>
>>>>в error_log
>>>>[Wed Jan 19 21:39:46 2005] [error] (8)Exec format error: exec of /usr/local/apac
>>>>
>>>>he/data/cgi-bin/test.php failed
>>>>[Wed Jan 19 21:39:46 2005] [error] [client 192.168.10.20] Premature end of scrip
>>>>
>>>>t headers: /usr/local/apache/data/cgi-bin/test.php
>>>>
>>>>Вот.
>>>Почему опять в cgi-bin то???? положи в корень и все заработает.
>>
>>При запуске из корня то есть htdocs/
>>В эксплорере происходит следующее.
>>На секунду появляется окошко закачки, тут же что то качается, фокус исчезает
>>как буд то что то щас запуститься и тут же опять
>>возврящается в окно эксплорера, при этом в окне эксплорера вобще ничего
>>не проичходит.
>>А в файле access_log появляется запись
>>92.168.10.20 - - [19/Jan/2005:21:48:36 +0300] "GET /test.php HTTP/1.1" 304 -
>>в error_log все в порядке ничего не пишет.
>>Я просто ума неприложу что делать, что нетак. Да и потом а
>>почему бы ему не срабатывать так же и в cgi-bin ведь
>>разницы нет. У меня в cgi-bin .htaccess неприсутствует. По всем признакам
>>все должно проходить нормально. Что делать вот загадка блин.
>
>почему htdocs то?
>Что у тебя в DocumentRoot? в httpd.conf?Вот так в httpd.conf
DocumentRoot "/usr/local/apache/data/htdocs"
кинь мне в мыло httpd.conf
info(a)lucky.ymrc.ru
>кинь мне в мыло httpd.conf
>info(a)lucky.ymrc.ru
Все отправил. Он должен быть уже в пути
>>кинь мне в мыло httpd.conf
>>info(a)lucky.ymrc.ru
>Все отправил. Он должен быть уже в пути
Ребята не оставляйте в неведении. У нас таже проблема. Расскажите как справились.
Сенк.
>>>кинь мне в мыло httpd.conf
>>>info(a)lucky.ymrc.ru
>>Все отправил. Он должен быть уже в пути
> Ребята не оставляйте в неведении. У нас таже проблема. Расскажите как
>справились.
>Сенк.
В конифге была ошибка
Проверьте вот эту строку, должна быть именно такой
AddType application/x-httpd-php .php
а не такой:
AddType application/x-httpd-php4 .php