http://localhostに接続するとユーザー名・パスワードを聞かれる - PHPプロ!Q&A掲示板

911

  • 0P

http://localhostに接続するとユーザー名・パスワードを聞かれる

質問日時 / 2008年1月24日 16:49    回答数 / 14件

Questioner:  AlohaHawaii  このエントリーをはてなブックマークに追加 

キーワード / XAMPP    localhost   

XAMPPをインストールしました。
.htaccessファイルを作成し
IEからhttp://localhostを表示しようとすると「ユーザー名」「パスワード」を入力する
ウィンドウが表示され、何を入力していいか分からず、結局「localhost」には
アクセスできません。
何を入力すればいいのでしょうか。
もしくは何を設定すればよいのでしょうか。
よろしくお願い致します。

この質問への意見の募集は締め切られ、ポイントは既に配分されました。
意見を投稿することはできますが、ポイントを受け取ることはできません。



ツリー一覧

┣A01moochomoochoと申します。 ベーシック認証を利用したいと
┃┗A01-1AlohaHawaiimoochoさん、回答ありがとうございます。 回答いただ
┃ ┗A01-1-1moochomoochoです。 >回答いただいた「.htaccess」は作
┃  ┗A01-1-1-1AlohaHawaiimoochoさん、丁寧な回答ありがとうございます。 混乱
┃   ┗A01-1-1-1-1moochomoochoです。 上記の内容からではエラーは断定でき
┃    ┗A01-1-1-1-1-1AlohaHawaiimoochoさん、回答ありがとうございます。 ご指摘通り
┃     ┗A01-1-1-1-1-1-1moochomoochoです。 >「.htaccess」の「ErrorDocument」
┃      ┗A01-1-1-1-1-1-1-1AlohaHawaiimoochoさん、ご親切に解説ありがとうございます。 再
┃       ┗A01-1-1-1-1-1-1-1-1moochomoochoです。 再インストールしてもダメなんですね
┃        ┣A01-1-1-1-1-1-1-1-1-1AlohaHawaiimoochoさん、丁寧に回答頂きありがとうございます。
┃        ┗A01-1-1-1-1-1-1-1-1-2AlohaHawaiimochoさん、 >このページの最後の方で、プロキシを使
┃         ┗A01-1-1-1-1-1-1-1-1-2-1moochomoochoです。 会社の何かしらのアドレス・・・とい
┃          ┗A01-1-1-1-1-1-1-1-1-2-1-1AlohaHawaiimoochoさん、ありがとうございます。 色々勉強になり
┗A02TorrySegallXAMPPをインストールするにあたって、どのようなペー

回答一覧

並び替え:

A01 満足
answerermoocho [1月24日 17:05] (最終編集:1月24日 17:08)

moochoと申します。

ベーシック認証を利用したいということですかね?

おそらく設置した.htaccessの記述内に
  1. AuthUserFile [パスワードファイルのパス]
が存在すると思いますが、
パスワードファイルに記述されたID,パスワードが必要です。

まずは記述したパスにパスワードファイルが存在するか確認後
ファイルをエディタで開いてユーザ、パスワードを指定してください。
例:.htpasswd
  1. [ユーザID]:[パスワード]

何を入力すれば・・・の前にユーザを設定しないで
ベーシック認証を使うこと自体、例外といえますので。

最近、PHP自体の話題にまったく触れない質問が多いですね。

追記:
ベーシック認証を使いたくない場合は、
設置した.htaccessファイルを削除すれば認証画面は消えますよ

この意見に回答する

ツリーへ TOPへ

A01-1
replyerAlohaHawaii [1月25日 15:47]

moochoさん、回答ありがとうございます。
回答いただいた「.htaccess」は作成していません。
ファイルがないのに、ユーザー名・パスワードを聞かれるのは
PCが会社のネットワークに繋がっており、何か他のものが
ユーザー名・パスワードを聞いてきているのかもしれません。
ですが、何が聞いてきているのか分からず困っています。

