- ベストアンサー
htpasswd -c/--- で -bash:---: command not foundと表示される理由
- htpasswd -c/--- コマンドが実行できない現象が発生しています。
- 日経Linux 2005-12月号付録のSUSE Linux 10.0で、Apacheを使用してインターネットWebサーバを構築しました。
- 初心者ですが、Sambaを使用してWindowsからファイルをSUSE Linuxコンピュータに移動し、いくつかの問題を解決しました。しかし、htpasswd -c/--- コマンドに進展がありません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
自己訂正 >おそらくはhttpd.confのServerRoot 行に書いてあるパスの下にあると思いますので 自分でApache2.2をコンパイルしたときにそうなっただけでした。 最初から素直に find /usr -name "htpasswd" で探せばOKでした。(ちと時間食うけど) どうしても見つからなければ http://www.rescue.ne.jp/cgi/htpasswd/ でhtpasswd.tar.gz 貰ってきてインストールするか、、
その他の回答 (2)
- umasikajiro
- ベストアンサー率67% (545/803)
http://www.rescue.ne.jp/cgi/htpasswd/ の説明どおりにやれば出来る筈ですけどねえ コマンドラインで 解凍したディレクトリに移り $ ls -l して fileが有ることを確認します 解凍して出来たhtpasswdはたぶん使えません $ make <=と打つと警告が出ますが、新しいhtpasswdが作られたはずです $ ls -l して htpasswdの日付を確認してください 次に $ chmod 755 htpasswd $ ./htpasswd これで Usage:、、、、の文章が出れば成功です $ ./htpasswd -c /home/tarou/.htpasswd test (ユーザーtarouのディレクトリに .htpasswd と言うfileをつくり test と言うユーザーを登録する) パスワードを2回要求されるので入れるとOKです 但し、このままだとプログラムhtpasswdはパスの切られていないディレクトリに有りますので 毎回 /home/tarou/bin/htpasswd などのようにパスを指定して呼び出す必要があります 面倒くさければ /usr/bin/ に htpasswd をコピーしちゃいましょう そうすれば単に htpasswd とパス無しで呼び出せます 尚、このhtpasswdはかなり古い物です 最新のapacheを自分でコンパイルすれば最新のhtpasswdも入手できますが、 もうちょっと勉強しないと難しいかもしれませんね
お礼
umasikajiro 様 ご親切なご回答、まことにありがとうございました。お教えのとおりに挑戦してみます。
補足
umasikajiro様 ありがとうございました。しかし、だめでした。 /etc/apache2/bin の中に、.htpasswd ができました。cat .htpasswd で 期待どおりのものが出てきました。その後、 .htaccess を作りました。 .htaccess は どこに置けばよいのでしょうか? /srv/www/htdocs に web のファイルがあります。http://www.rescue.ne.jp/cgi/htpasswd にあるようにやってみたのですが、何度挑戦しても、認証をかけたいディレクトリのファイルが今までどおり登場します。etc/apache2 にある httpd.conf を書き換える必要があるという説明が、どこかにありましたので、やってみましたが、認証ダイアログボクスはでませんでした。残念です。ありがとうございました。
- umasikajiro
- ベストアンサー率67% (545/803)
何にもパラメーターを付けず単に htpasswd と打ってみてください パスが通っていれば Usage: 以下使い方の説明(英文) が出てくるはずです。 command not foundが表示されるならパスが通っていませんので /usr/local/pache2/bin/htpasswd -c ./.htpasswd tarou のようにフルパスで指定しないと駄目ですが、そのパスが判らないと思いますけど、まずはコマンドラインから whereis htpasswd と打ってhtpasswdのパスが出るか試します。これでも出なければ おそらくはhttpd.confのServerRoot 行に書いてあるパスの下にあると思いますので 例えば ServerRoot "/usr/local/apache2" と記述してあれば su でrootになってから cd /usr/local/apache2 <=apacheのディレクトリに移動する find -name "htpasswd" <=と打ってhtpasswdを探す これで 例えば ./bin/htpasswd と出てきたら 現在のカレントディレクトリ+./bin/htpasswd ですから、この例だと /usr/local/apache2/bin/htpasswd がフルパスだと判ります ##もっとスマートな方法知っている方、いましたらオイラにも 教えて!goo
お礼
umasikajiro様、ありがとうございました。私のSUSE Linux には htpasswd が ありませんでした。 それで、http://www.rescue.ne.jp/cgi/htpasswd/ でhtpasswd.tar.gz 貰ってきてインストール しょうとしましたが、私にはできませんでした。 解凍して、Makefile と htpasswd.c と htpasswd になったのですが、それからはなんともなりません。やはり htpasswd -c --- で - bash command not found --- インストールの仕方を、お教えいただけると、幸甚のいたりです。よろしくお願いいたします。
お礼
ありがとうございました。