データベース認証 Apache2 mod_auth_mysql インストール


この章を始める前に下記の設定が必要です
「MySQL5 インストール」 「Apache2 インストール」
データベース作成
[root@centos ~]# mysql -u root -p
Enter password: mysql_root_pass ←mysqlのrootパスワードを入力
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 54
Server version: 5.0.77 Source distribution

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.
mysql> CREATE DATABASE auth_db;
mysql> USE auth_db;
mysql> CREATE TABLE users (user CHAR(30) NOT NULL,passwd CHAR(20) NOT NULL,PRIMARY KEY (user));
mysql> GRANT SELECT ON auth_db.users TO authuser@localhost IDENTIFIED BY 'PaSsW0Rd';
mysql> INSERT INTO users VALUES ('testuser', ENCRYPT('testpass'));
mysql> EXIT;
ヒント
auth_db # データベース名 users # テーブル名 authuser # DBユーザー名 PaSsW0Rd # DBユーザーのパスワード testuser # テストログイン用ユーザー名 testpass # テストログイン用ユーザーのパスワード
mod_auth_mysqlインストール
[root@centos ~]# yum -y install mod_auth_mysql
auth_mysql.conf編集
[root@centos ~]# vi /etc/httpd/conf.d/auth_mysql.conf
↓最終行に下記を記入
<Directory /var/www/html/test_login>
    AuthName "MySQL authenticated zone"
    AuthType Basic
    AuthMYSQLEnable		on
    AuthMySQLUser		authuser
    AuthMySQLPassword		PaSsW0Rd
    AuthMySQLDB			auth_db
    AuthMySQLUserTable		users
    AuthMySQLNameField		user
    AuthMySQLPasswordField	passwd
    require valid-user
</Directory>
ヒント
1行目の Directory の行は認証させたいディレクトリを記入する。
Apache再起動
[root@centos ~]# /etc/rc.d/init.d/httpd restart
テストログインページ作成
[root@centos ~]# mkdir /var/www/html/test_login
[root@centos ~]# echo "<h1>TEST LOGIN</h1>" > /var/www/html/test_login/index.html
ブラウザで確認 (http://www.ドメイン名/test_login/ にアクセス)

先ほどDBに追加したユーザー名(testuser)とパスワード(testpass)でログイン可能。
テストログインページ削除
[root@centos ~]# rm -fr /var/www/html/test_login
Home PageTop