この意見に回答する

ツリーへ TOPへ

A01-1-1 満足
replyermoocho [1月25日 17:50]

moochoです。

>回答いただいた「.htaccess」は作成していません。
ええと、ではもう少しどういうものを設置したのか
説明していただけないでしょうか?

AlohaHawaiiさんの環境や設定を確認したうえでの回答ではないので
現行の情報だけだと、さすがに答えようがありません。

設置した.htaccessにはどういった記述をされましたか?

>PCが会社のネットワークに繋がっており、何か他のものが
>ユーザー名・パスワードを聞いてきているのかもしれません。
通常、ネットワークにつながっているにしても
localhostで接続している限り、外部の設定は反映されないと思いますが・・・

ページに外部にアクセスするコードとか組み込んだとか
localhostをhostsファイルで書き換えたとか
特殊なことはされていませんよね?

もしくは、xampp内のapacheのhttpd.confなどに直接
認証を付け加えたとか・・・

仮にそういったことされていたとなると、
最初の質問内容と変わってきますし。

あと、一応確認しておきたいことですが。

.htaccessを設置した上で、認証の話題になっていたので
ベーシック認証の類と予想しましたが、
実際表示されているのは、ベーシック認証のプロンプトであっていますか?

ページ内でフォームを作っているとかのオチではないですよね?

ベーシック認証の場合でも、.htaccessからだけでなく
perlやphpスクリプト内からでも利用できますが
そちらも確認してください。

ざっと簡単に思いつくことを並べましたが、
とりあえず現状では判断できないので、この辺りで。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1
replyerAlohaHawaii [1月28日 13:49]

moochoさん、丁寧な回答ありがとうございます。
混乱するような返信をして申し訳ありません。

まず「.htaccess」のファイルは作成せず、localhostに接続。
これで「ユーザー名・パスワード」が聞かれるウィンドウが出てきました。
ベーシック認証のプロンプトだと思います。
(phpで作成したベーシック認証のウィンドウと同じです。)
表示されるものは
サイト:localhost
領域:group1    です。
   

次にXAMPPに関するサイトを探し記載されている通り
「.htaccess」を「C:\Program Files\xammpp\apache\htdocs」に作成。
内容は
Order deny,allow
Deny from All
Allow from localhost 127.0.0.1    の3行です。

しかしこれでもベーシック認証のプロンプトが出てきます。

「localhost」ではプロンプトが出ますが、
http://IPアドレス」を入力するとプロンプトが出ず、「htdocs」に作成したphpファイルを
表示することができます。

>ページに外部にアクセスするコードとか組み込んだとか
>localhostをhostsファイルで書き換えたとか
>特殊なことはされていませんよね?
はい、何もしておりません。

>もしくは、xampp内のapacheのhttpd.confなどに直接
>認証を付け加えたとか・・・
これも設定は解説本の通りにしています。認証設定らしき設定はしておりません。
ですが、moochoさんの推測を読ませていただくと、「httpd.conf」の設定が怪しいように思えます。

これらの情報で何か分かりますでしょうか。
よろしくお願い致します。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1 満足
replyermoocho [1月28日 17:20]

moochoです。

上記の内容からではエラーは断定できませんが
ちょっと気になる点はあったので。

>「.htaccess」を「C:\Program Files\xammpp\apache\htdocs」に作成。
とありますが、ルートを変更しているのですね。

「[xamppのインストールディレクトリ]\htdocs」がデフォルトのルートですが
間違いないですか?

仮にルートディレクトリを変更した覚えがないのに、apache\htdocsに
htaccessを置いたとしても、当然ながら反映されないので。

>「http://IPアドレス」を入力するとプロンプトが出ず、「htdocs」に作成したphpファイルを
>表示することができます。
この辺りも気になるところではありますね。

IPでアクセスできるということなので、
バーチャルホストやエイリアスを設定している可能性も考えれるので
http://ip/と、http://localhost/でアクセスした先が
同一であるかも確認したいところです。

