Apache2 авторизация через MySQL backend
Метки: Apache | MySQL | Ubuntu | администрирование Ubuntu
Вторник, 29 декабря 2009 г.
Просмотров: 13342
Подписаться на комментарии по 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.
Полезные ссылки
Если вы хотите заказать строительство бассейна рекомендую обратиться в компанию "АкваБасс".
Лучшее такси краснодар ростов - очень быстро подгоняют машины и стоит недорого.
Еще записи по теме
- Добавление DNS серверов с помощью DNS-add
- Использование eBox в качестве Windows PDC, часть 3
- Мониторинг вашего вебсайта в реальном времени с помощью Apachetop
- Работаем с Firewall Builder, часть 3
- Установка VirtualBox 3.0 в Ubuntu 9.04
- Команда tasksel в Debian / Ubuntu: Установка групповых пакетов ПО в один клик
- Как установить gFTP ftp-клиентом по умолчанию в командой строке Ubuntu
Комментариев: 2
все адреса церквей киев новое поколение
Вот смотрите. Как подключить auth-mysql к сайту, вы не написали. sha1 и md5 сильно не одно и то же. В команде mysql -u root -p httpauth < create_db.sql указали не базу, а пользователя. Зачем выкладывать этот мусор?