Доступ к сайту через SQL
Когда пользователей много, доступ к сайту логичней ограничить через авторизацию по SQL. Для этого необходимо подключить в Apache модуль mod_authn_dbd. В Gentoo Apache необходимо собрать с USE_EXPAND флагом apache2_modules_authz_dbd.
Код необходимо прописать в конфигурации виртуального хоста (не в .htaccess):
# mod_dbd configuration DBDriver pgsql DBDParams "dbname=apacheauth user=apache password=xxxxxx" DBDMin 4 DBDKeep 8 DBDMax 20 DBDExptime 300 <Directory /usr/www/myhost/private> # mod_authn_core and mod_auth_basic configuration # for mod_authn_dbd AuthType Basic AuthName "My Server" AuthBasicProvider dbd # mod_authz_core configuration Require valid-user # mod_authn_dbd SQL query to authenticate a user AuthDBDUserPWQuery "SELECT password FROM authn WHERE user = %s" </Directory>
В приведенном выше примере авторизация происходит через PostgreSQL. Данные пользователей хранятся в таблице authn базы данных apacheauth. Подключение происходит используя имя пользователя apache и пароль xxxxxx. /usr/www/myhost/private — каталог, который необходимо закрыть.
Для подключения к MySQL следует в конфигурации указывать:
# mod_dbd configuration DBDriver mysql DBDParams host=localhost,dbname=apacheauth,user=apache,pass=xxxxxx