К списку форумов К списку вопросов
Опять эта долбанная аутентификация
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

К списку вопросов на форуме Веб-дизайн

>>