おそらく無駄ですが、設置したhtaccessにErrorDocumentを加え
正しくアクセス制御ができているかも確認してみてください。
  1. Order deny,allow
  2. Deny from All
  3. Allow from localhost 127.0.0.1
  4. #アクセスが拒否されるとgoogleに移動(どこでもいいのでお好きなパスに)
  5. ErrorDocument 404 http://google.co.jp/

上記、間違っていないようでしたら、httpd.confに関しては
参考にされた解説本の設定を見直していくしかないですね。

Location系も設定も考えましたが、
認証の設定はしていないのであれば関係なさそうですし。

あとは、アパッチのログを確認してアクセスしたファイルやホストが
任意のものかも確認してみてください。

あと、もしhttpd.confを変更したのであれば
xamppの場合、httpd.confから外部の設定を取り込んでいると思うので
外部の設定も変更したのであれば、確認してみてください。

xamppなら意外と再インストールをかけて
デフォルトの状態でhttp://localhost/にアクセスできるか
試した方が早いかもしれないですが・・・

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1
replyerAlohaHawaii [1月29日 11:55]

moochoさん、回答ありがとうございます。
ご指摘通り「.htaccess」を「c:\Program Files\xampp\htcocs」に作成しました。

Order deny,allow 
Deny from All 
Allow from localhost 127.0.0.1 
ErrorDocument 404 http://google.co.jp/

と記述し、「localhost」にアクセスしたところ、やはりベーシック認証のウィンドウが出てきました。
http://IP」では、「Access forbidden! Error403」と表示されたので
「.htaccess」の「ErrorDocument」を「403」にしたところ、
ベーシック認証のウィンドウは出ず「google」が表示されました。

アパッチのエラーログは↓です。

[Tue Jan 29 11:48:06 2008] [warn] pid file C:/Program Files/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
[Tue Jan 29 11:48:07 2008] [notice] Apache/2.2.6 (Win32) DAV/2 mod_ssl/2.2.6 OpenSSL/0.9.8g mod_autoindex_color PHP/5.2.5 configured -- resuming normal operations
[Tue Jan 29 11:48:07 2008] [notice] Server built: Nov  7 2007 11:48:48
[Tue Jan 29 11:48:07 2008] [notice] Parent: Created child process 2244
[Tue Jan 29 11:48:10 2008] [notice] Child 2244: Child process is running
[Tue Jan 29 11:48:10 2008] [notice] Child 2244: Acquired the start mutex.
[Tue Jan 29 11:48:10 2008] [notice] Child 2244: Starting 250 worker threads.
[Tue Jan 29 11:48:10 2008] [notice] Child 2244: Starting thread to listen on port 443.
[Tue Jan 29 11:48:10 2008] [notice] Child 2244: Starting thread to listen on port 80.

これで何かわかりますでしょうか。
何度も検証して頂きすみません。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1 満足
replyermoocho [1月29日 22:17]

moochoです。

>「.htaccess」の「ErrorDocument」を「403」にしたところ、
>ベーシック認証のウィンドウは出ず「google」が表示されました。
すいません。アクセス制限なんで403が正解ですね。
書き損じていました。

IPでアクセスした場合・・・つまりlocalhostや127.0.0.1以外での
アクセスの場合googleに遷移しているので、
やはり設置したhtaccessには問題はないですね。

あと、apacheのエラーログからでは、
内部エラーしか読み取れないのでなんともいえないです。

とりあえず、参照ページがおかしくなっているか、
認証をいつの間にか書いてしまったか
httpd.confの設定の問題に間違いなさそうですね。

とりあえず、一度htdocsに設置したhtaccessを削除してみて
phpファイルに以下を追加してみてください。
  1. echo __FILE__;
これで、アクセスされたPHPファイルのパスを表示できるので
ベーシック認証の出てこない、http://IPアドレス/でアクセスして
ファイルパスが表示されているかを確かめてください。

