Linux и Windows: помощь админам и пользователям

Администрируем и настраиваем Windows, Linux.



Apache2 авторизация через MySQL backend

Рубрика: Ubuntu -> Apache
Метки: | | |
Вторник, 29 декабря 2009 г.
Просмотров: 13562
Подписаться на комментарии по RSS

В данном руководстве объясняется как настроить авторизацию на вебсайте под управлением Apache с помощью MySQL бэкенда.

Для достижения этой цели мы будем использовать Apache2 и модуль auth_mysql.

Предполагается что у вас уже есть настроенный и работающий веб-сайт и у вас есть доступ к серверу MySQL.

1. Установка пакета

Для начала нам необходимо установить пакет libapache2-mod-auth-mysql.

В Ubuntu или Debian Lenny просто запустите команду:

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

2. Настройка

Теперь нам необходимо подлкючиться к MySQL серверу и создать базу пользователей и групп.

# mysql -u root -p
mysql >CREATE DATABASE httpauthdb;
   mysql >GRANT USAGE ON *.* TO httpauth@localhost IDENTIFIED BY 'httpauthpassword';
   mysql >GRANT ALL PRIVILEGES ON httpauthdb.* TO httpauth@localhost;

Затем сохраните скрипт ниже в файл с именем create_db.sql:

CREATE TABLE `groups` (    
  `gid` int(10) unsigned NOT NULL auto_increment,
  `name` varchar(50) NOT NULL default '',    
   PRIMARY KEY  (`gid`),    
	UNIQUE KEY `name` (`name`)  
	) ENGINE=InnoDB DEFAULT CHARSET=latin1;    
CREATE TABLE `usergroup` (    
	`uid` int(10) unsigned NOT NULL default '0',    
	`gid` int(10) unsigned NOT NULL default '0',    
	PRIMARY KEY  (`uid`,`gid`)  
	) ENGINE=InnoDB DEFAULT CHARSET=latin1;    
CREATE TABLE `users` (    
	`uid` int(10) unsigned NOT NULL auto_increment,    
	`login` varchar(40) NOT NULL default '',    
	`pass` varchar(60) NOT NULL default '',    
	`firstname` varchar(255) NOT NULL default '',    
	`lastname` varchar(255) NOT NULL default '',    
	`email` varchar(255) NOT NULL default '',    
	PRIMARY KEY  (`uid`),    
	UNIQUE KEY `login` (`login`),    
	UNIQUE KEY `email` (`email`)  
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

и загрузите его в базу используя следующую команду:

# mysql -u root -p httpauth < create_db.sql

В результате база создана, теперь необходимо создать пользователей.

3. Создание пользователя

Для шифрования пароля используем команду sha1sum. Для создания пароля можно использовать следующую команду:

# echo 'password' | sha1sum
   c8fed00eb2e87f1cee8e90ebbe870c190ac3848c -

В результате пароль  password стал c8fed00eb2e87f1cee8e90ebbe870c190ac3848c.

Итак, давайте создадим пользователя foobar с паролем 'password' и группой, к которой он принадлежит - 'foobargroup'.

mysql> USE httpauthdb;  
mysql> INSERT INTO users (login, pass, firstname, lastname, email) 
	VALUES ('foobar', 'c8fed00eb2e87f1cee8e90ebbe870c190ac3848c', 'foo', 'bar', 'foobar@example.com');  
mysql> INSERT INTO groups (name) VALUES ('foobargroup');  
mysql> INSERT INTO usergroup (uid, gid) VALUES (uid, gid);

4. Настройка Apache

Зайдите в настройки Apache и поместите в секции Directory следующие строки:

## mod auth_mysql      
AuthBasicAuthoritative Off      
AuthMYSQL on      
AuthMySQL_Authoritative on      
AuthMySQL_DB httpauthdb      
Auth_MySQL_Host localhost      
Auth_MySQL_User httpauth      
Auth_MySQL_Password httpauthpassword      
AuthMySQL_Password_Table users      
AuthMySQL_Username_Field login      
AuthMySQL_Password_Field pass      
AuthMySQL_Empty_Passwords off      
AuthMySQL_Encryption_Types SHA1Sum      
# Standard auth stuff      
AuthType Basic      
AuthName "restricted zone"       
Require valid-user

Теперь перезапустите Apache и вы сможете авторизоваться на сайте с логином foobar и паролем password.

 

 

Полезные ссылки

Если вы хотите заказать строительство бассейна рекомендую обратиться в компанию "АкваБасс".

Лучшее такси краснодар ростов - очень быстро подгоняют машины и стоит недорого.

twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com technorati.com digg.com friendfeed.com pikabu.ru blogger.com liveinternet.ru livejournal.ru memori.ru google.com bobrdobr.ru mister-wong.ru yahoo.com yandex.ru del.icio.us

Комментариев: 2

  1. LYTKINTimofej | 2011-10-14 в 00:07:29

    все адреса церквей киев новое поколение

  2. Вот смотрите. Как подключить auth-mysql к сайту, вы не написали. sha1 и md5 сильно не одно и то же. В команде mysql -u root -p httpauth < create_db.sql указали не базу, а пользователя. Зачем выкладывать этот мусор?

Оставьте комментарий!

Используйте нормальные имена.

Имя и сайт используются только при регистрации

Если вы уже зарегистрированы как комментатор или хотите зарегистрироваться, укажите пароль и свой действующий email. При регистрации на указанный адрес придет письмо с кодом активации и ссылкой на ваш персональный аккаунт, где вы сможете изменить свои данные, включая адрес сайта, ник, описание, контакты и т.д., а также подписку на новые комментарии.

(обязательно)