Apache - 如何获取REMOTE_USER变量

时间:2014-01-08 11:27:29

标签: apache fastcgi

以前我使用IIS服务器作为PHP服务器。目前,它是apache。

在IIS上,我可以访问变量$_SERVER ['REMOTE_USER'],它返回用户名和域名(例如domain \ user),但在安装XAMPP后,此变量不可用。

我应该怎么做才能让这个变量再次出现?

我的应用是在没有互联网连接的本地网络上

4 个答案:

答案 0 :(得分:9)

终于搞定了! :d

  1. 从这里下载模块https://www.apachehaus.net/modules/mod_authnz_sspi/(x86代表32位,x64代表64位apache)

  2. Apache24\modules文件夹中复制mod_authnz_sspi.so并将其放在网络服务器上Apache文件夹的modules文件夹中

  3. 在httpd.conf文件(apache的Config文件)下放置这行代码。尝试加载它作为最后一个模块:

    LoadModule authnz_sspi_module modules/mod_authnz_sspi.so

  4. 确保取消注释以下模块

    LoadModule authn_core_module modules/mod_authn_core.so

    LoadModule authz_core_module modules/mod_authz_core.so

    PS:上述两个模块都是必需的。

  5. 将以下代码放在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>
    
  6. 重启你的apache servive,希望它应该重启而不会出现任何问题。

  7. 现在,为了识别用户,请在php页面上使用以下代码
      

    echo $ _SERVER ['PHP_AUTH_USER'];

  8. 就是这样。

    我正在使用:

    • XAMPP控制面板3.2.1
    • APACHE 2.4

答案 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可再发行组件才能使其正常工作。