Ric*_*ich 3 php windows zend-framework apache2
我有一个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 server configuration
Run Code Online (Sandbox Code Playgroud)
Ric*_*ich 17
我发现我可以通过在Windows上的apache配置中添加以下内容来解决这个问题:
SetEnvIf Authorization "(.*)" HTTP_AUTHORIZATION=$1
Run Code Online (Sandbox Code Playgroud)
这HTTP_AUTHORIZATION为$_SERVER全局添加了一个键,就像AuthorizationApache已经传递了标题一样.
| 归档时间: |
|
| 查看次数: |
4450 次 |
| 最近记录: |