正しく表示できている場合は不細工ですが、どこで設定されたかわからない認証を
新たに上書きして、任意のファイル読み込めているかを試します。

まず、apacheに同梱されているhtpasswd.exeから
「.htpasswd」を作成してみてください。
起動はコマンドプロンプトからの例です。
  1. "c:\Program Files\xampp\apache\bin\htpasswd" -c "c:\Program Files\xampp\htcocs\.htpasswd" 任意のid 
  2. Automatically using MD5 format.
  3. New password: **** //任意のパスワード
  4. Re-type new password: **** //任意のパスワード再確認
  5. Adding password for user id

次にhtdocsにhtaccessを作成しベーシック認証を追加します。
  1. AuthUserFile    "/Program Files/xampp/htcocs/.htpasswd"
  2. AuthGroupFile   /dev/null
  3. AuthName        "Auth Test"
  4. AuthType        Basic
  5. Require valid-user

これで、新たに設置したベーシック認証が優先されるはずなので
http://localhostにアクセスして、ポップアップした認証画面に
Auth Testと表示された上、IDとパスワードの入力欄が表示できていれば
間違いなく新しく設定したベーシック認証です。

Auth Testと表示されていない場合は、
何かしら設定で別ページに飛んでいる可能性もあります。

とりあえずAuth Testが表示されている場合は
htpasswd.exeでパスワードファイルを作成したときに入力した
ID、パスワードを入れて認証を完了してください。

その後、表示されたPHPに__FILE__から取得されたパスが
表示されているはずなので、それを確認してください。

表示されていなければ、どっか違うページが表示されているのでしょう。

パスも正しく表示されたとすれば、コンフィグファイルで
何か設定を間違ったか何かだと思うので、念入りにチェックしてください。

テスト用なのでhtpasswdもhtdocs内に入れましたが、
サイト運用時などでは、public階層より上に設置するようにしてください。

長々となりましたが・・・

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1-1
replyerAlohaHawaii [1月31日 16:49]

moochoさん、ご親切に解説ありがとうございます。
再度、c:\xamppにインストールをし直しました。

「.htpasswd」「htaccess」を作成し、「http://localhost/test.php」を表示しようとすると
「group1」でIdを訊かれます。
http://IP/test.php」で入ると「Auth Test」のウィンドウが出て、
設定したID、パスワード入力の後、
PHPファイルを表示することができました。

少し解決に近づいてきたように思われます。

表示されたPHPのファイルパスは「c:\xampp\htdocs\test.php」です。
とりあえずはここまで進みました。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1-1-1 満足
replyermoocho [2月1日 01:12]

moochoです。

再インストールしてもダメなんですね。

とりあえず、localhostでのアクセスのみ
group1で聞かれるのであれば、
localhostが別ページを参照している可能性が高いですね。

http://www.atmarkit.co.jp/bbs/phpBB/viewtopic.php?topic=20927&forum=7
このページの最後の方で、プロキシを使っている場合に
問題が起こることもあるようですね。

この場合は、立ち上がらない・・・と言うことなんで
今回とは違いますが。

ちなみにですが、http://127.0.0.1/
http://%コンピュータ名%/でアクセスした場合も
group1の認証でしょうか?

正直、127.0.0.1でのアクセスがおかしかったら
どうしようもできないですが・・・。

ついでなんで
C:\WINDOWS\system32\drivers\etc\hosts
に127.0.0.1 localhostが設定がされているかも
確認してみてください。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1-1-1-1
replyerAlohaHawaii [2月1日 10:45]

moochoさん、丁寧に回答頂きありがとうございます。
早速調べてみました。

>ちなみにですが、http://127.0.0.1/
>http://%コンピュータ名%/でアクセスした場合も
>group1の認証でしょうか?

はい、group1です。

>C:\WINDOWS\system32\drivers\etc\hosts
>に127.0.0.1 localhostが設定がされているかも
>確認してみてください。 

