배경
PHP/5.3.2를 설치 한 Apache/2.2.15 (Win32)가 인증을 처리하고 있습니다.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>
인증이 정상적으로 작동합니다. 아무 문제 없습니다.
그러나 documentation에 관한은 여분의 필드는 환경에 AUTHENTICATION_fieldname 변수에 투입됩니다 다시 AuthDBDUserPWQuery에서 돌아왔다.
는 phpinfo()
으로, 나는 "아파치 환경"에서 그는 올바른 값으로 이러한 변수를 볼 수 있습니다.
AUTHENTICATE_USERNAME
AUTHENTICATE_REALM
AUTHENTICATE_ACCESS 내 PHP에서 해당 환경 변수를 가져올 수 없습니다
문제.
1 <?php
2 $Access = apache_getenv('AUTHENTICATE_ACCESS',true);
3 var_dump($Access);
4 ?>
3 호는 변수가 발견되지 않았 음을 나타내는 bool (false)을 인쇄합니다!
그러나 'HTTP_HOST'와 같은 다른 Apache 환경 변수로 변경하면 작동합니다.
.. 그리고 예, 나는 또한 getenv()
시도, 동일한 결과.
아파치 서버가 작동 4월 1.3.0 컴파일해야한다는 메모가있다. 나는 아파치 MSI는 httpd.apache.org에서 빌드를 사용하고 나는 그들이 PHP에서 액세스 할 수 있어야합니다 phpinfo()
로 볼 수 있기 때문에 버전 2 위 연이율 컴파일 될 것으로 보인다.
* [주석 :이 주석의 내용은 [개정 내역] (http://stackoverflow.com/posts/4308886/revisions)을 참조하십시오.] * 우리는 일반적으로 누군가의 영어에 대해 불을 붙이지 않습니다 좋음) 그리고 누군가를 빨아 들인 코드 형식이 아마도 그것을 잘 읽을 수 있도록 아마도 편집 할 것이기 때문이다. 또한 사람들이 google/rtfm에 google/rtfm이라고 들리는 곳이 아닙니다. 인터넷 검색을 사용하는 사람들이 답을 얻으 려 할 때 답을 얻을 수 있습니다. : p – ThiefMaster
귀하의 질문에 대한 답변이 없지만 지금까지 보아온 최고의 구조적 질문에 대한 +1입니다. –
완벽하게 유효한 질문입니다. 그렇게 방어 할 필요가 없습니다. :) RTFM 답변은 일반적으로 많은, * 많이 * 나쁜 (비) 질문에 예약되어 있습니다. – deceze