php 3 + apache
Если пишу в броузере:
http://localhost/path-to-php/php.exe/path-to-test-file/test.php3
то в этом случае браузер выдает то, что нужно(а именно "hello world" на пустом листе :)))
Если же пишу:
http://localhost/path-to-test-file/test.php3
то ничего не работает, хотя должно.
Кстати индексовая страничка (index.php) тоже выдается как обычный html, как будто в ней совсем нету PHP кода.
Не понимаю, как заставить браузер интерпретировать *.php файла как надо, без явного указания программы php.exe. Может с конфигом в Apache чего-то неладно. Народ, выручайте, а то у меня голова лопнет с этим php. Заранее благодарен.
AddType application/x-httpd-php3 php3
ScriptAlias /_php3/ "/usr/local/php3/"
Action application/x-httpd-php3 "/_php3/php.exe"
Больше никаких упоминаний о php.exe ни в Apache, ни в других местах нет. Попробуй сделать так.
У меня все работает отлично. В httpd.conf в самом конце содержится следующее:
AddType application/x-httpd-php3 php3
ScriptAlias /_php3/ "/usr/local/php3/"
Action application/x-httpd-php3 "/_php3/php.exe"
Больше никаких упоминаний о php.exe ни в Apache, ни в других местах нет. Попробуй сделать так.
Такая конфигурация неправильная:
http://localhost/_php3/php.exe?c:\autoexec.bat
Но это цветочки, если добраться до файлов логов, то можно будет выполнять произвольный код.
Вот, как надо:
......
#LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule php4_module c:/Programs/php/sapi/php4apache.dll
.......
#AddModule mod_headers.c
#AddModule mod_usertrack.c
#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c
........
<IfModule mod_mime.c>
#
# AddType allows you to tweak mime.types without actually editing it, or to
# make certain files to be certain types.
#
AddType application/x-tar .tgz
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php
......
По-моему, главное, чтобы работало :)
Это, я подразумевал, уже итак ясно %))
По-моему, главное, чтобы работало :)
у меня в принципе то же самое и было написано, только тип я добавлял в mime.types, а не в httpd.conf. Но я сделал точно как ты написал, все равно не пашет. Вернее, если я явно путь к php.exe указываю, то работает, конечно, но сам подцеплять php3 файлы Apache почему-то не хочет.
Такая конфигурация неправильная:
http://localhost/_php3/php.exe?c:\autoexec.bat
Но это цветочки, если добраться до файлов логов, то можно будет выполнять произвольный код.
Вот, как надо:
......
#LoadModule headers_module modules/mod_headers.so
#LoadModule usertrack_module modules/mod_usertrack.so
#LoadModule unique_id_module modules/mod_unique_id.so
LoadModule php4_module c:/Programs/php/sapi/php4apache.dll
.......
#AddModule mod_headers.c
#AddModule mod_usertrack.c
#AddModule mod_unique_id.c
AddModule mod_so.c
AddModule mod_setenvif.c
AddModule mod_php4.c
........
<IfModule mod_mime.c>
#
# AddType allows you to tweak mime.types without actually editing it, or to
# make certain files to be certain types.
#
AddType application/x-tar .tgz
AddType application/x-httpd-php .php4
AddType application/x-httpd-php .php
......
а что там насчет AddModule? Можно попробовать, только, где мне эти модули взять (mod_php4.c, php4apache.dll)? кстати у меня не php4 а php3. Будут ли какие-нибудь изменения в этом случае?
Action some-type "/someurl/somescript.cgi"
То соответственно при обращении к файлу типа some-type соответственно somescript.cgi и выполняется c параметром имя твоего файла.
ScriptAlias /_php3/ "C:/php3/"
юзается, что мол, URL-директория /_php3/ распологается не в "DOCUMENT_ROOT/_php3/", а в "С:/php3/". Где DOCUMENT_ROOT, ну то что написано у тебя в конфиге как DOCUMENT_ROOT. (В апаче, и в PHP слеши ставятся в другую сторону, не так, как в винде).
С типом тоже вроде ты всё понял. Вот и думай, где ошибся.
А про вариант мой. Так это... файл mod_php4.c не надо, он внутри той DLL. Это модуль добавляется а не файл. Только он наверное называется mod_php.c
А файл-DLL должен в дире с php лежать. У меня он в дире с php в дире sapi.
Итак:
1. Что выводит(что не работает).
2. Версии апача и ПХП
3. Что в логи валится
4. Куть из конфигов участки, что писал.
5. Директории все напиши: где PHP, где апач, где DOCUMENT_ROOT и т.д
Вообщем проверь, правильно ли ты всё написал, может php3 в миме-типах написал, а выполнить хочешь .php Может директорию неправильно написал в ScriptAlias'e. Может в мимах один тип, а в Action уже другой. Вообщем проверь всё.
У меня в конфиге было прописано
ScriptAlias /_php_/ "d:/internet/usr/php3"
Action application/x-httpd php3 "/_php_/php.exe"
Ты написал, что alias надо использовать если php.exe находится не в DOCUMENT_ROOT, а у меня DOCUMENT_ROOT = "d:/internet". Так что вроде как получается что ScriptAlias убрать можно. В общем я заменил эти две строки на
Action application/x-httpd-php3 "/usr/php3/php.exe"
и все закончилось хорошо :):):)