FenX Опубликовано 24 Февраля 2009 Жалоба Поделиться Опубликовано 24 Февраля 2009 Вот собственно, по совету Sannis`а создаю тему тут Недавно встала задача: совместить учётки форума с учетками svn репозитория.Вот себственно и результат.Модуль для Apache 2.x, стандартной Basic авторизации,с использованием в качестве базы учеток - базу форума IPB.Данный модуль базируется на mod_auth_mysql ( _http://modauthmysql.sourceforge.net/ ) Возможно кому пригодится. Установка:Опишу процесс установки на *nix платформе...Как под форточной - понятия не имею 1. Скачиваем исходный код модуля отсюда: mod_auth_ipb.zip2. Сохраняем в любое удобное место.3. логинимся под рутом, или юзаем судо.4.1. Если сидим под рутом, то выполняем следующее:$ apxs -c -Lmysql_path -lmysqlclient -lm -lz mod_auth_ipb.c $ apxs -i mod_auth_ipb.lamysql_path заменить на путь до библиотек mysql (ex. /usr/local/lib/mysql) 4.2. Если работаете под sudo:К обеим командам добавить sudo$ sudo apxs -c -Lmysql_path -lmysqlclient -lm -lz mod_auth_ipb.c $ sudo apxs -i mod_auth_ipb.lamysql_path заменить на путь до библиотек mysql (ex. /usr/local/lib/mysql) 5. В httpd.conf добавляем строку:LoadModule ipb_auth_module libexec/apache22/mod_auth_ipb.so6. Перезагружаем индейца. Конфигурация:Для того, чтобы модуль начал работать - необходимо его включить в настройках хоста.Сделать это можно либо в параметрах вашего хоста (httpd.conf --> <Directory>)Либо в файле .htaccess в корне сервера. Итак, доступные опции конфигурации:ipbEnable on # включат в работу модуль. (default: off) ipbAuthoritative on # включает данный метод авторизации. (default: off) ipbMySQLHost localhost # хост или ip mysql сервера (default: localhost) ipbMySQLPort 3306 # порт mysql сервера (default: read from mysql_config) ipbMySQLSocket /tmp/mysql.sock # unix сокет для подключения к mysql серверу. # используется только для localhost (default: null) ipbMySQLUser user_name # пользователь для подключения к базе данных. (default: null) ipbMySQLPassword passwd # пароль для пользователя. (default: null) ipbDB test # база данных форума. (default: test) ipbUserTable ibf_members # таблица с логинами (default: ibf_members) ipbPassTable ibf_members_converge # таблица с паролями пользователей (default: ibf_members_converge) ipbGroupTable ibf_groups # таблица с группами. (default: ibf_groups) ipbPIDField converge_id # колонка с id пользователя в PassTable (default: converge_id) ipbUIDField id # колонка с id пользователя в UserTable (default: id) ipbGIDField g_id # колонка с id группы в GroupTable (default: g_id) ipbGUIDField mgroup # колонка с id группы в UserTable (default: mgroup) ipbNameField name # колонка с именами пользователей в UserTable (default: name) ipbGroupField g_title # колонка с именами групп в GroupTable (default: g_title) ipbPasswordField converge_pass_hash # колонка с хешем паролей пользователей в PassTable (default: converge_pass_hash) ipbSaltField converge_pass_salt # колонка с salt пароля пользователя в PassTable (default: converge_pass_salt) ipbNoPasswd on # отключает режим проверки паролей. Будет проверяться только наличие пользователя (default: off) ipbCharacterSet UTF8 # В какой кодировке работать с базой. (default: null) Так же, чтобы данный модуль нормально заработал,необходимо добавить строки:AuthBasicAuthoritative Off AuthUserFile /dev/nullиначе будет мат в логах. Пример конфигурации виртуального хостаДля одного из svn репозиториев.<VirtualHost *:80> ServerName svn.domain.com ErrorLog "/usr/local/www/httpdoc/domain.com/svn-error.log" CustomLog "/usr/local/www/httpdoc/domain.com/svn-access.log" common <Location /> DAV svn SVNParentPath /usr/local/www/domain.com/svn/ SVNListParentPath on </Location> <Location /public/> AuthType Basic AuthBasicAuthoritative Off ipbAuthoritative On AuthUserFile /dev/null ipbEnable On ipbMySQLSocket /tmp/mysql.sock ipbDB board_db ipbMySQLUser board_user ipbMySQLPassword mypass ### Write Access (groups Administrator and Developer) <Limit MKACTIVITY PROPPATCH PUT CHECKOUT MKCOL MOVE COPY DELETE LOCK UNLOCK MERGE> Require group Administrator Developer </Limit> ### Read Access (All existent users) <Limit GET PROPFIND OPTIONS REPORT> Require valid-user </Limit> </Location> </VirtualHost> Известные проблемы:1. Не проверялось на использование имен пользователей и групп состоящих более чем из одного слова. Так же, не проверялось на возможность использования русских символов в именах групп и пользователей. Вроде ничего не забыл )) Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Sannis Опубликовано 25 Февраля 2009 Жалоба Поделиться Опубликовано 25 Февраля 2009 Подправил заголовок для удобства. 1. Нельзя использовать имена пользователей и групп состоящих более чем из одного слова. Так же, не проверялось на возможность использования русских символов в именах групп и пользователей.Из-заRequire group Administrator Developer? странно, что там в кавычках нельзя строки писать... Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
FenX Опубликовано 27 Февраля 2009 Автор Жалоба Поделиться Опубликовано 27 Февраля 2009 1. Нельзя использовать имена пользователей и групп состоящих более чем из одного слова. Так же, не проверялось на возможность использования русских символов в именах групп и пользователей.Из-заRequire group Administrator Developer? странно, что там в кавычках нельзя строки писать...Вообще, по-идеи, можно Но у меня не работало Да и надобности тогда разбираться не было Как будет свободное время - поковыряю, мб поправлю Поправил в известных проблемах на "не тестировалось"Ибо у друга вроде завелось нормально Цитата Ссылка на комментарий Поделиться на других сайтах Прочее
Рекомендуемые сообщения
Присоединиться к обсуждению
Вы можете ответить сейчас, а зарегистрироваться позже. Если у вас уже есть аккаунт, войдите, чтобы ответить от своего имени.