Apache не обрабатывает phз скрипты.

darin06

Имеем собранный и установленный из исходников Apache (httpd-2.2.3) со следующими ключами:
--prefix=/usr/local/apache --with-mpm=worker --enable-so --datadir=/data/www/default
--enable-rewrite --enable-mods-shared=all --enable-ssl --with-ssl=/usr/local/ssl

а также php-4.4.4, также собранный из исходников с ключами:
--disable-cli --with-bz2 --with-ctype --with-curl=shared --with-domxml --with-gd=shared 
--with-iconv --with-mysql=shared,/usr/local/mysql --with-openssl=shared --with-overload --with-pcre
--with-posix --with-session --with-standard --with-tokenizer --with-xml --with-zlib --enable-mbstring
--enable-zend-multibyte --enable-dba=shared --with-gdbm --with-freetype-dir
--with-apxs2=/usr/local/apache/bin/apxs --with-jpeg-dir --with-png-dir

В файле httpd.conf прописано:

...
LoadModule php4_module modules/libphp4.so
...
application/x-httpd-php php phtml
application/x-httpd-php-source phps
...

И все вроде на месте, однако обрабатывать php скрипты apache отказывается, при обращении из браузера к скриптам предлагает сохранить их.
В чем может быть проблема?

evgen5555

В заголовке ответа от сервера виден php?

kruzer25

application/x-httpd-php php phtml
application/x-httpd-php-source phps
Я хз, как там должно быть, но у меня написано
<IfModule mod_mime.c>
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
</IfModule>
То есть,
1) Наверное, тебе надо в апаче подключить ещё и mod_mime.c
2) Насколько я понимаю, каждая команда в настройках должна вылядеть как "директива аргумент1 аргумент2 ...", и тебе надо сказать, что именно ты хочешь сделать с этим "application/x-httpd-php php phtml" (например, AddType).
3) Ещё, у меня очень сильное подозрение, что без точек перед расширением апач ничего не поймёт.

darin06

1) Наверное, тебе надо в апаче подключить ещё и mod_mime.c
Что ты под этим имешь ввиду?
3) Ещё, у меня очень сильное подозрение, что без точек перед расширением апач ничего не поймёт.
Ну конечно же я и с точкаи пробывал (т.е. как ты приводишь)

Andbar

htaccess разрешены?
Тогда создай в DocumentRoot этот файлик со следующими строчками:
RewriteEngine on
RewriteCond %{REQUEST_URI} \.php$
RewriteRule ^.+$ /file.php [L,T=application/x-httpd-php]
Там же положи file.php с каким-то пхп кодом (лучше всего phpinfo вызвать) и проверь, работает ли. Просто чтоб знать, на каком этапе затык.

kruzer25

Что ты под этим имешь ввиду?
А х его з, просто у меня там написано "<if module...>" - значит, ей этот модуль нужен для чего-то, а ты компилировал без него (или я чего-то не понимаю)...
Ну конечно же я и с точкаи пробывал (т.е. как ты приводишь)
У тебя там AddType стоит или нет?

Sharp

Так. у меня есть офигенное подозрение, что ты забыл сказать AddModule mod_php4.c

Andbar

Так. у меня есть офигенное подозрение, что ты забыл сказать AddModule mod_php4.c
во втором апаче этого писать не нужно

Sharp

Не обратил внимание, что второй.
Тогда надо только вписать

AddHandler application/x-httpd-php .php

Andbar

AddHandler application/x-httpd-php .php
AFAIK, установка под линуксом и под виндой почти не отличается... Так что привожу цитату из своего php\install.txt:
...
Apache 2.0.x on Microsoft Windows
...
Installing as an Apache module
...
# For PHP 4 do something like this:
LoadModule php4_module "c:/php/sapi/php4apache2.dll"
AddType application/x-httpd-php .php
...

darin06

.htaccess разрешены?

Как их разрешить?

darin06

Модуль mime есть, там же где лежат и остальные модули, в httd.conf он тоже прописан как и остальные:

LoadModule mime_module modules/mod_mime.so

У тебя там AddType стоит или нет?
Да, конечно:

<IfModule mime_module>
...
AddType application/x-httpd-php4 .php .phtml
...
</IfModule>

Sharp

То что я привел — это цитата из работающего httpd.conf-а.
В httpd.conf для Apache 1.3 у меня стоит AddType, для 2.2 — AddHandler.
Хотя я сам это не вписывал — за меня все время делал это make install, и ни разу еще не ошибался.

Sharp

В общем, замени AddType на AddHandler, убери четверку из строчки AddType application/x-httpd-php4 .php .phtml
и потом скажи apachectl configtest — что он тебе скажет на это?
Если скажет, что все OK — смело перезапускай и наслаждайся работающим php.

darin06

Ура, победа. Да четверка там нах не нужна была...

Andbar

Хотя я сам это не вписывал — за меня все время делал это make install, и ни разу еще не ошибался.
нухз, у меня тоже конфиг рабочий.
Вот тут AddHandler (только с другими параметрами) упоминается только при необходимости использовать multyviews. Думаю, что офицальный сайт по пхп ошибается в меньшей степени, нежели пишущие make install.

Sharp

Может просто загвоздка в том, что у тебя 2.0, а у меня и топикстартера — 2.2 ?
Кто их знает, что они поменяли за эти 2 версии...

uncle17

много чего поменяли.
В 2.2 сам мучался с РНР, не зная об этом и пользуя инструкции от 2.0

darin06

з.ы. у меня httpd-2.2.3, вполне себе работает с AddType, AddHandler не пробывал.
Оставить комментарий
Имя или ник:
Комментарий: