Tło
Mam Apache/2.2.15 (Win32) PHP/5.3.2 skonfigurowaniu obsługi uwierzytelniania.Nie można pobrać zmienne środowiskowe Apache PHP
<Directory /usr/www/myhost/private>
# core authentication and mod_auth_basic configuration
# for mod_authn_dbd
AuthType Basic
AuthName "My Server"
AuthBasicProvider dbd
# core authorization configuration
Require valid-user
# mod_authn_dbd SQL query to authenticate a user
AuthDBDUserPWQuery "SELECT Password,UserName,Realm,Access FROM authn WHERE user = %s"
</Directory>
Uwierzytelnianie działa dobrze! Bez problemów.
Ale odnośnie do documentation każde dodatkowe pole powrócił z AuthDBDUserPWQuery będzie umieścić w AUTHENTICATION_fieldname zmiennej w środowisku.
Z phpinfo()
widzę te zmienne z poprawnymi wartościami w "Środowisku Apache".
AUTHENTICATE_USERNAME
AUTHENTICATE_REALM
AUTHENTICATE_ACCESS
Problem
Nie mogę pobrać te zmienne środowiskowe z mojego php.
1 <?php
2 $Access = apache_getenv('AUTHENTICATE_ACCESS',true);
3 var_dump($Access);
4 ?>
Linia 3 drukuje bool (false), wskazując, że zmienna nie została znaleziona!
Jednak jeśli zmienię na inną zmienną środowiskową Apache, taką jak "HTTP_HOST", działa.
..i tak, próbowałem również getenv()
, ten sam wynik.
Istnieje również notatka, że serwer Apache musi zostać skompilowany z APR 1.3.0 do pracy. Użyłem Apsy msi build z httpd.apache.org i wydaje się, że jest skompilowany z APR powyżej wersji 2. Ponieważ widzę je z phpinfo()
muszą być dostępne z PHP.
* \ [♦ uwaga: Zobacz [historia wersji] (http://stackoverflow.com/posts/4308886/revisions) dla kontekstu tego komentarza.] * Zwykle nie palimy się o czyimś angielskim (twój jest ładny dobrze) i jeśli twoje formatowanie kodu zostało zasysane, ktoś prawdopodobnie edytowałby to, by było dobrze czytelne. Dodatkowo SO nie jest miejscem, w którym ludzie są proszeni do google/rtfm - googling/rtfming jest tym, co ludzie, którzy mogą odpowiadać, gdy dostaną + powtórzenia za to, podczas gdy mówienie, że to zrobi, najprawdopodobniej zaowocuje opcją -rep. : p – ThiefMaster
Nie mam żadnych odpowiedzi na twoje pytanie, ale +1 za posiadanie najlepiej zorganizowanego pytania, jakie kiedykolwiek widziałem na SO. –
Idealnie ważne pytanie, nie trzeba być tak defensywnym. :) Odpowiedzi RTFM są zwykle zarezerwowane na wiele, * dużo * gorszych (nie) pytań. – deceze