【发布时间】:2014-01-26 11:24:46
【问题描述】:
以前我使用 IIS 服务器作为 PHP 服务器。目前是apache。
在 IIS 上,我可以访问变量 $_SERVER ['REMOTE_USER'],它返回用户名和域(例如域\用户),但在安装 XAMPP 后,此变量不可用。
我应该怎么做才能让这个变量再次得到?
我的应用在本地网络上,没有互联网连接
【问题讨论】:
以前我使用 IIS 服务器作为 PHP 服务器。目前是apache。
在 IIS 上,我可以访问变量 $_SERVER ['REMOTE_USER'],它返回用户名和域(例如域\用户),但在安装 XAMPP 后,此变量不可用。
我应该怎么做才能让这个变量再次得到?
我的应用在本地网络上,没有互联网连接
【问题讨论】:
只有当 Apache 已经对用户进行了认证,你才能访问远程用户,检查the apache auth howto。
【讨论】:
终于搞定了! :D
从这里下载模块https://www.apachehaus.net/modules/mod_authnz_sspi/(x86 用于 32 位,x64 用于 64 位 apache)
从 Apache24\modules 文件夹中复制 mod_authnz_sspi.so 并将其放在您的网络服务器上 Apache 文件夹的 modules 文件夹中
在 httpd.conf 文件(您的 apache 的配置文件)下放置这行代码。尝试将其作为最后一个模块加载:
LoadModule authnz_sspi_module modules/mod_authnz_sspi.so
确保以下模块未注释
LoadModule authn_core_module modules/mod_authn_core.so
LoadModule authz_core_module modules/mod_authz_core.so
PS:需要以上两个模块才能正常工作。
将以下代码放入您的 httpd.conf 文件中
<Directory "path/to/your/htcdocs/folder"> Options None AllowOverride All Order allow,deny Allow from all #AuthName "SSPI Protected Place" AuthType SSPI SSPIAuth On SSPIAuthoritative On SSPIOfferBasic On SSPIOmitDomain On Require valid-user </Directory>
重新启动您的 apache 服务,希望它应该重新启动而不会出现任何问题。
回显 $_SERVER['PHP_AUTH_USER'];
就是这样。
我正在使用:
【讨论】:
<Directory "path/to/your/htcdocs/folder">
Options None
AllowOverride All
Order allow,deny
Allow from all
#AuthName "SSPI Protected Place"
AuthType SSPI
SSPIAuth On
SSPIAuthoritative On
SSPIOfferBasic On
SSPIOmitDomain On
Require valid-user
</Directory>
如果你使用 ModRewrite 或其他我建议你保留
Options Indexes FollowSymLinks Includes ExecCGI
否则你会得到类似的错误
[rewrite:error]: Options FollowSymLinks and SymLinksIfOwnerMatch are both off, so the RewriteRule directive is also forbidden due to its similar ability to circumvent directory restrictions
【讨论】:
我为此奋斗了很长时间,结果我必须安装 VC redistributable 才能使其工作。
【讨论】: