Basic認証でのログインができない問題

このQ&Aのポイント
  • Basic認証を行いたいが、設定したIDとパスワードでログインできない。
  • .htaccessファイルと.htpasswordファイルに設定が記載されており、設置ディレクトリも正しい。
  • どこが間違っているのか原因を特定する必要がある。
回答を見る
  • ベストアンサー

Basic認証について

Basic認証を行ないたいと思っていますが、設定したIDとPWDでログインできません。 設定は以下の通りです。 .htaccessファイル ------------------ AuthUserFile /****/phpMyAdmin/.htpassword AuthGroupFile /****/phpMyAdmin/.htgroup AuthType Basic AuthName "phpMyAdmin login?" require valid-user ------------------ .htpasswordファイル ------------------ test:test ------------------ .htgroupファイルは、空。 設置ディレクトリは3つとも /****/phpMyAdmin/ に設置。 レンタルサーバを利用していて、FFFTPで表示される サーバのパスは /****/phpMyAdmin だったので、上記のパスを記述しています。 どこが間違っているのでしょうか。 よろしくお願い致します。

質問者が選んだベストアンサー

  • ベストアンサー
  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.6

パスワードファイルは、 ユーザ名:暗号化したパスワード という形式をしていますが、この暗号化の方法が何種類かあります。サーバーのapacheが使っているのと同じ方法で暗号化する必要があります。htpasswdコマンドのオプションを調べて、いろいろ指定してみてください。 linux版の場合は、#2の補足にある >-m Force MD5 encryption of the password. >-d Force CRYPT encryption of the password (default). >-p Do not encrypt the password (plaintext). このあたりがそのオプションですがWindows版でも同じとは限りません。 あと、これはテキストファイルなので改行コードが変換されるようにテキストモードでアップロードしてくださいね。 なんか最初からレンタルサーバー業者のサポートに聞くのが早かったかもしれませんね。有料の業者ならちゃんとやり方を教えてくれるだろうし、無料の場合は、ユーザーのBBSなんかが充実してたりすると思うのでそこで聞くのが良かったでしょう。もし上記で解決しなかったらそうしてみてください。

55hosa
質問者

お礼

大変参考になりました。 ありがとう御座いました。

その他の回答 (5)

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.5

Internal Server Error はわからないです。 >htpasswd: cannot open file home/*******/phpMyAdmin/.htpassword for write access >fopen: No such file or directory エラーメッセージを見直すと、homeの前にスラッシュが無いですが、実際のコマンドラインにはあるんでしょうか? 他の方法としては、手元でCDブートのKNOPPIX等ででも、htpasswd を実行して、結果のファイルをアップロードするか。あるいはWindows用のapacheもあるのでインストールすれば htpasswd.exe もきっとあるはずですね。

55hosa
質問者

お礼

ご返答ありがとうございました。 XPにApacheをインストールして、 C:\***\Apache Group\Apache2\bin>htpasswd.exe -bc "C:\***\.htpassword test test を実行しましたところ、 Autmatically using MD5 format. Assing password for user test と返ってきて、.htpassword ファイルが出来てました。 喜びに満ちてこのファイルをサーバーにアップロードしましたが、認証されませんでした。 作り方は合ってますでしょうか。 お手数お掛け致しますが、何卒よろしくお願い致します。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.4

アクセス権についてはご承知かと思っていました。 エラーメッセージからすると、.htpassword の書き込みアクセス権が無いようです。.htpassword のファイルが作られていればそのアクセス権を rw-rw-rw- (666) もしくは rw----rw- (606) に変更してください。変更できなければ一旦ファイルを削除して、大きさゼロのファイルを .htpassword としてアップロードしてから上記のアクセス権にしてください。 もし .htpassword が作られていなければ、phpMyaAdmin のアクセス権を rwxrwxrwx (777) または rwx---rwx (707)に。

55hosa
質問者

お礼

何度もありがとうございます。 前回の質問をする前に、アクセス権も色々変えてみたものの、変えてしまうとInternal Server Errorになってしまっていた状況でした。 再度改めて試したのは、 ■htpassword のファイルを606へ。 →前回のエラーのまま。 ■一旦ファイルを削除して、大きさゼロのファイルを .htpassword としてアップロード。606へ。 →前回のエラーのまま。 ■htpassword のファイルを606へ。  phpMyaAdminディレクトリを707へ。 →Internal Server Error ちなみに、FFFTPを使ってまして、htpasswordの属性を777にしようと思っても、707にしかならない状況です。 何かお分かりになれば教えて頂きたいと思います。 よろしくお願い致します。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.3

すいませーーーーーーーーん。オプション指定がもれてました。 htpasswd -bc /フルパス/phpMyAdmin/.htpassword test test でした。htpasswd は動いているのでこれで多分できると思います。もしこれでログインできなければ、 htpasswd -mbc /フルパス/phpMyAdmin/.htpassword test test で再度やってみてください。 さらに訂正ですが、上記のオプションを使うことでファイルを上書きしますので、phpMyAdmin/.htpassword はいちいち消さなくてかまいません。

55hosa
質問者

お礼

何度もありがとうございます。 オプションを指定してやってみました。 しかし、以下のエラーが表示されました。 一応、サーバにファイル(前述の3つ)をおいて実行したり ファイルを削除して実行しましたが、同じでした。 htpasswd: cannot open file home/*******/phpMyAdmin/.htpassword for write access fopen: No such file or directory いかがなものでしょうか。 よろしくお願い致します。

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.2

>これはどうやって実行すればよろしいのでしょうか。 自前サーバーもしくは、レンタルでもtelnetログイン出来るなら、ログインしてコマンドを打てばいいです。 ログインできず、ftpのみのアクセスの場合は、 #!/bin/sh exec 2>&1 echo "Content-Type: text/plain" echo "" htpasswd /フルパス/phpMyAdmin/.htpassword test test というファイルを例えばsetpass.cgi等とCGIとして認識される拡張子の名前でアップロードし、実行可能属性をつけます。そしてそれをttp://hostname/xxxx/setpass.cgi というふうにCGIとして実行すればいいです。 もし、htpasswd が command not found と表示されたら、レンタルサーバー業者に、htpasswd のフルパスを問い合わせてファイルにフルパスを書いてください。 実行前に phpMyAdmin/.htpassword を消す(または空にする)のを忘れないように。また、作業後は setpass.cgiはサーバーからは消しておきましょう。

55hosa
質問者

お礼

ご回答ありがとうございました。 実行しましたところ、以下の表示が出ました。 また、サーバに.htpasswordは、作られておりませんでした。 これはエラーなのでしょうか。 若しくは次はどういった手順になるのでしょうか。 何度もお手数お掛けして恐縮です。 よろしくお願い致します。 --- Usage: htpasswd [-cmdps] passwordfile username htpasswd -b[cmdps] passwordfile username password htpasswd -n[mdps] username htpasswd -nb[mdps] username password -c Create a new file. -n Don't update file; display results on stdout. -m Force MD5 encryption of the password. -d Force CRYPT encryption of the password (default). -p Do not encrypt the password (plaintext). -s Force SHA encryption of the password. -b Use the password from the command line rather than prompting for it. On Windows, TPF and NetWare systems the '-m' flag is used by default. On all other systems, the '-p' flag will probably not work. ---

  • notnot
  • ベストアンサー率47% (4848/10262)
回答No.1

パスワードファイル .htpassword ファイルは、手で書くんじゃなくて、htpasswd コマンドで作ります。一旦パスワードファイルを消して、 htpasswd パスワードファイル名 ユーザー名 パスワード を実行してください。

55hosa
質問者

補足

ご返答ありがとうございます。 手で書くのではないんですね。 >htpasswd パスワードファイル名 ユーザー名 パスワードを実行してください。 これはどうやって実行すればよろしいのでしょうか。 お手数お掛け致しますがよろしくお願い致します。

関連するQ&A

  • BASIC認証で確認ダイアログが表示されない

    あるディレクトリにBASIC認証をかけようと思っているのですが、 ダイアログが表示されずに困っています。 [.htaccess] AuthType Basic AuthName "Login ID and Password" AuthUserFile /home/アカウント/www/test/.htpasswd AuthGroupFile /dev/null require valid-user [.htpasswd] test:暗号化されたパスワード ページを開くと返ってくるのが404Errorです。 (「このプログラムではこの Web ページを表示できません」と表示されます) .htpasswdまでのパスは合っていると思います。 なぜダイアログが出てくれないのでしょうか・・・?

  • htaccessファイルの利用について

    今回、アクセス制限を作成しています。 .htaccessファイルの内容は AuthUserFile /home/sites/home/web/cgi/data/.pass AuthGroupFile /dev/null AuthName "Login Test " AuthType Basic require valid-user を設定しています。 暗号化された.passファイルを設置しています。 しかし、.passには無いユーザーとパスワードでアクセスが可能になってしまいます。 原因が全くわかりません。絶対パスの書き方もよくわかりません。 宜しく御願い致します。

    • ベストアンサー
    • HTML
  • htaccessがうまくいきません

    htaccessで認証画面が開き、設定したパスワード、アカウントを入れても認証画面が繰り返し出てきます。どうしたらよいでしょうか? AuthUserFile /Library/WebServer/Documents/phpMyAdmin/.htpasswd AuthGroupFile /dev/null AuthName phpMyAdmin AuthType Basic <Limit GET POST> require valid-user </Limit> どこかおかしいですか?

  • 特定のページだけ認証をかけたい

    このページだけ認証をかけたいのにすべてのページにかかってしまします。 domeinname/html/charge.html 下記のようにしたのですがどこが間違っているのでしょうか? AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user <Files html/charge.html> require valid-user </Files> ・また下記のようにさらにいくつかのページをそれぞれ別のPWにするなどと考えると、htaccsessではもう無理でしょうか? domeinname/html/charge2.html domeinname/html/charge3.html その後下記のようにしたのですがこちらで正しいでしょうか? AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require all granted <Files html/charge.html> require valid-user </Files> <Files html/charge2.html> require valid-user </Files> <Files html/charge3.html> require valid-user </Files>

    • 締切済み
    • PHP
  • Basic 認証ができない

    Basic認証を行いたいのですが、「ユーザー」と「パスワード」を入れても認証を通過できません。 [.htaccess]ファイルには下記のように記述しました。 AuthUserFile /home/test/.htpasswd AuthGroupFile /dev/null AuthName "Secret Area" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> [.htpasswd]ファイルには下記のように記述しました。 test:KNBKgzgRhzAOk パスワードは下記URLで作成しました。 http://www.futomi.com/lecture/htaccess/htpasswd.html なにが問題なのでしょうか?

  • ベーシック認証で404エラー

    .htaccessを使用してベーシック認証をかけたいのですが、404エラーが出てしまいます。(.htpasswdもちゃんとアップロードしています) サーバ会社に聞いてみたところ .htaccessは利用できる フルパスは正しい(サーバ会社が教えてくれました) しかし、なぜ404エラーが出るかは分からない、といわれてしまって困っています。 恐れ入りますが、ご教授いただけると大変助かります! .htaccessの内容は下記になります。 ------------------------------------------ AuthUserFile /home/フルパス/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic AuthPAM_Enabled off <Limit POST GET PUT> require valid-user </Limit> <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> ------------------------------------------ よろしくお願いいたします。

  • 特定のページだけ認証をかけたいです

    このページだけ認証をかけたいのにすべてのページにかかってしまします。 domeinname/html/charge.html 下記のようにしたのですがどこが間違っているのでしょうか? AuthUserFile /var/www/vhosts/domeinname/httpdocs/.htpasswd AuthGroupFile /dev/null AuthName "Input ID and Password." AuthType Basic require valid-user <Files html/charge.html> require valid-user </Files> ・また下記のようにさらにいくつかのページをそれぞれ別のPWにするなどと考えると、htaccsessではもう無理でしょうか? domeinname/html/charge2.html domeinname/html/charge3.html

    • 締切済み
    • CGI
  • 自宅サーバでのベーシック認証

    この度Apacheで自宅サーバを作り、ベーシック認証をしたいと思い、.htaccessと.htpasswdを作成、htaccessには、 <Directory C:/www/public_html/> AuthType Basic AuthUserFile C:/www/public_html/.htpasswd AuthGroupFile /dev/null AuthName "ID & Pass" AuthType Basic require valid-user </Directory> と記述し.htpasswdには、 ID:暗号化されたパスワード という風に記述しました。LAN内で実験してみたところ何も起きずにftpの画面になっただけでした。 昨日から何時間も挑戦しましたがどうしてもダメです。 どうぞご教授お願いいたします。 OSはwindows XPです。

  • Basic認証ができません

    自宅サーバーを立てました。しかしBasic認証ができません。 httpdに以下のように記述しました。プロテクトフォルダーにアクセスすると認証画面は表示されますが、ユーザー名とパスワードを正しく入れても正しく認証されません。.htpasswdと.htaccessは設置してあります。他に何を設定すればいいのでしょうか? <Directory "C:\www\cgi-bin\protect\members"> AuthType Basic AuthName "会員専用" AuthUserFile C:\www\cgi-bin\protect\members.htpasswd Require valid-user </Directory>

  • htaccessの認証が出来ません…

    htaccessによるBasic認証を試みてるのですが、何度IDとPASSを打っても同じ認証画面が出てきてしまいます…。 .htaccessには以下のように記述してあります。 AuthUserFile "フルパス.htpasswd" AuthGroupFile "/dev/null" AuthName "Input ID and Password." AuthType Basic <Limit GET POST PUT> require valid-user </Limit> <Files ~ "^.(htpasswd|htaccess)$"> Order deny,allow deny from all </Files> .htpasswdには ID:暗号化したパスワード と記述してあります。 フルパスの指定に間違いがないとしたら、何か他に認証に 失敗する原因として挙げられるものがありますでしょうか? 『0ad』というところでレンタルサーバーしてまして、htaccess可能となってはいるのですが…。

専門家に質問してみよう