以前我使用IIS服务器作为PHP服务器。目前,它是apache。
在IIS上,我可以访问变量$_SERVER ['REMOTE_USER']
,它返回用户名和域名(例如domain \ user),但在安装XAMPP后,此变量不可用。
我应该怎么做才能让这个变量再次出现?
我的应用是在没有互联网连接的本地网络上
答案 0 :(得分:9)
终于搞定了! :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的Config文件)下放置这行代码。尝试加载它作为最后一个模块:
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 servive,希望它应该重启而不会出现任何问题。
echo $ _SERVER ['PHP_AUTH_USER'];
就是这样。
我正在使用:
答案 1 :(得分:2)
<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
答案 2 :(得分:1)
如果Apache实际对用户进行了身份验证,则只能访问远程用户,请检查the apache auth howto。
答案 3 :(得分:0)
我与此斗争了很长时间,事实证明我必须安装VC可再发行组件才能使其正常工作。