2014-01-08 56 views
3

以前我使用IIS服務器作爲PHP服務器。目前,它是apache。Apache - 如何獲得REMOTE_USER變量

在IIS上,我可以訪問變量$_SERVER ['REMOTE_USER'],該變量返回用戶名和域(例如domain \ user),但是在安裝XAMPP後,此變量不可用。

我該怎麼做才能讓這個變量重新獲得?

我的應用程序是沒有互聯網連接的局域網上

回答

9

終於搞定了! :d

  1. 從這裏下載模塊https://www.apachehaus.net/modules/mod_authnz_sspi/(x86的32位和x64 64位阿帕奇)

  2. 複製從Apache24\modules文件夾中的mod_authnz_sspi.so並將其放置在你的Apache的模塊文件夾您的網絡服務器上的文件夾

  3. 在httpd.conf文件(您的apache的配置文件)下放置這行代碼。嘗試加載此作爲最後一個模塊:

    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頁上

    回聲$ _SERVER [ 'PHP_AUTH_USER'];

就這樣。

我使用:

  • XAMPP控制面板3.2.1
  • APACHE 2。4
+0

我只說真棒........ – Sachin

+2

有沒有人比較過這個新的[mod_authn_ntlm](https://www.apachelounge.com/viewtopic.php?p=25073)模塊? mod_authnz_sspi和mod_authn_ntlm似乎都是在同一時間發佈的。有什麼區別? –

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 
0

我這個爭奪很長時間,事實證明,我不得不安裝VC可再發行,使其工作。

+0

運行xampp的機器應該註冊到域中嗎? – davejal