.htpasswdと.htaccessの設定
webページの認証について
.htaccessと.htpasswdを編集する
.htpasswd
su - htpasswd -c /etc/httpd/conf/.htpasswd hogehoge # パスワードを2回求められるので入力 cat /etc/httpd/conf/.htpasswd hogehoge:xxxxxxxxxxxxxx # 暗号化されている
これで.htpasswdの用意終わり
.htaccess
cd [公開したいファイルのあるディレクトリ] vim .htaccess # 以下の内容を書く Options +ExecCGI AddHandler cgi-script .cgi .py htpasswd AddType application/x-httpd-php .php .html AuthUserFile /etc/httpd/conf/.htpasswd AuthName "Member Only" # ダブルクォーテーションで囲む AuthType Basic Require valid-user
phpで記述してあるhtmlファイルをphpで動作させることが出来る設定でもある。
pythonをCGIも使える、はず(試してない)
AddHandlerにhtpasswdを追加しているのはセキュリティの向上のため。
どっかで見たのだがどこか探しだせなかった。すみません。
これで.htaccessも終わり。
sudo service httpd restart
を忘れない。
エラーログ
自分で公開したいアドレスを開いて認証を試みるも失敗する時
sudo tail -f /etc/httpd/log/error_log
としてエラーを見ると
access to /index.html failed, reason: verification of user id "hogehoge" not configured
と出ている場合、httpd.confで読み込んでいるモジュールが足りないといったことがある
httpd.conf
認証に関係ありそうっぽいところだけ抜粋
必要なモジュールをコメントアウトしてると認証してユーザー名とパスワードが合っていても認証出来ないといったことがあります。
LoadModule auth_basic_module modules/mod_auth_basic.so LoadModule auth_digest_module modules/mod_auth_digest.so LoadModule authn_file_module modules/mod_authn_file.so #LoadModule authn_alias_module modules/mod_authn_alias.so #LoadModule authn_anon_module modules/mod_authn_anon.so #LoadModule authn_dbm_module modules/mod_authn_dbm.so #LoadModule authn_default_module modules/mod_authn_default.so LoadModule authz_host_module modules/mod_authz_host.so LoadModule authz_user_module modules/mod_authz_user.so #LoadModule authz_owner_module modules/mod_authz_owner.so #LoadModule authz_groupfile_module modules/mod_authz_groupfile.so #LoadModule authz_dbm_module modules/mod_authz_dbm.so #LoadModule authz_default_module modules/mod_authz_default.so #LoadModule ldap_module modules/mod_ldap.so #LoadModule authnz_ldap_module modules/mod_authnz_ldap.so
おわり
LoadModuleに悩まされるとは思わなかった。
これでまだ公開できないWebページのテストが出来るね!