Apache MYSQL認証

モジュールのインストール

# apt-get install libapache2-mod-auth-mysql

# cd /etc/apache2/mods-eabled
# ln -s ../mods-available/auth_mysql.load auth_b0_mysql.load
(Internal Error対策の為 b0を付けて auth_basic.load の前に auth_mysql.load をロードさせる)
# vi .htaccess

AuthType Basic
#AuthBasicAuthoritative off
AuthName "Nossing User"
AuthMySQL on
AuthMySQL_Host localhost
AuthMySQL_User TESTUSER
AuthMySQL_Password TESTPASSWD
AuthMySQL_DB TESTDB
AuthMySQL_Password_Table users_info
AuthMySQL_UserName_Field userid
AuthMySQL_Password_Field password
AuthMySQL_Empty_Passwords off
AuthMySQL_Encrypted_Passwords on
AuthMySQL_Encryption_Types Plaintext Crypt_DES
AuthMySQL_Scrambled_Passwords off
AuthMySQL_Authoritative on
require valid-user

#
# mysql -u root -prootpw
mysql> create database TESTDB;
mysql> create user TESTUSER;
mysql> grant all privileges on TESTUSER.* to TESTDB@localhost identified by ‘TESTPASSWORD’;
mysql> create table users_info ( userid varchar(16) not null,password varchar(64) not null );
mysql> insert into users_info values (‘test1′,’test1’) ;
mysql> insert into users_info values (‘test2’,md5(‘test2’)) ;
mysql> insert into users_info values (‘test3’,encrypt(‘test3’)) ;
mysql> insert into users_info values (‘test4’,password(‘test4’)) ;
Plaintext認証 と Crypt_DES認証は正常に動作するが Crypt_MD5 と MySQL 認証は正常に動作しなかった。
Error.log
[Thu Nov 13 17:58:08 2008] [error] Internal error: pcfg_openfile() called with NULL filename
[Thu Nov 13 17:58:08 2008] [error] [client xxx.xxx.xxx.xxx] (9)Bad file descriptor: Could not open password file: (null)