![]() |
![]() |
OF 21.05.2004 - 09:26 |
Помогите, плиз, разобраться с HTTP-аутентификацией..(header('Status: 401 Unauthorized');) Дело в том, что окошко то появляется, но если ввести имя пользателя и пароль и нажать Ок, то оно появляется снова! Три раза! $PHP_AUTH_USER все время пуст :( Как отключить внешнюю аутентификацию для моей странички? Или в другом проблема? В каких настройках полазить? Спасибо! ЗЫ. Apache 2.0.39/PHP 4.2.1/Windows 2000 |
Kosh 1 - 21.05.2004 - 09:43 |
"The HTTP Authentication hooks in PHP are only available when it is running as an Apache module" http://ru3.php.net/features.http-auth пожалуйста |
OF 2 - 21.05.2004 - 09:45 |
Черт :((( А без модуля никак? |
DIVЕR 3 - 21.05.2004 - 10:36 |
Как! auth.php - это файл инклудишь в каждом php-файле, где требуется авторизация: <? function authenticate() { header( "WWW-Authenticate: Basic realm=\"Your authentication realm\"" ); header( "HTTP/1.0 401 Unauthorized" ); echo "not allowed\n"; exit; } if ( !$_SERVER["PHP_AUTH_USER"] ) { authenticate(); exit; } if ( (md5(md5($_SERVER["PHP_AUTH_USER"])) != "0d8d5cd06832b29560745fe4e1b941cf") && (md5(md5($_SERVER["PHP_AUTH_PW"])) != "696d29e0940a4957748fe3fc9efd22a3") ) { authenticate(); exit; } ?> |
OF 4 - 21.05.2004 - 11:49 |
Без комментариев.. .. По поводу модулей - кто смог установить ПХП как модуль?? У меня никак не получается.. Поделитесь, плиз, рабочей версией Апача и php4apache2.dll к нему. |
Уверенный 5 - 21.05.2004 - 12:25 | OF, это у тебя production server что ли? Если нет, "для себя" - поставь linux под vmware, рекомендую. |
DIVЕR 6 - 21.05.2004 - 13:37 |
Хм... чё-то я запутался... Или приведённый мною пример работал с PHP как CGI, или нет... Уже не помню... т.к. давно пользуюсь mod_php =))) По поводу установки модуля - об этом достаточно подробно написано в install.txt: ========================== 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 inсludеd 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. ========================== Тут указано в частности какие dll-ки куда копировать - без этого Windows по-моему никак. |
OF 7 - 21.05.2004 - 14:17 |
Это все я прочитал и не раз. Причем это установка под Апач 1 версии.. Это у меня и так получилось.. Я спрашивал про установку под второй Апач, но, полазив по нету, я понял, что такая проблема не только у меня, и оставил эти попытки :) Короче, все работает, тему можно закрывать :) |
Alone 8 - 21.05.2004 - 15:27 |
Я под второй ставил... Да сейчас так и стоит. php.ini копируем в ту же директорию, что и apache.exe Файл php4ts.dll копируем туда, где apache.exe. php4apache.dll, его мы кладем (копируем) в папку modules, что находится на том же уровне, что и apache.exe (это папка модулей для apache). Теперь открываем конфигурационный файл apache - httpd.conf (в папке conf на уровне apache.exe). И в его конец добавляем такие строки: ##################### PHP4 LoadModule php4_module modules/php4apache.dll AddType application/x-httpd-php .php .phtml .php3 |