?
Solved

Cannot see REMOTE_USER variable in Apache/2.2.3 (CentOS) using PHP 5.1.6.

Posted on 2008-10-23
9
Medium Priority
?
3,740 Views
Last Modified: 2012-05-05
Hi,

I'm usually an IIS, .NET windows type developer, but at the moment I'm trying to do some PHP.

I'm trying to get the REMOTE_USER server variable so that I can see who is logged on to the company Intranet and I'm using Apache/2.2.3 (CentOS) , PHP 5.1.6.

I've used the CheckPHP function to get all the config settings and I can see many of the server variables but not REMOTE_USER.

Can anyone help? Please bear in mind that I'm very new to linux, apache and PHP, and only really found a few console commands.

Many Thanks

Chris
0
Comment
Question by:chrispont
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
9 Comments
 
LVL 6

Expert Comment

by:hampus_b
ID: 22785208
The way to access remote_user is like this:

<?
echo $_SERVER['REMOTE_USER'];
?>


Try also to create a php-file with the following content:

<?

phpinfo();

?>

save it as info.php and point your browser to it.

Search for "Apache Environment" in the result. Does REMOTE_USER show up?
0
 
LVL 6

Expert Comment

by:James Looney
ID: 22785212
Good morning,

Here is the list of Server Variables:
http://us2.php.net/manual/en/reserved.variables.server.php

For your environment, write a quick php script and put just this in it:

<?php
phpinfo();
?>

Run that and it'll show you all the variables available to you on your server.

I think the ones you are looking for are either

$_SERVER['REMOTE_USER']
$_SERVER['REMOTE_ADDR']  (for the ip)
or
$_SERVER['PHP_AUTH_USER']

Hope that all helps.
0
 

Author Comment

by:chrispont
ID: 22785297
Sorry guys, I've tried phpinfo(); and cannot see the REMOTE_USER there (athough I can see REMOTE_ADDR and this shows the IP address of the client, not the authenticated user name).

I've tried $_SERVER['REMOTE_USER'] in some scripts and this is always empty.
0
Get 15 Days FREE Full-Featured Trial

Benefit from a mission critical IT monitoring with Monitis Premium or get it FREE for your entry level monitoring needs.
-Over 200,000 users
-More than 300,000 websites monitored
-Used in 197 countries
-Recommended by 98% of users

 
LVL 6

Expert Comment

by:James Looney
ID: 22785366
If you force the login using php's extension to HTTP_AUTH, you can output the username using $_SERVER['PHP_AUTH_USER']

for example, try this script:

<?php
if (!isset($_SERVER['PHP_AUTH_USER']))
{
    header('WWW-Authenticate: Basic realm="My Realm"');
    header('HTTP/1.0 401 Unauthorized');
    echo 'Text to send if user hits Cancel button';
    exit;
}
else
{
    echo "<p>Hello {$_SERVER['PHP_AUTH_USER']}.</p>";
    echo "<p>You entered {$_SERVER['PHP_AUTH_PW']} as your password.</p>";
}


0
 
LVL 10

Expert Comment

by:Tobias
ID: 22785519
Hi !

You need to create a .htaccess and .htpasswd file.

The variable $_SERVER['PHP_AUTH_USER'] is used when you have put in place an authentication method.

Follow this tutorial and you would be able to get the user.

http://www.freewebmasterhelp.com/tutorials/htaccess/3


Best Regards
0
 
LVL 6

Expert Comment

by:James Looney
ID: 22785819
Well, that'll get you the same thing as what I have proposed, just with more files. If you are already using php for your page, you can do the HTTP_AUTH via php and then use $_SERVER['PHP_AUTH_USER'] to get the username.
0
 
LVL 10

Expert Comment

by:Tobias
ID: 22786064
Yes I don't have say that is different. Just trying to explain more how it's working. I don't care about get more points, just help people.
0
 
LVL 6

Expert Comment

by:James Looney
ID: 22786916
Right. Same here. :)

My point was just that he is used to IIS and not apache, so he may not want to deal with extra files (.htaccess, .htpasswd) in setting this up.
0
 
LVL 3

Accepted Solution

by:
DarkFish earned 2000 total points
ID: 22806648
NTLM authentication, by default, is not available under a Linux, Apache & PHP together.

You need to install and configure mod_ntlm for Linux & Apache, which is available at:

http://modntlm.sourceforge.net/

mod_ntlm essentially works by retrieving the remote user's details from the workstation and forwarding them to the PHP script using headers.

In addition mod_ntlm can limit who can access your Intranet, and if they are not logging onto correctly you can essentially force them to authenticate using their domain details (this might require more code though, as you would need to authenticate against Active Directory.)

If you don't mind me saying, if you're running a Microsoft based network and wanting to use PHP, you might be better off using PHP on a Windows server as you have, by default, more domain based options and controls over who can view your website.
0

Featured Post

Prepare for your VMware VCP6-DCV exam.

Josh Coen and Jason Langer have prepared the latest edition of VCP study guide. Both authors have been working in the IT field for more than a decade, and both hold VMware certifications. This 163-page guide covers all 10 of the exam blueprint sections.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

It is possible to boost certain documents at query time in Solr. Query time boosting can be a powerful resource for finding the most relevant and "best" content. Of course the more information you index, the more fields you will be able to use for y…
In Solr 4.0 it is possible to atomically (or partially) update individual fields in a document. This article will show the operations possible for atomic updating as well as setting up your Solr instance to be able to perform the actions. One major …
Explain concepts important to validation of email addresses with regular expressions. Applies to most languages/tools that uses regular expressions. Consider email address RFCs: Look at HTML5 form input element (with type=email) regex pattern: T…
The viewer will learn how to dynamically set the form action using jQuery.
Suggested Courses

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question