kanaApacheでMySQLを利用して認証を行うパスワードファイルでの認証はわかりやすいですが、数が増えてくると管理が大変になり、パフォーマンスも落ちてきます。今回はMySQLを利用した認証方法を紹介します。再起動と確認ドライバーのインストールMySQLにアクセスするためのライブラリをインストールします。libaprutil1-dbd-mysqlモジュールを有効化データベース(DB)での認証を行うには以下の2つを有効にします。authn_dbddbdの設定ファイルを作成どこに作成しても構いませんが、confファイルとしてdbd-mysql.confを次の場所に作成しましょう。/etc/apache2/conf-available/dbd-mysql.conf最終的に次のような設定を記述します。300保存ができたら設定を有効にします。dbd-mysqlパラメーターの説明この中で重要なのはDBDriverとDBDParamsです。他の設定項目はパフォーマンスが気になったときに見直します。DBDriver使用するDBを指定します。ここではMySQLなのでmysqlとします。DBDParamsDBのアクセス情報を指定します。hosthostはDBの場所を指定します。今回はApacheとMySQLは同じ場所にあるので127.0.0.1(localhost)としますportDBのポート番号を指定します。MySQLのデフォルトポートは3306です。userDBにアクセスするユーザー名を指定します。ここではrootユーザーにしています。passuserで指定したユーザーのパスワードを指定します。dbnameDBのスキーマを指定します。今回はapacheという名前で作成しています。DBDMinプロセスごとの最低コネクション数を指定します。DBDKeepピーク時以外でのコネクション数を指定します。DBDMaxプロセスごとの最大コネクション数を指定します。DBDExptimeDBKeepを超えた接続数において、アイドル接続を解除するまでの時間を指定します。パスワードの生成ベーシック認証でのパスワード生成はhtpasswdコマンドを利用します。-nオプションを使うと作成結果をコンソールに表示します。kanakana:$apr1$0fguFWWX$/EqiI3681rsK1qgRPgkGu1表示されたパスワードは後ほど使用するので、どこかにメモしておきましょう。MySQLの設定MySQLのインストールまずはMySQLをイントールしましょう。mysql-serverrootユーザーのパスワードを聞かれますので設定します。今回の例ではpasswordとなっていますが、本番環境で使用するときは注意してください。MySQLの接続コンソール画面で設定を行っていきます。次のコマンドでMySQLにアクセスします。-p-hで接続先を、-uに続いてユーザー名指定し、-pでパスワードの使用を明示します。パスワードを聞かれますので、先ほどのインストール時に指定した値を入力します。password:次のようなmysqlのコマンド入力画面になればOKです。mysql>DBの作成インストールしたばかりだとスキーマ(DB)がありません。名前は何でも構いませんが、apacheという名前で作成していきます。sec)DBが作成されたか確認しましょう。次のコマンドですべてのDBを表示します。sec)テーブルの作成DBの作成ができたので、次にユーザー名とパスワードを格納するテーブルを作成します。使用するDBを指定しましょう。changed次にテーブルを作成するSQLを入力します。最後の;を忘れないようにします。sec)テーブルが作成できたか見てみましょう。sec)ユーザー名と先ほど生成したパスワードのデータを登録します。ユーザー名とパスワードはご自身の環境のものを入れてください。sec)ここまでできたらMySQLから抜けましょう。exit;ベーシック認証の設定apache2.confにベーシック認証の設定を行います。valid-user</Directory>dbdを使った認証の設定方法だけ確認しておきましょう。AuthBasicProviderパスワードのデータ形式を指定します。パスワードファイルのときはfileにしてましたが、dbdにします。AuthDBDUserPWQueryDBを利用するのでSQL文で指定します。再起動と確認Apacheを再起動して設定を反映させます。restartまとめMySQLの細かい話などは省いてしまいましたので、わかりづらいところもあるかもしれません。コメントなどいただければ追記したいと思います。コメントをキャンセルメールアドレスが公開されることはありません。*サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。