#コメントが17行あり、その下に
127.0.0.1    localhost
と記述されていました。(←この行は#は付いていません)

httpdの設定をもう一度確認してみます。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1-1-1-2
replyerAlohaHawaii [2月1日 11:24]

mochoさん、
>このページの最後の方で、プロキシを使っている場合に
>問題が起こることもあるようですね。

LANの設定の「自動構成」の箇所に「自動構成スクリプトを使用する」に
チェックが入っており、会社の何かしらのアドレス「http://***.ne.jp/***.pac」が入っています。
このチェックを外して「http://localhost」を入力すると、
前回設定した「Auth Test」のウィンドウが出てきました。
設定したID,パスワードを入力を入力すれば「localhost」を
表示することができました。
一瞬光が射しました。

ですが、LANの設定を元に戻すと「group1」のウィンドウが出るという状態です。

少し前進してます?
LANの設定なんでしょうか?
ですが、この設定は会社が設定しているので、ここを変えることはできません。
教えていただいた@ITの書き込みをよく読んでみます。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1-1-1-2-1 満足
replyermoocho [2月1日 15:08]

moochoです。

会社の何かしらのアドレス・・・というところで。
プロキシのため参照先が変わっていることで間違いなさそうです。

詳しくはpacファイルの中身を読んでみないとわからないですが、
  1. if (shExpMatch(url,"localhost") ) {
  2.     return "DIRECT";
  3. }
  4. if (shExpMatch(url,"127.0.0.1")) {
  5.     return "DIRECT";
  6. }
のようなものを最初に追加すると解決できるのでしょうが
会社が設定・・・とのことなので難しそうですね。

IEだけでいいのなら、LANの設定内の自動構成スクリプトを設定したまま
プロキシサーバー項目のLANにプロキシサーバを使用するにチェック、
アドレスとかは入れなくていいので、
ローカルアドレスにはプロキシサーバーを使用しないにチェックを入れることで
ローカル参照になる場合もあるようです。

ちょっと優先順位とかはわからないですが・・・

随分、前進した気がします(^^;
とりあえず、原因はわかったので。

一度、「http://***.ne.jp/***.pac」をダウンロードしてみて
function FindProxyForURL(url,host){の記述があると思うので
直後に上に記載したコードを埋め込み、
自動構成スクリプトを「c:\***.pac\」のように変更して
任意の動作になるか試してみては如何でしょう?

その後、ローカルに置いた設定ファイルを使わせてもらえるように
社内で掛け合ってみるか、もしくは「http://***.ne.jp/localOk.pac」みたいに
亜種バージョンを作成してもらうか・・・くらいでしょうか。
(Webにおいてあるファイルが更新される場合もあるかもしれないので
亜種を作ってもらうのが一番ですが)

ローカルでの開発中のみ、プロキシを外すってこともありも知れないですが
やっぱり、面倒ですし、外部サイトも見に行きますしね。

この意見に回答する

ツリーへ TOPへ

A01-1-1-1-1-1-1-1-1-2-1-1
replyerAlohaHawaii [2月1日 16:10]

moochoさん、ありがとうございます。
色々勉強になりました。
PHP初心者の私ですが、今回沢山の技を教えて頂き、感謝しております。

pacの中身を書き換えは許されそうにないので、
プロキシを外す、外部サイトは隣の席のPCを使う等
やりやすい方法を考えます。

長きにわたりお付き合い下さいまして本当にありがとうございました。

この意見に回答する

ツリーへ TOPへ

A02 参考になった
answererTorrySegall [1月26日 02:58]

XAMPPをインストールするにあたって、どのようなページを参考にしたのでしょう?
きちんとした紹介の仕方をしているサイトであれば、これに関しても説明がされているはず。
紹介サイトに全く情報がなかったのなら、本家のインストールガイダンスを読めば良い事です。

この意見に回答する

ツリーへ TOPへ

<<質問一覧へ



Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)