我有一个PHP应用程序,需要独立于包含Apache服务器执行HTTP基本身份验证.
在Linux机器上,通过安装php apt-get php,我发现Authorization标题没有出现$_SERVER,但可以通过apache_request_headers()或getallheaders().
在使用Zend Server 6.1.0/PHP 5.4的Windows开发机器上,我无法Authorization通过上述任何方法从PHP内部获取标头值.我怎样才能获得它的价值?
我无法确定它,但似乎Zend Server可能使用FCGI将Apache请求分派给PHP(例如,变量PHP_FCGI_MAX_REQUESTS出现在其中$_SERVER).
如果这是真的,它会解释我的问题,因为mod_fcgid故意Authorization从应用程序中删除标题,请参阅http://httpd.apache.org/mod_fcgid/mod/mod_fcgid.html#fcgidpassheader
我尝试添加
FcgidPassHeader Authorization
Run Code Online (Sandbox Code Playgroud)
对我的阿帕奇httpd.conf,但它只是抱怨:
Invalid command 'FcgidPassHeader', perhaps misspelled or defined by a module not included in the server configuration
Run Code Online (Sandbox Code Playgroud)
同样,也许Zend正在使用mod_fastcgi?基于此页面http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiConfig我尝试将以下内容添加到我的apache httpd.conf:
FastCgiConfig -pass-header Authorization
Run Code Online (Sandbox Code Playgroud)
再次,它只是抱怨说:
Invalid command 'FastCgiConfig', perhaps misspelled or defined by a module not included in the …Run Code Online (Sandbox Code Playgroud)