PHP как модуль Apacha

vladlen

Новичок
PHP как модуль Apacha

Как CGI PHP работает. Хотел установит PHP как модуль Apache, но не получилось. Добавил в httpd.conf следующее:

LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php

как рекомендованно в PHP/Windows Installation Notes. Строки для CGI Apache закоментировал. Что не так?
Apache 1.3.27
PHP 4.3.3
 

Макс

Старожил PHPClub
выполни команду
apache -t
и посмтри что выводит
Убедись, что после этих строк нет директивы
ClearModuleList
 

vladlen

Новичок
Нашёл в конференции

LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
<Directory "c:/php">
Options ExecCGI
</Directory>
ScriptAlias "/__php_dir__/" "c:/php/"
Action application/x-httpd-php "/__php_dir__/php.exe"
ScriptInterpreterSource registry

и заработало
Всем спасибо
 

vladlen

Новичок
Ага, так и есть. Авторизация через header не идёт. Так что вопрос остаётся открытым.
 

sergadm

Новичок
1)проинсталить в c:\apache
2) в htpd.conf внести изменения
serveradmin www@www.ru
documentroot "c:\inetpub\wwwroot"
addtype application/x-httpd-php .php
loadmodule php4module c:\php\sapi\php4apache.dll
3)в меню выбрать установить как сервис
4)запустить сервис apache
пути естественно свои
1) разворачиваем php в папку c:\php
2) копируем php4ts.dll и php4ts.lib в c:\winnt\system
3) копируем php.ini в Winnt
4) в php.ini пишем doc_root="c:\inetpub\wwwroot"
5) Session.save_path="c:\inetpub\tmp"
6) display_errors=on
7) extension_dir="c:\php\extensions"
 

Линк

Guest
sergadm, не обижайся, но зачем вместо ссылки на правильный текст, писать самому, да еще и с ошибкой (laodmodule )
 

vladlen

Новичок
При запуске как модуль в error.log пишет

Cannot remove module mod_php4.c: not found in module list
 

Линк

Guest
Каааааакой mod_php4.c? откуда он в конфигурации?
почтай [f]newbie[/f] - там рассказано как сделать
 

vladlen

Новичок
Можно и здесь почитать

http://detail.phpclub.net/article/2001-04-20

но, проблемы не решает

Если в httpd.conf написать

LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php

то в error.log

[Wed Feb 18 16:15:54 2004] [error] Cannot remove module mod_php4.c: not found in module list
[Wed Feb 18 16:15:54 2004] [warn] module mod_php4.c is already added, skipping
 

vladlen

Новичок
AddModule mod_php4.c

Из руководства по установке PHP. Находится вместе с дистрибутивом. Именуется install.txt.

Installing PHP for Apache as module
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

Now that version 4.1 introduces a safer sapi module, we recommend
that you configure PHP as a module in Apache.

To accomplish this, you have to load the php4apache.dll in your
Apache httpd.conf.

!! NOTE !!
Whereever you load php4apache.dll from, php4apache.dll also
needs the php4ts.dll also included in the PHP4 distribution.
php4apache.dll depends on php4ts.dll which is loaded as soon as
Apache loads php4apache.dll. If php4ts.dll can't be found, you
usually get an error like (also see the "Problems?" section at
the end of the file):

Cannot load c:/php/sapi/php4apache.dll into server

So where does php4ts.dll has to be to be properly loaded ?
php4ts.dll is searched in the following order:

1) in the directory where apache.exe is start from
2) in the directory where php4apache.dll is loaded from
3) in your %SYSTEMROOT%\System32, %SYSTEMROOT%\system and
%SYSTEMROOT% directory.
Note: %SYSTEMROOT%\System32 only applies to Windows NT/2000/XP)
4) in your whole %PATH%

Note: What is %SYSTEMROOT% ? Depending on your Windows
installation this may be for example c:\winnt or C:\windows

Usually you would just copy it over to %SYSTEMROOT%\System32.
But if you want to have multiple PHP installations (for
whatever reason) this is a bad idea. For this circumstance the
safest thing is to let php4ts.dll reside in the same directory
where php4apache.dll is loaded from (see point 2 above).


After you've set up the file layout properly, you're ready to
finally configure Apache to load the PHP4 module. Just add the
following lines to your httpd.conf:

LoadModule php4_module c:/php/sapi/php4apache.dll
AddModule mod_php4.c
AddType application/x-httpd-php .php

Note: Especially newer versions of Apache do not need the
AddModule directive anymore, your milage may vary.


Where do I have to put the php.ini ?
The php.ini files is only searched in two places:
1) in your Apache installation directory (e.g. c:\apache\apache)
2) in your %SYSTEMROOT% directory.

-~{}~ 18.02.04 15:38:

Я думаю и PHP и Apache рабочие, раз с CGI всё пашет. То бишь всё дело в настройках. Или нет?
 

Линк

Guest
Especially newer versions of Apache do not need the
AddModule directive anymore
убери строчку и попробуй

-~{}~ 18.02.04 15:41:

Дело в настройках
точнее в этой строчке

-~{}~ 18.02.04 15:42:

переписать файл php4ts.dll в каталог WINDOWS
- в файл httpd.conf (C:\Program Files\Apache Group\Apache\conf\httpd.conf), в самом низу, добавить две строчки
LoadModule php4_module c:/php/sapi/php4apache.dll
AddType application/x-httpd-php .php .php3 .phtml
- перезапустить Апач (ярлыком Restart в группе Apache HTTP Server/Configure Apache Server)
 

Krisha

pain in the neck
vladlen
httpd.conf:
LoadModule php4_module "C:/ПАПКА_С_ВИНДАМИ/php4apache.dll"
AddType application/x-httpd-php .php .php3 .php4 .phtm .phtml

Не забыть переписать файлы php4apache.dll и php4ts.dll в папку с виндами и в system32 (или system для 95\98)

Далее httpd.conf найти строку - ClearModuleList и после нее добавить AddModule mod_php4.c

Все остальные упоминания о пхп удалить.

Перегрузить компутер и попробовать запустить Апач.
 

Линк

Guest
Инетерсно, зачем faq, если Все равно все пишут снова каждый раз?
 

Линк

Guest
Krisha, можно вопрос? (только ради Бога не обижайся!! )
Зачем
найти строку - ClearModuleList и после нее добавить AddModule mod_php4.c
А еще (Учитывая)
Cannot remove module mod_php4.c: not found in module list
Эта строка становится совсем непонятной.(:)confused:
 

Krisha

pain in the neck
Линк
>> найти строку - ClearModuleList и после нее добавить AddModule mod_php4.c

Согласен, это не нужно.
Но, у меня работает как с этой строкой, так и без.
 

Макс

Старожил PHPClub
Линк
у автора темы скорее всего сначало написано:
AddModule mod_php4.c

потом идет
ClearModuleList

То есть сначало добавляется модуль в список модулей, потом этот список очищается. Поэтому в списке модулей mod_php4.c нету. Отсюда и ошибка:
Cannot remove module mod_php4.c: not found in module list
Вобщем надо делать как Krisha сказал. Сам на днях с этой проблемой столкнулся.
 
Сверху