8

VPSのphpバージョンを更新しようとしましたが、機能せず、プロバイダーがうまく機能しなかったため、以前のバージョンにダウングレードしました。

現在、PHP 5.2.17(cli)を使用しています。このバージョンでは、すべてが正常に機能していました。

このアップグレードとダウングレード以降、変数$_SERVER['PHP_AUTH_USER']は空です。(php.iniでは、register_globals「オン」であり、$_SERVER['PHP_SELF']正しく機能しています)。

ユーザー名とパスワードを正しく尋ねられ、接続に成功しましたが、を使用する必要があります$_SERVER['PHP_AUTH_USER']

私は試しまし$_SERVER['PHP_AUTH_USER']$_SERVER['AUTH_USER']、、 $_SERVER['REMOTE_USER']ナットはどれも機能していません。(ただし、エラーが発生することはなく、値が空白になります...)

4

2 に答える 2

13

'mbinette'のおかげでようやく答えが見つかりました。

私のPHP構成では、PHP 5のハンドラーはCGIでしたが、このタイプの認証はPHPCGIでは機能しません。だから私はそれをsuPHPに変更しました(これはAPACHEのデフォルトのものであると思われます)。

CGIとPHP_AUTHの使用方法を説明する投稿をここで見つけてください。しかし、試しましたが、機能しませんでした。

PHPハンドラーに関するいくつかの説明をここで見つけてください

于 2012-09-24T03:08:51.703 に答える
3

Is safe mode activated? That might be your problem...

As of PHP 4.3.0, in order to prevent someone from writing a script which reveals the password for a page that was authenticated through a traditional external mechanism, the PHP_AUTH variables will not be set if external authentication is enabled for that particular page and safe mode is enabled. Regardless, REMOTE_USER can be used to identify the externally-authenticated user. So, you can use $_SERVER['REMOTE_USER'].

Source: http://php.net/manual/en/features.http-auth.php

于 2012-09-24T02:10:22.353 に答える