-неизвестно

 -неизвестно

 -Поиск по дневнику

Поиск сообщений в Kool_Pit

 -Подписка по e-mail

 

 -Статистика

Статистика LiveInternet.ru: показано количество хитов и посетителей
Создан: 16.10.2003
Записей:
Комментариев:
Написано: 109





неформальное введение в питон :)

Четверг, 13 Декабря 2007 г. 03:12 + в цитатник


Понравилось: 11 пользователям

Mysql сброс пароля

Среда, 12 Декабря 2007 г. 18:20 + в цитатник
http://dedicatesupport.com/archives/30

Сброс пароля пользователя root в mysql.

Наша память, к сожалению, нас иногда подводит. И мы никак не можем вспомнить железно, как нам кажется, отпечатанный в памяти пароль. Вы можете сказать, что нужно иметь записную книжку а лучше две, и конечно будете правы. Но… Тем не менее иногда все-таки возникает необходимость восстановления забытого, либо утраченного пароля. Сегодня я опишу простой метод восстановления пароля суперпользователя root для базы данных mysql.

Для этого необходимо выполнить всего несколько шагов.
1. Останавливаем mysql.
service mysqld stop
2. Запускаем mysql следующей командой:

/usr/bin/mysqld_safe --skip-grant-tables --user=root &

3. Запускаем клиента mysql
mysql -u root
4. Выполняем sql запрос
UPDATE mysql.user SET Password=PASSWORD(’newpwd’) WHERE User=’root’;
где newpwd - новый пароль.
5. Применяем изменения
FLUSH PRIVILEGES;
6. Выходим из mysql клиента выполнив в нем команду exit
7. Перегружаем mysql сервер.
service mysqld restart

Ну и все на этом. Пароль суперпользователя root для базы данных mysql изменен. Добавлю, что конечно же этот метод описан в официальном руководстве по mysql, но может кому пригодится. :-)

Вышел OpenOffice.org 2.3.1 Pro. Удаленная работа в OO через web-браузер

Среда, 12 Декабря 2007 г. 17:52 + в цитатник
http://www.opennet.ru/opennews/art.shtml?num=13190

OpenOffice.org 2.3.1 Pro, созданный на базе OpenOffice.org, лицензии GNU LGPL, доступен для свободной загрузки и использования.

Сборка пакета OpenOffice.org 2.3.1 Pro выполнена для платформ FreeBSD 6.2, GNU/Linux в пакетах RPM, DEB и Generic и Windows в виде самостоятельного дистрибутива, бинарного файла обновлений с версии 2.3 и переносимого пакета Portable.

Традиционно OpenOffice.org 2.3.1 Pro включает в себя все свойства вышедшего ранее пакета OpenOffice.org 2.3.1, свойства предыдущих версий OpenOffice.org Pro и содержит ряд дополнительных качеств, направленных на повышение комфорта работы русскоязычных пользователей.

Улучшения для всех платформ:

* Исправлены ошибки предыдущей версии 2.3 Pro
* Улучшенная обработка некорректно созданных файлов RTF (Oracle Reports).
* Улучшенная обработка некорректно созданных файлов XLS (Visual Fox Pro).
* Упрощенное изменение фона слайда по правому щелчку (Impress).
* Отображение текущего принтера в всплывающей подсказке значка печати.
* Ряд мелких эргономических изменений.

Кроме того, создатель Mandriva Linux (ранее Mandrake) и группа разделяющих его взгляды сотрудников, уволенных из компании Mandriva и основавших новый Linux дистрибутив Ulteo, анонсировали завершение интеграции OpenOffice.org 2.3 в Ulteo Online Desktop. Иначе говоря, обеспечили в OpenOffice.org возможность удаленной многопользовательской работы через web-браузер. Поддерживаются Firefox 1.5+, IE6/IE7 и Safari с включенным Java-плагином (Sun Java Runtime 1.4+).

silcd

Четверг, 06 Сентября 2007 г. 12:08 + в цитатник
Страничка по настройке SILC

Вложение: 3606933_silc.zip


asterisk postgresql UTM?

Суббота, 14 Июля 2007 г. 22:40 + в цитатник
http://www.botik.ru/~rldp/mysql/myodbc/unixodbc.htm
______________
8 ODBC и проект unixODBC
Что такое проект unixODBC?

Цели проекта unixODBC состоят в том, чтобы разрабатывать и поддержать unixODBC, который призван стать окончательным стандартом для ODBC на не-MS Windows системах. Это должно включить поддержку GUI для KDE и GNOME. Платформы Microsoft включают много расширений в спецификацию ODBC, эти расширения также обеспечиваются unixODBC.

Группа разработчиков unixODBC достигла лучших на сегодняшний день результатов под Linux. Весь проект unixODBC распространяется согласно лицензиям GPL или LGPL. Наличие LGPL для библиотек позволяет применять их в коммерческом программном обеспечении с закрытыми исходными текстами.
ODBCConfig

Это приложение GUI, подобное MS ODBC Administrator. Это позволяет любому пользователю легко конфигурировать свои (пользовательские) источники данных. Пользователь root может также добавлять, удалять и настраивать общесистемные источники данных. Опции Driver меняются в зависимости от СУБД. ODBCConfig вызывает код Driver Config, чтобы позволить драйверу запрашивать пользователя относительно специфических опций.

Пользователь root может добавлять или удалять драйверы, используя ODBCConfig. Это скорее регистрация и отмена регистрации драйвера потому, что никакие файлы фактически не будут скопированы или перемещены, зато модифицируется информация системы ODBC.

Все зарегистрированные драйверы будут представлены пользователю на выбор при создании нового источника данных.
DataManager

DataManager мог бы называться Data Explorer. Это приложение GUI, которое позволяет пользователю просматривать и управлять источниками данных. Более точно: оно позволяет пользователю просматривать источники данных, начиная с имени источника и заканчивая таблицами, столбцами и индексами. Это также включает SQL-редактор, который позволяет пользователю представлять на рассмотрение источнику данных SQL-запросы и просматривать результаты.
DriverManager

ODBC-приложения делают ODBC-вызовы через DriverManager. DriverManager выполняет ряд задач для приложения:
Обеспечение загрузки и выгрузки соответствующего драйвера
Задачи проверки правильности
Отображение данных и вызовов 3.5 на 3.0 и на 2.0

Большинство обращений к DriverManager передается на загруженный драйвер, чтобы он их дальше обработал сам.

Некоторые преимущества от использования ODBC DriverManager включают;
Переносной (мобильный) код доступа к данным
Связывание во время выполнения с источником данных (Data Source)
Способность легко изменять источник данных
Использование unixODBC с wine
Те, кто работает с wine ( http://www.winehq.org), некоторое время назад добавили поддержку ODBC. Это выполнено через ODBC.DLL в коде wine, который направляет обращения из среды эмуляции к библиотеке libodbc.so в *nix. Это работает через unixODBC с различными приложениями.

Когда Crystal Reports запущен под WINE и использует ODBC, появляется сообщение о том, что строка соединения недопустима (сообщение об ошибке: "Unable to connect: Incorrect log on parameters").

Дело в том, что Crystal Reports обращается к реестру Windows, чтобы найти там настройки драйвера для DSN в секции ODBC.INI реестра. Так как установка драйвера находится в файловой системе Linux, ничего хорошего он там не находит, что и приводит к ошибке.

Чтобы исправить положение надо ввести соответствующую запись в реестр. Новая запись может располагаться в дереве HKEY_CURRENT_USER или в HKEY_LOCAL_MACHINE и выглядит так: Software->ODBC->ODBC.INI->-> Driver="not blank", где определяет соответствующий DSN. Установка для драйвера не имеет значения, за исключением того, что это не должно быть пустой строкой. Такая схема применима и для других программ.
Использование unixODBC с wine
Те, кто работает с wine ( http://www.winehq.org), некоторое время назад добавили поддержку ODBC. Это выполнено через ODBC.DLL в коде wine, который направляет обращения из среды эмуляции к библиотеке libodbc.so в *nix. Это работает через unixODBC с различными приложениями.

Когда Crystal Reports запущен под WINE и использует ODBC, появляется сообщение о том, что строка соединения недопустима (сообщение об ошибке: "Unable to connect: Incorrect log on parameters").

Дело в том, что Crystal Reports обращается к реестру Windows, чтобы найти там настройки драйвера для DSN в секции ODBC.INI реестра. Так как установка драйвера находится в файловой системе Linux, ничего хорошего он там не находит, что и приводит к ошибке.

Чтобы исправить положение надо ввести соответствующую запись в реестр. Новая запись может располагаться в дереве HKEY_CURRENT_USER или в HKEY_LOCAL_MACHINE и выглядит так: Software->ODBC->ODBC.INI->-> Driver="not blank", где определяет соответствующий DSN. Установка для драйвера не имеет значения, за исключением того, что это не должно быть пустой строкой. Такая схема применима и для других программ.
Установка PHP с unixODBC
Эта процедура установки основана на apache 1.3.12 и PHP 3.0.16, но идентична по крайней мере для apache 1.3.6 и php 3.0.9. PHP4 имеет опцию выбора конфигурации, чтобы использовать unixODBC, но она, к сожалению, не всегда работает должным образом.
В каталоге Apache выполните следующую команду:
./configure --prefix=/www
Плюс любая другая локальная конфигурация, в которой Вы нуждаетесь.
Создайте файл odbc.h в /usr/local/include содержащий следующие строки:
#include
#include
#include
Замените здесь /www на каталог, в который установлен apache.
Перейдите в каталог PHP и определите следующие переменные среды:
CFLAGS="-I/usr/local/include"
LDFLAGS=
CUSTOM_ODBC_LIBS="-L/usr/local/lib -lodbc"
Не забудьте экспортировать эти переменные!
export CFLAGS LDFLAGS CUSTOM_ODBC_LIBS
Настройте PHP командой:
./configure --with-apache=../apache_1.3.12 --with-custom-odbc=/usr/local \
--enable-track-vars
Плюс любая другая локальная конфигурация, в которой Вы нуждаетесь, затем:
make
make install
Вернитесь назад в каталог apache и введите:
./configure --prefix=/www --activate-module=src/modules/php3/libphp3.a
make
make install
Вернитесь в каталог PHP и скомандуйте:
cp php3.ini-dist /usr/local/lib/php3.ini
Вы можете редактировать файл /usr/local/lib/php3.ini, чтобы установить опции PHP. Отредактируйте Ваш файл httpd.conf или srm.conf и добавьте:
AddType application/x-httpd-php3 .php3
Поддержка Apache DSO
Дополнительная проблема была найдена, когда Вы формируете PHP как динамический общедоступнный объект с apache. Поскольку по умолчанию unixODBC формируется с поддержкой потоков, а вот apache нет, если они не связаны вместе в процессе построения, а встречаются только во время выполнения, такая комбинация будет взрывоопасной.

Имеются два способа обхода проблемы. Необходимо определить и экспортировать следующие переменные среды перед формированием apache:
export CFLAGS=-D_REENTRANT
export LFLAGS=-lpthread
./configure --prefix=www
Или пересоберите unixODBC без поддержки потоков, конфигурируя его так:
./configure --enable-threads=no

В обоих случаях не забывайте удалять файл config.cache из корневого каталога Apache или unixODBC
UnixODBC и 2000 год
Из-за того, как спроектирован ODBC, не имеется никаких прямых ссылок к дате или времени, кроме как в структурах SQL_DATE, SQL_TIME и SQL_TIMESTAMP. Любая информация о годн внутри них сохранена с четыремя цифрами, включая столетие.

Поскольку ничего из вышеупомянутой информации не сгенерировано кодом внутри unixODBC, каких бы то ни было проблем с 2000 годом в рамках кода unixODBC быть не должно. Могут быть сложности у конкретной СУБД или операционной системы, но они не имеют отношения к пакету unixODBC.
Библиотеки в unixODBC

INI-библиотека представляет собой библиотеку функций нужных, чтобы помочь в разработке кода для взаимодействия с INI-файлами. Будущая расширенная версия этой библиотеки скорее всего станет стандартной библиотекой Linux, что позволит рассматривать INI-файлы как стандартный формат новых файлов конфигурации в ОС Linux.

Log-библиотека представляет собой комплект функций нужных, чтобы создать средство регистрации событий. Это используется odbcinst и unixODBC Driver Manager. Планируется поддержка системы регистрации событий в UNIX.

List-библиотека представляет собой набор маленьких и простых функций для создания, управления и удаления связанных списков Эти функции служат, чтобы усилить код для работы связанных списков в unixODBC и обеспечить основу для поддержки курсора.

Библиотека odbcinst обеспечивает приложения и другие компоненты unixODBC способностью к чтению и записи системной информации ODBC. Причем неважно, как или где эта информация сохранена. Это осуществляет основной API из MS и добавляет несколько функций для удобства. Одно из таких расширений: добавление нескольких API для работы с ODBC-программами Config в среде KDE/Qt.

Библиотека Tree была создана, чтобы хранить анализируемый код SQL. Она также должна использоваться в будущих версиях, чтобы сохранить синтаксис SQL в намного более реалистичном виде.

Библиотека SQI реализует сильно облегченный обработчик SQL, который использует текстовые файлы для хранения данных. Это дополнено ODBC-драйвером, чтобы создать очень открытую СУБД для маленьких наборов данных. Строго рекомендуется, чтобы все использование SQI было сделано через ODBC-драйвер: это позволит источнику данных превратиться в нормальную СУБД без того, чтобы перетранслировать исходный код.

Разработка SQI управлялась желанием включить поддержку ODBC в KDE и в соответствии с необходимостью создания полноценной СУБД, чтобы позволить использование. SQI для этого вполне достаточна.

Библиотека SQP представляет собой SQL-анализатор, основанный на lex/yacc. Это было выдрано из SQI так, чтобы общий анализатор SQL можно было бы обеспечивать для всех частей unixODBC, в частности, в драйверах и источниках данныхх, основанных не на SQL. Текущее понимание синтаксиса SQL очень ограничено, но это должно быть расширено в будущем.
Утилиты командной строки

odbcinst представляет собой инструмент, который был создан для помощи тем, кто разрабатывает скрипты и RPM-пакеты для драйверов, чтобы иметь возможность легко создавать и удалять записи в файлах odbc.ini и odbcinst.ini. Этот инструмент командной строки связан с разделяемой библиотекой (libodbcinst.so) и является частью компонента odbcinst в unixODBC.

isql представляет собой инструмент, который позволяет пользователю выполнять SQL-команды в пакете или в интерактивном режиме. Это имеет некоторые интересные опции типа опции, чтобы генерировать вывод, в виде таблицы на HTML.
Использование IBM DB2 с unixODBC
Этот короткий раздел детализирует то, как соединиться с IBM DB2 из Linux через unixODBC. Этот документ первоначально был ориентирован на DB2 версии 6.1, но все работает и с версией 7.1, хотя есть некоторые отличия, они описаны в конце раздела.

Сначала установите клиентский пакет доступа DB2 от IBM, это установит IBM CLI драйвер, который работает с unixODBC как ODBC-драйвер.

При использовании клиентского пакета доступа, определите клиентский доступ под неким именем, например, db2inst1, а затем создайте запись в файле odbcinst.ini:
[DB2]
Description = DB2 Driver
Driver = /usr/IBMdb2/V6.1/lib/libdb2.so
FileUsage = 1
DontDLClose = 1
Параметр DontDLClose требуется, чтобы избежать проблемы в драйвере, когда он динамически загружен.

Теперь настройте файл odbc.ini примерно так:
[sample]
Description = Test to DB2
Driver = DB2
Затем, когда происходит соединение, Вы ДОЛЖНЫ ИМЕТЬ переменную среды DB2INSTANCE, установленную на корректный образец db2, например:
export DB2INSTANCE=db2inst1
isql -v sample db2inst1 ibmdb2
Версия 7.1

Единственое различие сводится к имени пакета, используемого для доступа. CLI-драйвер теперь должен быть найден в DB2 Personal Developer's Edition V7.1.

Использование версии 7.1 формирует путь к библиотеке:
Driver = /usr/IBMdb2/V7.1/lib/libdb2.so

Вы также должны добавить "/usr/IBMdb2/V7.1/lib" в /etc/ld.so.conf.

Другая полезная подсказка. При использовании PHP+DB2 под AIX через unixODBC к IBM-серверу (4 процессора, мультиядра и т.д), возникало сильное замедление работы. Имеется ошибка в стеке TCP/IP IBM. После изучения странички http://www-4.ibm.com/cgi-bin/db2www/data/db2/udb/w...?last_page=list.d2w&fn=1006553 и выполнения команд
$ su - db2inst1
$ db2set DB2TCPCONNMGRS=1
был достигнут поистине огромный рост производительности (в десятки раз!).
unixODBC и Sybase/MS SQL Server
Введение

Этот документ поможет пользователям unixODBC обратиться к MS SQL Server, а также к Sybase SQL Server из клиентов unixODBC.

Будем считать, что Вы имеете недавнюю версию unixODBC на своей системе и где-то выполняется сервер. SQL Server должен позволять удаленный доступ и поддерживать соединения, использующие TCP/IP. Конечно, нужны также идентификатор для входа в систему и пароль.
Подготовка

MS SQL Server был порожден партнерством между Microsoft и Sybase. Впоследствии эти два сервера остались очень похожими. Фактически настолько похожими, что протокол связи, используемый клиентским программным обеспечением, чтобы связаться с этими серверами является фактически идентичным. Этот протокол называется Табличным Потоком Данных (Tabular Data Stream, сокращенно TDS).

Brian Bruns создал проект проект открытых исходных текстов, призванный обеспечить реализацию протокола TDS для всех желающих. Проект называется FreeTDS и может быть найден на сайте http://www.freetds.org.
Что с ним делать

FreeTDS приходит с несколькими интерфейсами TDS с ODBC. ODBC-драйвер, включенный в FreeTDS, работает хорошо для типичных запросов, типа запроса данных. Однако, этот ODBC-драйвер не поддерживает менее используемые функции каталога ODBC. FreeTDS хорошо работает с unixODBC, но Вы скачайте самую свежую версию, например, с ftp://ibiblio.org/pub/Linux/ALPHA/freetds.
Установка

Наиболее вероятно, что Вы скачали исходный текст, и этой точки зрения я буду придерживаться. Обычно установка из исходных текстов представляет собой проблему по причине отсутствия необходимых инструментов, но почти версии Linux их имеют. Распакуйте дистрибутив следующими командами:
# tar zxvf freetds-0.52.tar.gz
# cd freetds-0.52
Как только Вы распаковали исходный текст, изучите файлы INSTALL и README.

Сначала определите некоторые переменные среды. Например, пользователь оболочки bash может добавлять следующее в свой файл /etc/profile.
# TDS
#
SYBASE=/usr/local/freetds
LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$SYBASE/lib
export SYBASE LD_LIBRARY_PATH

Опции configure могут просматриваться, выполняя ./configure --help. Главное, должна быть указана опция выбора конфигурации --with-tdsver. Теперь соберем пакет и установим его:
# ./configure --with-tdsver=4.2 --with-unixodbc=/usr/local
# make
# make install

Драйвер FreeTDS ODBC должен быть установлен в /usr/local/freetds/lib. Там должен появиться файл libtdsodbc.so.
Настройка

Регистрация SQL Server с TDS

FreeTDS должен знать несколько вещей относительно каждого сервера, с которым Вы хотите работать. Традиционно используется интерфейсный файл. FreeTDS может работать с файлом, называемым freetds.conf, но для упрощения примера применим старый метод. Файл интерфейсов может быть найден в каталоге /usr/local/freetds. Имеется пример для доступа к MS SQL Server:
P450
query tcp ether 192.168.1.25 1433
master tcp ether 192.168.1.25 1433
Под P450 здесь значится имя машины, на которой выполняется MS SQL Server. Имя может быть каким угодно. По умолчанию MS SQL Server слушает порт 1433.

Регистрация ODBC-драйвера через unixODBC

unixODBC должен знать ряд данных относительно всех ODBC-драйверов, которые Вы предполагаете использовать. Самый лучший способ этого достичь: применить графическую программу ODBCConfig, которая приходит с unixODBC. Альтернативный метод состоит в том, чтобы использовать команду odbcinst, которая также приходит с unixODBC. Мы сосредоточимся на использовании команды odbcinst. Создайте файл с именем tds.driver.template с несколькими строками, описывающими нужный драйвер:
[TDS]

Description = v0.52 with protocol v4.2

Driver = /usr/local/freetds/lib/libtdsodbc.so

Выполните odbcinst, предписывая ему создать запись драйвера, используя файл tds.driver.template. Обратите внимание, что Вы должны оставить пробел между параметром -f и именем файла шаблона:
# odbcinst -i -d -f tds.driver.template

Создание ODBC Data Source Name

Клиенты ODBC обычно будут работать с ODBC Data Source Names (DSN). Самый лучший способ создавать, редактировать и удалять DSN состоит в том, чтобы использовать инструмент ODBCConfig.

Снова мы используем команду odbcinst вместо него. Это делается потому, что программа ODBCConfig достаточно наглядна и понятна, но не все пользователи имеют установленные инструментальные средства unixODBC GUI. Снова начнем с создания файла-шаблона под именем tds.datasource.template, который содержит некоторые опции типа заданной по умолчанию базы данных и UID. Примечание: Вы будете использовать Ваш собственный Servername и UID:
[P450]
Driver = TDS
Description = Northwind sample database
Trace = No
Servername = 192.168.1.25
Database = Northwind
UID = sa

Примечание: Servername не означает DNS-имя или IP-адрес сервера. Это должно соответствовать серверу из интерфейсного файла (в случае freetds.conf это значение между [], заголовок желательного раздела сервера).

Примечание: предыдущие команды выполнялись как root (обозначенный символом #), но теперь команда выполняется от имени обычного пользователя. Это значительно. Все пользователи системы совместно используют FreeTDS и ODBC-драйверы, но каждый пользователь имеет собственный список DSN (имеются исключения, но здесь они не актуальны). Так что создайте DSN как тот пользователь, который собирается использовать это:
$ odbcinst -i -s -f tds.datasource.template

Тестирование

unixODBC приходит с рядом инструментальных средств, которые позволяют Вам проверять работоспособность пакета. Используем инструмент командной строки isql. Он позволяет представлять на рассмотрение DSN команды (обычно это инструкции SQL) и принимать результаты:
$ isql -v P450 sa MyPassword
SQL> select contactname from customers

Вы должны видеть сообщение о соединении и подсказку SQL. Если этого не наблюдается, либо проблема с конфигурацией, либо задана неправильная пара значений ID и PWD.

Теперь попробуйте простую команду SQL:
SQL> SELECT contactname FROM customers
Шаблон драйвера

Создан шаблон драйвера, чтобы позволить программистам легко разрабатывать новые драйверы. Это содержит некоторые файлы типа make и все функциональные заголовки, требуемые для совместимости с ODBC 3.5.1. Некоторые функции имеют код, но большая часть оставлена для конкретной реализации.
Типовые драйверы

Двоичная переносимость драйверов для Linux ODBC когда-нибудь будет достигнута, но ODBC пока довольно плохо реализован под Linux в это время, и некоторые драйверы могут иметь проблемы. Это явление постепенно должно уменьшится, поскольку ODBC становится более используемым на Linux.

Сертифицированные драйверы СУБД Уровень ODBC Устанавливается в odbcdrivers.ini DriverConfig Замечания Поддержка
DB2 UDB для iSeries http://www-1.ibm.com/servers/eserver/iseries/access/linux 3.5 Да Да Имеется драйвер, доступный для систем Intel и для разделов iSeries, выполняющих Linux. Драйвер соответствует ODBC 3.5 ANSI со способностью сохранять и обрабатывать Unicode-данные. Поддерживает тип SQL_WCHAR Поддержка и закачка пакета: http://www-1.ibm.com/servers/eserver/iseries/access/linux
Microsoft SQL Server и Microsoft Access Вы можете использовать Bridge для работы с источником данных ODBC на Windows-машине http://www.easysoft.com/products/oob/main.phtml
DB2 http://www.ibm.com/db2 3.5 No No Библиотека libdb2.so, которая является частью набора DB Connect, работает как ODBC-драйвер Загрузить пакет можно с http://www-1.ibm.com/support/docview.wss?uid=swg21079056
Oracle http://www.oracle.com 3.5 Да Да Загрузка свободноой тестовой версии: http://www.easysoft.com support@easysoft.com news://news.easysoft.com/easysoft.public.oracle
Easysoft ODBC-ODBC Bridge от 2.0 до 3.5 Да Да http://www.easysoft.com/products/oob/main.phtml. Easysoft's ODBC-ODBC Bridge (пробная бесплатная версия) обеспечивает удаленный доступ к любому ODBC-драйверу support@easysoft.com
news://news.easysoft.com/easysoft.public.da2k.odbc-odbc-bridge
http://www.easysoft.com
DB2 http://www.starquest.com 3.5 Нет данных Нет данных http://www.starquest.com : StarSQL для UNIX 3.10 и выше, Solaris, AIX и Linux www.starquest.com/support
Sybase http://www.sybase.com 3.5 Да Нет Бесплатная пробная версия доступна на http://www.easysoft.com support@easysoft.com
news://news.easysoft.com/easysoft.public.sybase
Informix http://www.informix.com 3.51 Нет Нет Драйвер от informix работает прекрасно, но Вы должны ознакомиться с сайтом разработчиков в плане свежей документации
AdabasD www.softwareag.com/adabasd 3.5 Нет Нет ODBC-драйвер для AdabasD доступен для Solaris, HP-UX, AIX, Linux и нескольких других типов unix. Подробности на сайте разработчика http://www.softwareag.com и в конференции comp.databases.adabas
Empress http://www.empress.com . . . . .
Postgres http://www.postgresql.org 2.5 . Да Была взята Win32-версия (не из дистрибутива сервера), и она нормально работала с unixODBC с небольшими изменениями. Изменения отправлены координаторам проекта PostgreSQL
MySQL http://www.mysql.com . . . Драйвер MyODBC (http://www.mysql.com/download.html) работает с unixODBC http://www.mysql.com
MiniSQL (он же mSQL) http://www.Hughes.com.au Смесь из различных уровней. Борется за достижение 3.51. Безуспешно Да Да Alpha-версия pharvey@codebydesign.com
SQI Очень ограниченные версии INSERT, SELECT, UPDATE и DELETE . Да (используются значения по умолчанию для файла) Text File Driver (alpha) pharvey@codebydesign.com
News Server Реализована минимальная функциональность ODBC. Сильно ограниченное, но очень полезное подмножество SQL . Да Расширенная версия Ke Jin's Internet News Server ODBC-драйвера. News-серверы представляют собой источники данных, а группы новостей таблицы. pharvey@codebydesign.com
YARD SQL 3.5 Сайт проекта YARD (http://www.yard.de).
Interbase 3.5 Да Да Доступен для Windows, Linux Intel, Solaris, HPUX, AIX и OS X ftp://ftp.easysoft.com/pub/interbase
RDBMS Linter SQL 3.5 Да Да Оригинальный драйвер ODBC портирован на UNIX www.relex.ru, www.relexus.com
Ovrimos Webbase http://www.ovrimos.gr/download.php 3.5 Да Да http://www.ovrimos.gr/download.php support@ovrimos.com
Mimer SQL http://www.mimer.com 3.51 Нет данных Нет данных Посетите сайт www.mimer.com/developers для сбора дополнительной информации и загрузки пробной версии высокопроизводительной СУБД www.mimer.com/developers
Ingres http://www.cai.com 3.51 http://support.cai.com/techbases/ingres/4327.html
Sap DB http://www.sapdb.org 3.51

Установка и настройка Cold Fusion и Interbase под Linux

Что было использовано:
http://commerce.allaire.com/download/index.cfm Cold Fusion 4.51 Professional Evaluation Version for Linux,
http://www.borland.com/interbase/downloads/#interbase Interbase 6.01 Super Server for Linux,
ftp://ftp.freesoftware.com/pub/linux/redhat Redhat 6.1,
ftp://ftp.freesoftware.com/pub/linux/redhat Redhat 6.2.

Как и что делалось:
1. Под RH Linux 6.2 установлен UnixODBC 1.8.12 с применением для этой цели rpm-пакета с сайта Coding Apes ( http://grapeape.codingapes.com/unixODBC.xml). ODBC-диспетчер драйверов, обеспеченный ColdFusion, был заменен на диспетчер из UnixODBC:
mv /opt/coldfusion/lib/odbc/libodbc.so /opt/coldfusion/lib/odbc/libodbc.so.bak
ln -s /usr/lib/libodbc.so /opt/coldfusion/lib/odbc/libodbc.so
2. Под RH Linux 6.1 используйте исходный текст с сайта http://www.unixodbc.org. Если Вы не нуждаетесь в графических инструментальных средствах, а для серверов обычно их не ставят), выполните:
configure --enable-gui=no
make all
make install
Остальное подобно описанному выше.
3. Конфигурируйте Interbase ODBC Driver, загрузите Interbase Driver с сайта Easysoft ( http://www.easysoft.com/products/interbase). Установите его, скопировав файлы в каталог /usr/local/lib. Теперь настройте Ваш файл odbc.ini в /opt/coldfusion/odbc/odbc.ini примерно так:
[MyODBCSource]
Driver=/usr/local/lib/libib6odbc.so.1.0.0
Description=Interbase Driver
Database=192.168.0.1:/Database/MyDB.gdb
User=MyUser
Password=MyPassword
With_Schema=0
Dialect=3
Получение ODBC-драйвера из Informix Client access или SDK, работающего с unixODBC

1. Установите переменную окружения INFORMIXDIR к корню Вашей установки Informix. Далее я считаю, что это /usr/local/informix.

2. Определите сервис online в файле /etc/services.

3. Создайте файл sqlhosts в каталоге $INFORMIXDIR/etc, который определяет все Ваши серверы базы данных.

4. Удостоверьтесь, что все библиотеки Informix найдены ld. Они размещены в каталоге $INFORMIXDIR/lib и его подкаталогах (это включает по крайней мере cli и esql). Обычно следует включить каталоги с библиотеками в файл /etc/ld.so.conf и выполнить команду ldconfig от имени root.

5. Определите переменную окружения ODBCINI, чтобы указать на Ваш системный файл odbc.ini, например: export ODBCINI=/etc/odbc.ini. Дело в том, что эта переменная представляет собой единственный способ управлять тем, где драйвер Informix ищет сведения о конфигурации.

6. Добавьте драйвер Informix в odbcinst.ini без пробелов между именами параметров и их значениями, например:
[Informix]
Description=Informix IDS 2000
Driver=/usr/local/informix/lib/cli/libifcli.so
APILevel=1
ConnectFunctions=YYY
DriverODBCVer=03.00
FileUsage=0
SQLLevel=1
smProcessPerConnect=Y

7. Определите Informix DSN в odbc.ini:
[miecr]
Driver=Informix
Server=BARNET
Database=miecr
CLIENT_LOCALE=en_us.8859-1
DB_LOCALE=en_us.8859-1
TRANSLATIONDLL=/usr/local/informix/lib/esql/igo4a304.so

8. Теперь попробуйте выполнить тестовую команду isql miecr.

Если Вы получаете ошибку "Server %s is not listed as a dbserver name in sqlhosts", это, вероятно, вызвано пробелами в определении драйвера Informix в файле odbcinst.ini или в записи DSN в файле odbc.ini. Синтаксический анализатор драйвера очень легко ошибается.
Откуда и что можно скачать
Формат дистрибутива

unixODBC на сегодня доступен в формате tar+gzip. Это означает, что Вы должны:

Скопировать файл unixODBC*.tar.gz в нужный Вам каталог.

Распаковать его, например, командами:
gunzip unixODBC*.tar.gz
tar xvf unixODBC*.tar

Выполнение этих команд создаст каталог unixODBC со всеми исходными файлами внутри.

На момент написания данной работы последней версией была 2.2.6 (архив назывался unixODBC-2.2.6.tar.gz).

RPM-пакеты
В настоящее время на сайте CodingApes ( http://grapeape.codingapes.com) выложено несколько RPM-пакетов. Их также можно найти на http://edas.visaci.cz/en/unixodbc. RPM-пакеты для использования с версиями 7.0 и 8.0 Connectiva Linux (http://www.conectiva.com можно взять на. http://www.andrefelipemachado.hpg.com.br/linux/index.html.

Есть также версия для QNX ( http://www.qnx.com), которую можно взять с http://www.unixodbc.org/pub/beta/unixODBC/unixODBC-2.1.1-x86-public.qpr.

Версия для FreeBSD

Nick Sayer создал порт unixODBC для FreeBSD. Ее можно найти на сайте http://www.freebsd.org/ports.

Solaris 8 PKG
Palle Haastrup создал пакет для Solaris 8 http://www.unixodbc.org/pub/beta/unixODBC/binaries/unixodbc-2.1.1-sol8-sparc-local.gz .

CVS-доступ

Публичный доступ к CVS access также доступен для всех желающих работать с самыми последними исходными текстами. CVS-доступ есть на http://sourceforge.net/cvs/?group_id=1544.

Так что Вы можете использовать следующие команды, Когда будет запрошен пароль для anonymous, просто нажмите клавишу Enter:
cvs -d:pserver:anonymous@cvs.unixODBC.sourceforge.net:/cvsroot/unixodbc
login
cvs -z3 -d:pserver:anonymous@cvs.unixODBC.sourceforge.net:/cvsroot/unixodbc
co modulename

Чтобы сформировать пакет из архива CVS, выполните следующую команду:
make -f Makefile.cvs

Это будет формировать скрипт configure.

Чтобы сформировать пакет из CVS, Вы нуждаетесь в некоторых инструментальных средствах:
automake 1.5
libtool 1.4.2
Они могут быть найдены на web-сайте проекта GNU http://www.gnu.org или на его многоичисленных зеркалах.

Построение библиотек и программ

Установка теперь использует стандартный процесс GNU autoconf. Скомандуйте:
./configure
>make
make install

По умолчанию файлы будут установлены в каталог /usr/local. Как и положено с configure, это расположение может быть изменено опцией prefix:
./configure --prefix=/usr/local/unixODBC
Это установит каталоги в /usr/local/unixODBC.

Чтобы соответствовать руководящим принципам GNU, файл odbcinst теперь установлен по умолчанию в {prefix}/etc, что может быть изменено, используя опцию --sysconfdir в вызове configure. Чтобы устанавливать файлы в старое место, надо указать:
./configure --sysconfdir=/etc

Скрипт будет пытаться находить каталоги, которые необходимы для компонентов GUI, и если они не найдены (то есть, Вы не установили QT), построение пакета продолжится, но без частей GUI.

Зависимости

Компоненты GUI (ODBCConfig и DataManager) требуют Qt не ниже 2.2 ( http://www.troll.no/dl/qtfree-dl.html).

Библиотека SQI требует flex и yacc, чтобы анализировать команды SQL.

Дистрибутив в целом зависит от наличия многих из стандартных инструментальных средств разработки, типа компилятора C/C++ (в настоящее время протестирован egcs).

Начинка unixODBC


Data Flow Diagram (DFD) описывает все ключевые компоненты в окружении Linux ODBC. DFD пронумерована так, чтобы показать, что происходит при соединении с системой базы данных.

1. Приложение вызывает функцию (SQLAllocEnv, SQLAllocConnect, SQLConnect) из DriverManager.

2. DriverManager отвечает на SQLConnect драйвером базы данных, который соответствует заданному источнику данных (Data Source Name, DSN).

3. DriverManager загружает драйвер базы данных и просит, чтобы он установил связь с СУБД.

4. Драйвер базы данных может быть должен получить дополнительные опции из DSN, что выполняется им по ходу дела.

5. Драйвер базы данных использует специфическое для конкретной СУБД обращение, чтобы соединиться с базой данных.
Файл odbc.ini

ОБРАТИТЕ ВНИМАНИЕ: файлы odbc.ini и odbcinst.ini являются системной информацией ODBC. Весь доступ (чтение или запись) к этой информации должен проходить через DriverManager или разделяемую библиотеку ODBCINST. Не обращайтесь к этим INI-файлам непосредственно!

Файл odbc.ini хранит список источников данных и любых параметров для каждого из них. Имеются два типа файлов odbc.ini: системный (/etc/odbc.ini) и пользовательский (~/.odbc.ini). По умолчанию, DriverManager будет искать источники данных, используя следующую схему;

1. Используя переменную окружения, чтобы указать путь к пользовательскому файлу odbc.ini. Например, ODBCINI+/.odbc.ini.

2. Используя домашний каталог, заданный в файле /etc/passwd, чтобы найти путь для .odbc.ini.

3. Используя системный файл odbc.ini, который расположен в /etc/odbc.ini.

Файлы odbc.ini предоставляют те же самые функциональные возможности за исключением того, что системные сервисы могут принимать более высокий уровень защиты на системном odbc.ini. Во всем остальном пользовательские и системные файлы совершенно равны.

ini-файлы используют те же самые требования к синтаксису. Имена источников данных охвачены квадратными скобками. Параметры следуют в последующих строках и используют формат PropertyName=PropertyValue. Например;
[TEST]
driver = /usr/lib/libsybase.so.11
tracefile = /home/pharvey/sql.log
trace = off
database = dbAccounting

Каждое имя источника данных должно иметь, по крайней мере, определенный параметр driver. Это позволит DriverManager загружать драйвер, когда сделан запрос на соединение. Единственые параметры, с которыми работает сам DriverManager: DRIVER, TRACEFILE и TRACE. Другие параметры будут интерпретироваться уже драйвером. Секция [ODBC Data Sources] поддерживается в каждом файле odbc.ini.
Файл odbcinst.ini

Этот ini-файл просто перечисляет все установленные драйверы. Синтаксис прост: имя, сопровождаемое параметром, который сообщает имя файла драйвера:
[Sybase 11]
Comment = Super Sybase Server
Driver = /usr/lib/libsybase.so.11
Setup = /usr/lib/libsybaseS.so.11
FileUsage = 1

Имя файла драйвера (в данном случае /usr/lib/libsybase.so.11) должно быть уникально. Дружественное имя (то есть Sybase 11) также должно быть уникально.

Параметр Setup указывает на общедоступную (разделяемую) библиотеку, содержащую функции, которые нужно вызвать ODBC Config. ODBC Config вызовет эту библиотеку, чтобы получить специфические для конкретного драйвера имена параметров в ходе конфигурации источника данных. Если программа ODBC Config не может найти или использовать этот файл, она примет некоторые значения по умолчанию. Этот файл должен изменяться только разделяемой библиотекой ODBCINST или утилитой командной строки odbcinst.
Графическое наполнение

Спецификации ODBC включают два случая, в которых GUI был бы особенно полезен. Проект LinuxODBC находится в процессе реализации GUI для обоих случаев. Случаи это такие:

1. Настройка

ODBC Config должен позволить пользователю настроить параметры, специфичные для конкретного драйвера. В MS это обработано через ODBC Admin, вызывающий драйвер и передающий ему дальнейшую инициативу. LinuxODBC не будет вынуждать драйвер делать такую работу. Вместо этого, ODBC Config вызовет библиотеку Drivers Setup, чтобы получить простой список реквизитов. ODBC Config обработает представление и сохранение этих реквизитов. Этот подход делает создание библиотек Driver Setup ОЧЕНЬ простым потому, что они должны обеспечить только список опций.

2. Ввод логина

DriverManager, вероятно, придется запрашивать пользователя относительно большего количества информации для входа в систему. С поддержкой графики это вполне реально.
unixODBC без GUI
Цель

Много людей используют unixODBC, но по ряду причин не формируют конфигурацию GUI и соответствующие утилиты (ODBCConfig и DataManager).
Что такое ini-файл?

ODBC сначала появился внутри Windows 3.0. В это время Windows использовала .ini-файлы, чтобы хранить информацию о конфигурации. Это текстовые файлы, содержащие данные в следующем формате:
[section1]
entry1 = value
entry2 = value

[section2]
entry1 = value
entry2 = value
...

С появлением Windows NT, эти ini-файлы были заменены реестром, но API, чтобы обратиться к ним из ODBC, остался тем же самый. Windows имеет две функции в odbcinst.dll, которые позволяют приложениям и драйверам сделать запрос и изменять эти файлы: SQLGetPrivateProfileString и SQLPutPrivateProfileString.

Как часть репродуцирования ODBC-среды на платформах не-Windows, unixODBC обеспечивает тот же самый формат ini-файлов и функциональные возможности с помощью библиотеки libodbcinst.
Система и пользователь

ODBC делает различие между двумя типами ini-файлов. Системные ini-файлы разработаны, чтобы быть доступными, но не изменяемыми любым пользователем, а ini-файлы пользователя относятся только к какому-то специфическому пользователю и могут изменяться им.

Системные ini-файлы: odbcinst.ini и odbc.ini (внимание: точек в начале имени нет!), а пользовательский: ~/.odbc.ini в домашнем каталоге пользователя (вот этот уже с точкой: скрытый).

Системный файл odbcinst.ini хранит информацию относительно ODBC-драйверов, доступных всем пользователям, а файл odbc.ini содержит информацию относительно DSN, доступных всем пользователям. Эти системные DSN полезны для приложения типа web-серверов, которые не могут выполняться как реальный пользователь и соответственно не будут иметь домашнего каталога, чтобы хранить в нем файл .odbc.ini.

Хороший пример этого: Apache и PHP с поддержкой ODBC. Когда http-сервер запущен, он от имени root вызывает SQLAllocEnv. Позже он меняет свою принадлежность на иного пользователя и вызывает SQLConnect. Если DSN не является системным, сервер потерпит неудачу.
FILEDSN

ODBC 3 также имеет третий сорт DSN, файловый DSN. Они сохраняют информацию соединения в файле, который может быть доступен любому пользователю. UnixODBC в настоящее время не поддерживает файловый DSN, но такая поддержка планируется в ближайшее время, поскольку такой тип DSN весьма полезен. Он больше распространен в NT, чем в UNIX по причине того, такие файлы позволяют хранить данные на центральном сервере, который является доступным всем рабочим станциям, что избавляет от настройки всех систем сразу.
Почему не vi?

Все файлы конфигурации, необходимые unixODBC представляют собой простые текстовые файлы, так что не имеется никакой причины, из-за которой Вы не можете использовать Ваш любимый текстовый редактор для правки файлы.

Однако, начиная с версии beta 1.6, расположение системных файлов odbcinst.ini и odbc.ini определено скриптом выбора конфигурации. Заданное по умолчанию расположение: /usr/local/etc, и если префикс определен, расположение будет {prefix}/etc. Расположение системных файлов можно поменять и радикально указанием опции --sysconfdir=DIR, например, для обратной совместимости с версиями до pre 1.6 попробуйте:
./configure --sysconfdir=/etc
Что входит в эти файлы?
odbcinst.ini
Он содержит заголовок раздела, который обеспечивает имя для драйвера, в примере ниже это будет PostgreSQL для драйвера Postgres. Следующие строки содержат описание и затем важные биты. Пути Driver и Setup указывает на ODBC-драйвер и установку lib. Установка lib используется, когда Вы нажимаете на Add в ODBCConfig, чтобы добавить новый DSN. Наиболее интересна запись Driver. Это библиотека, которую диспетчер драйверов будет загружать динамически, когда SQLConnect или SQLDriverConnect запрашивают этот DSN. Если это указывает на неправильное место, DSN не будет работать. Если dlopen() не сработает, DSN также не будет работать. Запись fileusage дописывается программой odbcinst, так что в текстовом редакторе добавьте ее сами.
[PostgreSQL]
Description = PostgreSQL driver for Linux & Win32
Driver = /usr/local/lib/libodbcpsql.so
Setup = /usr/local/lib/libodbcpsqlS.so
FileUsage = 1
Шаблоны
odbcinst должен быть обеспечен файлом шаблона. Если Вы добавляете драйвер для вышеупомянутой записи, файл шаблона содержал бы следующее:
[PostgreSQL]
Description = PostgreSQL driver for Linux & Win32
Driver = /usr/local/lib/libodbcpsql.so
Setup = /usr/local/lib/libodbcpsqlS.so
Вы вызвали бы odbcinst со следующими параметрами:
odbcinst -i -d -f файл_шаблона
Параметры odbcinst имеют такой смысл:

-i Установить
-d драйвер
-f имя файла с шаблоном
Потоки
Начиная с версии 1.6, если диспетчер драйверов был сформирован с поддержкой потоков, Вы можете добавлять другую запись к каждой записи о драйвере:
[PostgreSQL]
Description = PostgreSQL driver for Linux & Win32
Driver = /usr/local/lib/libodbcpsql.so
Setup = /usr/local/lib/libodbcpsqlS.so
Threading = 2
Эта запись изменяет заданный по умолчанию уровень преобразования в последовательную форму потока.
[.]odbc.ini
Содержание файлов odbc.ini немного сложнее, но они все равно следуют формату файла odbcinst.ini. Они усложнены каждым драйвером, требующим различных записей. Записи могут быть добавлены таким же образом, используя odbcinst или текстовый редактор. Пример типичной записи:
[PostgreSQL]
Description = Test to Postgres
Driver = PostgreSQL
Trace = Yes
TraceFile = sql.log
Database = nick
Servername = localhost
UserName =
Password =
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =

Это может быть записано в файл шаблона и вставлено в ini-файле для текущего (актуального) пользователя командой:
odbcinst -i -s -f template_file

Строка Driver используется, чтобы соответствовать записи [section] в odbcinst.ini, а строка Driver в файле odbcinst используется, чтобы найти путь для библиотеки драйвера, которая будет загружена, когда будет установлено соединение. Возможно заменить имя драйвера на путь к драйверу непосредственно. Это может использоваться, например, если пользователь не может получить root-доступ для записи чего-либо в /etc. Например:
[PostgreSQL]
Description = Test to Postgres
Driver = /usr/local/lib/libodbcpsql.so
Trace = Yes
TraceFile = sql.log
Database = nick
Servername = localhost
UserName =
Password =
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =
Шаблоны
Шаблоны для драйверов, поддерживаемых пакетом:
MySQL
[MySQL-test]
Description = MySQL test database
Trace = Off
TraceFile = stderr
Driver = MySQL
SERVER = 192.168.1.26
USER = pharvey
PASSWORD =
PORT = 3306
DATABASE = test
Mini SQL (он же mSQL)
[Mini SQL]
Description = MiniSQL (mSQL)
Driver = MiniSQL
Trace = No
TraceFile =
Host = localhost
Database =
ConfigFile =
Postgress
[PostgreSQL]
Description = Test to Postgres
Driver = PostgreSQL
Trace = Yes
TraceFile = sql.log
Database = nick
Servername = localhost
UserName =
Password =
Port = 5432
Protocol = 6.4
ReadOnly = No
RowVersioning = No
ShowSystemTables = No
ShowOidColumn = No
FakeOidIndex = No
ConnSettings =
NNTP driver
[nntp Data Source]
Description = nntp Driver
Driver = nntp Driver
Trace = No
TraceFile =
Host = localhost
Database =
Port =
FreeTDS
Driver = TDS
Description = Northwind sample database
Trace = No
Servername = 192.168.1.25
Database = Northwind
UID = sa
Sybase SQL Anywhere 5.0
[Sybase SQL Anywhere 5.0]
Driver = Sybase SQL Anywhere 5.0
Description = Sybase SQL Anywhere 5.0 ODBC Driver
Userid = dba
Password = sql
DatabaseFile = sademo.db
Взаимодействие unixODBC и Mysql/MyODBC
Введение

Этот раздел разработан, чтобы помочь установить и использовать UnixODBC. Установка рассматривается в контексте базы данных MySQL.

ODBC представляет собой интерфейс, через который программы могут связываться с любой базой данных, которая имеет ODBC-драйвер. В то время как большинство баз данных имеет один или большее количество API в различных языках программирования, ODBC позволяет тому же самому коду работать с многочисленными типами баз данных. ODBC не единственый интерфейс, чтобы делать это, но он очень широко используется.
Начнем

Пакет UnixODBC доступен только в исходных текстах. Это означает, что Вы скачиваете tar-файл с http://www.unixODBC.org, распаковываете его, компилируете исходные тексты и устанавливаете получившийся пакет. Прежде, чем Вы это сможете сделаеть, нужно убедиться в некоторых вещах.
Требования
Qt toolkit version 2.x (исходные тексты) с http://www.troll.no. Удостоверьтесь, что это версия 2 или выше!
Загрузите исходные тексты Qt v2
Распакуйте их куда-нибудь, обычно это выполнено, помещая tar-файл в каталог вроде /usr/local или /opt. Затем выполните команду:
tar zxvf qt-2.0.1.tar.gz

Это создаст подкаталог qt-2.0.1 (у Вас версия пакета и имя каталога, конечно, будут другими). Не забудьте, что только root обычно может записывать данные в /usr/local или в /opt.
Откомпилируйте исходные тексты. Из каталога qt-2.0.1 скомандуйте:
./configure
make
make install
Эта последняя команда интересна тем, что она установит новую библиотеку libqt в места, где может существовать любая старая версия. Проследите, чтобы имена библиотек не совпадали, и новая библиотека не перезаписала старую, иначе могут быть проблемы с приложениями Qt/KDE
База данных (в данном случае это MySQL с http://www.mysql.com).
Установка unixODBC
Как упомянуто прежде, получите исходный tar-файл с http://www.unixodbc.org. От имени root переместите этот файл в /opt или в /usr/local. Распакуйте архив, перейдите в каталог с исходными текстами пакета и скомандуйте из него:
./configure
./make
./make install
Установка драйвера

UnixODBC нуждается в драйвере для каждого типа базы данных, с которой он будет работать. MySQL имеет драйвер ODBC, названный MyODBC, но он не входит в комплект unixODBC, так что Вы должны получить и откомпилировать его непосредственно. Я рассматриваю версию 2.50.24, для остальных все так же. Установка аналогична другим пакетам, но Вы должны дать скрипту configure некоторые опции. Он запросит Вас относительно пути к исходным текстам MySQL, но Вы также должны обеспечить параметр --with-unixODBC=<Ваш каталог unixODBC>. Чтобы configure искал unixODBC вместо iODBC, используйте --with-unixODBC=DIR, где DIR определяет каталог, в который установлен unixODBC. Если включаемые файлы и библиотеки unixODBC не размещены в каталогах DIR/include и DIR/lib, используйте параметры --with-unixODBC-libs=LIBDIR и --with-unixODBC-includes=INCDIR.

Вы могли бы поределять иной префикс для установки (не /usr/local). Я, например, храню мои ODBC-драйверы в каталоге /usr/local/odbc/lib, так что я добавляю: --prefix=/usr/local/odbc.

Таким образом, строка вызова скрипта настройки для моего случая такая:
./configure --with-unixODBC=/usr/local \
--with-mysql-sources=/usr/local/mysql

Выполните make и make install. Это помещает возникающую в результате библиотеку libmyodbc-2.50.23.so в каталог /usr/local/lib. В исходном тексте библиотеки есть ошибка контроля версии, благодаря которой версия 2.50.24 обозначена как libmyodbc-2.50.23.so. Ничего страшного это не вызывает.

Если Вы опускаете параметр --with-mysql-sources, configure будет терпеть неудачу. Если Вы опускаете параметр --with-unixODBC, configure завершится, и MyODBC откомпилируется. Однако, он не будет работать правильно при использовании с unixODBC. Проблемы, описанные ниже, произошли, когда я опустил этот параметр:

1) Если DSN (Data Source Name), которое Вы создаете, также является именем базы данных, драйвер направляется на эту базу данных независимо от того, что Вы еще определили.

2) Если DSN не задает имя существующей базы данных, Вы просто не сможете войти в систему к базе данных. Трассировка сообщит Вам, что пакет не может найти базу данных с именем DSN. Это сбивает с толку, если Вы определили допустимое имя базы данных в файле .odbc.ini.

При использовании параметра --with-unixODBC, эти проблемы не наблюдались, и все работало.

Примечание: MyODBC не поддерживает ODBC версию 3 в своей версии 2.50.24. При написании программ, которые используют этот драйвер, следует указывать параметр V_OD_ODBC2 при вызове функции SQLSetEnvAttr().
Настройка unixODBC

UnixODBC состоит из большого количества библиотек, установленных в каталог /usr/local/lib, и нескольких исполняемых файлов (binaries), установленных в каталог /usr/local/bin. Эти исполняемые файлы: ODBCConfig, DataManager и odbcinst.

Чтобы получить работающий пакет unixODBC, выполните следующее:

Все выполняется от имени root.

В xterm введите ODBCConfig. Это GUI-программа, и она должна выполняться в X-сессии. По крайней мере Вы должны установить драйвер, чтобы его использовать. Драйверы будут специфические для каждого приложения базы данных, так, например, MyODBC специфический для MySQL. В дополнение к этому, Вы должны определить setup-файл, который надлежит использовать для этого драйвера. Файлы setup находятся в /usr/local/lib/libodbc*S.so и представляют собой библиотеки, где * выражает приложение базы данных, так что /usr/local/lib/libodbcmyS.so является setup-файлом для MyODBC. Драйвер (не setup-файл!) в этом случае имеет имя /usr/local/lib/libmyodbc-2.50.23.so.

Чтобы устанавливать драйвер, выполните ODBCConfig как root, перейдите на вкладку "drivers" и нажмите кнопку "New". Вот пример настройки:
Name: myodbc
Description: MySQL driver.
Driver: /usr/local/lib/libmyodbc-2.50.23.so
Setup: /usr/local/lib/libodbcmyS.so
FileUsage: 1

Вы должны иметь установленный драйвер перед установкой DSN. Сделав так, Вы можете устанавливать системный DSN. Вы делаете это, выбирая вкладку "System DSN" и нажимая на кнопку 'New'. Затем надо указать драйвер, который надо использовать и ввести требуемую информацию. Используйте имя драйвера, которое определили в поле Driver на первом экране, и нажмите OK.

При выполнении этого как root, Вы можете создавать и редактировать файлы /usr/local/etc/odbcinst.ini (информация о драйверах) и /usr/local/etc/odbc.ini (системные записи DSN). Ранние версии unixODBC поместили бы эти файлы в /etc, и все еще Вы можете использовать опцию --sysconfdir=/etc скрипта configure, чтобы поместить файлы в это расположение.

При выполнении этого как нормальный пользователь, имейте в виду, что:

Процесс установки пользовательской записи DSN идентичен установке системной DSN. Вы просто выбираете вкладку "User DSN" в ODBCConfig и заполняете требуемые поля. Например, так:
Name: mysqltest
Description: myodbc
Driver: myodbc
Trace: Yes
TraceFile: mysql.log
Host: localhost
Port: 3306
Socket:
Database: test

Это создаст и позволит редактировать файл, именованный ~/.odbc.ini. Так как база данных test приходит без любых таблиц, Вы можете определить mysql как базу данных вместо нее, так что Вы сможете увидеть таблицы при выполнении DataManager.
Запуск DataManager

Теперь Вы должны иметь возможность выполнить DataManager и просмотреть список драйверов, DSN и таблиц для каждого DSN.
Работает! Дальше что?

UnixODBC скорее посредник между программой и одной или большим количеством баз данных, а не самостоятельная и самодостаточная программа. Имеется информация относительно настройки StarOffice так, чтобы можно было использовать ODBC-соединение. Есть также пакет управления данными, также использующий unixODBC ( http://www.info2000.net/~cmorrison/databuilder.html), да и вообще в последнее время стало много программ с поддержкой unixODBC.
Буфер соединений ODBC

Начиная с unixODBC версии 2.0.0, драйвер поддерживает объединение соединения. Этот метод позволяет увеличить быстродействие соединений драйверов путем их многократного использования. Этот раздел обсуждает, как выполнить объединение соединения в unixODBC а также, что Вы должны знать перед выполнением этого.
Сначала, почему Вы не должны использовать объединение

Имеется пара пунктов, которые должны быть рассмотрены перед использованием объединенных соединений. Возможно, что если они используются неправильно, это может нарушить системную безопасность. Если Ваш web-сервер использует PHP (например) и объединенные соединения, и делает на соединении что-либо, из-за чего конечное состояние соединения будет отличаться от начального, Вы не должны использовать объединение.

Приведу конкретный пример. Допустим, что Вы имеете страницу, которая запрашивает пароль от пользователя, а затем используя этот пароль, изменяет заданную по умолчанию базу данных как-то так, как не позволено другим пользователям. Если это соединение многократно используется другими пользователями, они будут иметь доступ к данным, которые им нельзя позволять видеть. Если Ваши скрипты делают что-то подобно этому, всегда изменяют соединение с базой данных или изменяют заданную по умолчанию базу данных, лучше не пользоваться объединением соединений
Когда Вы можете использовать объединение

Объединение эффективно только когда используется внутри процесса, хороший пример: web-сервер, использующий PHP и ODBC. Здесь соединения будут объединены внутри каждого процесса web-сервера и многократно использоваться с хорошим увеличением эффективности. Плохой пример: внешняя программа CGI. Здесь каждый раз будет выполнен различный процесс, и не имеется ничего такого, что можно улучшить с помощью объединения соединений.
Как это делается

Объединение запускается, редактируя файл настройки odbcinst.ini, а также на основании драйвера. Если требуется иметь некоторые соединения с драйвером с использованием объединений, а некоторые без этого, то создают две записи для драйвера и отображают различные DSN. Установка с поддержкой объединения выглядит примерно так:
[ODBC]
Trace = No
Trace File = /tmp/sql.log
Pooling = Yes

[INTERBASE-P]
Description = Easysoft Driver for Interbase
Driver = /usr/local/lib/libib6odbc.so
Setup = /usr/local/lib/libib6odbcS.so
FileUsage = 1
DontDLClose = 1
CPTimeout = 120

[INTERBASE]
Description = Easysoft Driver for Interbase
Driver = /usr/local/lib/libib6odbc.so
Setup = /usr/local/lib/libib6odbcS.so
FileUsage = 1
DontDLClose = 1
CPTimeout = 0

При использовании этого файла любой DSN, который применяет драйвер INTERBASE, не будет объединять соединения, а DSN, который использует драйвер INTERBASE-P, будет объединять соединения.

Параметр "Pooling=Yes" представляет собой глобальный переключатель, включающий возможность объединению в диспетчере драйвера, если он установлен в No, не будут никаких объединенных соединений. Чтобы объединять индивидуальный драйвер, значение "CPTimeout" должно быть установлено в ненулевое числовое значение.

Это значение указывает число секунд, которое объединенное соединение останется открытым, если оно не используется. Обратите внимание, что соединение будет закрыто только, когда другое соединение открыто.
Полезные сслки

http://users.ids.net/~bjepson/freeODBC: FreeODBC.

web=сайт, специализированный по общим понятиям и принципам FreeODBC. Очень неплохое свободное ODBC-решение для Linux.

http://www.easysoft.com : EasySoft.

Вы можете искать коммерческое решение для Вашего ODBC-проекта. EasySoft был очень полезен при разработке unixODBC, так что я очень рекомендую Вам обратить внимание на их разработки.

http://www.openlinksw.com: OpenLink.

Другой коммерческий поставщик простой технологии доступа к данным.

http://www.inline.net : InLine.

Эта система очень хорошо поддерживает unixODBC.

http://orcane.net/freeodbc++: odbc++.

Это очень хорошо написанный JDBC-подобный класс для ODBC. Это может использоваться вместе с unixODBC.

http://www.dharma.com: dharma.

Коммерческий набор разработчика (SDK).

http://www.geocities.com/skuchin/otl/home.htm: Odbc Template Library (OTL).

OTL предоставляет API подобный обычным потокам C++. OTL сильно интегрирован с STL через-совместимый поток.

http://www.geocities.com/corwinjoy/dtl/index.htm: Database Template Library.

Цель этой библиотеки состоит в том, чтобы сделать просмотр наборов данных ODBC аналогичным STL-контейнерам.

Ссылки на СУБД
http://members.aa.net/~swear/pedia/database.html
ftp://ftp.idiom.com/pub/free-databases
http://www.linux.org/apps/database.html
http://www-ccs.cs.umass.edu/db.html
http://www.cs.wisc.edu/~jgoldst/dbmshome.html#other
________________________________

http://www.asteriskguru.com/tutorials/realtime_pgsql.html
________________________
News Idefisk Tools Tutorials Forum Reviews VoIP Providers Archives Gallery



Back to Tutorials

7.1. With PostgreSQL

1. Introduction:

In short, RealTime provides the possibility to put configuration files in Database Servers.

Its needless to say that this eases the configuration of the asterisk server through external programs, scripts and webpages.

When making changes to the dialplan or the users, there is no need for a reload or a restart, everything is fetched from the database at all times. (this is optional and can be disabled, see later)

Besides the easier interface to other configuration tools, this also allows to have a hot spare server running asterisk, or even an easier load balanced setup.

In general the use of RealTime gives you a flexibility when you store and pull data from Asterisk.

2. Native Mysql, iodbc, unixODBC ?

There are two ways you can connect the realtime module to a database .

The first way is to use MySQL driver which is embedded in Asterisk-add ons and the second way is to use ODBC driver which is included in Asterisk HEAD CVS snapshot.

The ODBC driver is by far the best option, its a more general approach to the database, and it supports more than just mysql.
(its also used more, thus tested more, so probably the most stable of the two).

For this tutorial, we use ODBC. Again we have two options, on linux there are two ways for odbc connectivity, called iodbc and unixodbc. We use unixodbc. Also we have to mention that because of some header files duplication you can't use both driver at the same time, you have to choose one of them. Important is that the configuration of both is done in a similar way or with minor changes.


This tutorial is all about odbc with the database pgsql (PostgreSQL),
If we want to use pgsql, we will need not only the odbc apim but also the odbc-postgresql driver.

We will also need to create some things on the database, this will be documented later on in this tutorial.




3. Performance and reliability design question.

If asterisk needs to connect to the database for every step in the dialplan, the database might get very overloaded.
Its little known that Asterisk RealTime can be configured in two different ways:

Static Realtime

In this case, the data is retrieved from the database server only on startup and on reloads.

The advantage is that the load on the database server is lower, and if the database server goes down, it might not affect your running asterisk.

The big disadvantage is, ... well its not realtime :)
After every change to the database, the asterisk will need to be reloaded.)

Dynamic Realtime
this is the second possibility, here all configuration changes reflect in realtime. But if you database server goes down, so does your voip service.

4. The installation

In this tutorial we will start from a stock debian distribution, but any other distro will do fine, although some small things might be different.

Asterisk and realtime need some additional packages installed.

Packages needed before installing Asterisk:

cvs
libssl-dev
zlib1g-dev
In Debian you can install them with apt-get install .

Packages needed to include RealTime in Asterisk:

unixodbc (our version is 2.2.4-11)
unixodbc-dev
postgresql (our version is 7.4.7-6sarge1)
postgresql-client
postgresql-contrib
postgresql-dev
odbc-postgresql (our version is 07.03.0200-5)


As we want to have an asterisk version with RealTime support, we need to fetch cvs head from the asterisk CVS server:

The version which we used for this tutorial was - CVS-HEAD-06/03/05-10:59:09.

Choose some directory to put sources and download the source.

astrealtime:~# mkdir /usr/src/asterisk
astrealtime:~# cd /usr/src/asterisk
astrealtime:~# export CVSROOT=:pserver:anoncvs@cvs.digium.com:/usr/cvsroot
astrealtime:~# cvs login (password for login on cvs server is "anoncvs")
astrealtime:~# cvs checkout zaptel libpri asterisk (getting CVS HEAD sources)
astrealtime:~# cd /usr/src/asterisk/libpri
astrealtime:~# make
astrealtime:~# make install
astrealtime:~# cd /usr/src/asterisk/zaptel
astrealtime:~# make linux26


We will do everything with kernel 2.6.x

be sure to include following features in the kernel:
Device Drivers -> Character Devices -> Enhanced Real Time Clock Support
Library Routines -> CRC-CCITT functions
It is recommended but not necessary to compile them as modules.

Note: In 2.6 kernel you no longer need the usb_uhci module.

astrealtime:~# make install
astrealtime:~# cd /usr/src/asterisk/asterisk


If you habe a special processor type you can edit it in Makefile before compiling Asterisk.
For example VIA Samuel 2 processors need to be with PROC=i586 setup in that Makefile otherwise Asterisk will not run.

astrealtime:~# make
astrealtime:~# make install
astrealtime:~# make templates


If this is your first install of Asterisk you can make templates for configuration files needed.

5. UnixODBC configuration

The next step is to configure ODBC driver, in our case UnixODBC.
If you installed from Debian package you can use template files to build the needed config files. The configuration files we need to make odbc work are /etc/odbc.ini and /etc/odbcinst.ini.

astrealtime:~# odbcinst -i -d -f /usr/share/psqlodbc/odbcinst.ini.template
astrealtime:~# cat /usr/share/doc/odbc-postgresql/examples/odbc.ini.template >> /etc/odbc.ini



After last two steps we have /etc/odbc.ini and /etc/odbcinst.ini.


6. Configuration of PGSQL

Now we need to include some extra functions and data types in PostgreSQL database to be able to use proper ODBC connectivity.

astrealtime:~# su - postgres
astrealtime:~$ psql -d template1 share/psqlodbc/odbc.sql
astrealtime:~$ psql -d template1
template1=# CREATE DOMAIN lo AS int4;

Now we should create user asterisk and database named asterisk in wich we will put tables which we need for our configuration.

astrealtime:~$ createuser -P -N -d -D asterisk (this is executed in postgres user shell)
astrealtime:~$ createdb asterisk
astrealtime:~$ psql -d asterisk

Now it is time to create tables needed to store configuration in the database.

Creating table extensions_conf:

astrealtime:~$ psql -U asterisk -W -d asterisk

CREATE TABLE extensions_conf (
id serial NOT NULL,
context character varying(20) DEFAULT '' NOT NULL,
exten character varying(20) DEFAULT '' NOT NULL,
priority smallint DEFAULT 0 NOT NULL,
app character varying(20) DEFAULT '' NOT NULL,
appdata character varying(128)
);

Creating table cdr:

CREATE TABLE cdr (
calldate timestamp with time zone DEFAULT now() NOT NULL,
clid character varying(80) DEFAULT '' NOT NULL,
src character varying(80) DEFAULT '' NOT NULL,
dst character varying(80) DEFAULT '' NOT NULL,
dcontext character varying(80) DEFAULT '' NOT NULL,
channel character varying(80) DEFAULT '' NOT NULL,
dstchannel character varying(80) DEFAULT '' NOT NULL,
lastapp character varying(80) DEFAULT '' NOT NULL,
lastdata character varying(80) DEFAULT '' NOT NULL,
duration bigint DEFAULT 0::bigint NOT NULL,
billsec bigint DEFAULT 0::bigint NOT NULL,
disposition character varying(45) DEFAULT '' NOT NULL,
amaflags bigint DEFAULT 0::bigint NOT NULL,
accountcode character varying(20) DEFAULT '' NOT NULL,
uniqueid character varying(32) DEFAULT '' NOT NULL,
userfield character varying(255) DEFAULT '' NOT NULL
);


Creating table sip_conf:

CREATE TABLE sip_conf (
id serial NOT NULL,
name character varying(80) DEFAULT '' NOT NULL,
accountcode character varying(20),
amaflags character varying(7),
callgroup character varying(10),
callerid character varying(80),
canreinvite character varying(3) DEFAULT 'yes',
context character varying(80),
defaultip character varying(15),
dtmfmode character varying(7),
fromuser character varying(80),
fromdomain character varying(80),
host character varying(31) DEFAULT '' NOT NULL,
insecure character varying(4),
"language" character varying(2),
mailbox character varying(50),
md5secret character varying(80),
nat character varying(5) DEFAULT 'no' NOT NULL,
permit character varying(95),
deny character varying(95),
mask character varying(95),
pickupgroup character varying(10),
port character varying(5) DEFAULT '' NOT NULL,
qualify character varying(3),
restrictcid character varying(1),
rtptimeout character varying(3),
rtpholdtimeout character varying(3),
secret character varying(80),
"type" character varying DEFAULT 'friend' NOT NULL,
username character varying(80) DEFAULT '' NOT NULL,
disallow character varying(100) DEFAULT 'all',
allow character varying(100) DEFAULT 'g729;ilbc;gsm;ulaw;alaw',
musiconhold character varying(100),
regseconds bigint DEFAULT 0::bigint NOT NULL,
ipaddr character varying(15) DEFAULT '' NOT NULL,
regexten character varying(80) DEFAULT '' NOT NULL,
cancallforward character varying(3) DEFAULT 'yes'
);

Creating table voicemail_users:

CREATE TABLE voicemail_users (
id serial NOT NULL,
customer_id bigint DEFAULT (0)::bigint NOT NULL,
context character varying(50) DEFAULT '' NOT NULL,
mailbox bigint DEFAULT (0)::bigint NOT NULL,
"password" character varying(4) DEFAULT '0' NOT NULL,
fullname character varying(50) DEFAULT '' NOT NULL,
email character varying(50) DEFAULT '' NOT NULL,
pager character varying(50) DEFAULT '' NOT NULL,
stamp timestamp(6) without time zone NOT NULL
);

Since a week there irealtime support for queues and queue members was added to Asterisk HEAD CVS. Lets also add that...

CREATE TABLE queue_table (
name varchar(128),
musiconhold varchar(128),
announce varchar(128


Понравилось: 1 пользователю

http://www.rixler.com

Воскресенье, 03 Июня 2007 г. 18:15 + в цитатник
http://www.rixler.com

ломаем пароли винды

Вложение: 3586027_iprmaster_.zip


bydlocoder.ru

Вторник, 22 Мая 2007 г. 16:30 + в цитатник
bydlocoder.ru питон

Open-Xchange – свободу группам!

Вторник, 15 Мая 2007 г. 02:11 + в цитатник
Open-Xchange – свободу группам!

Павел Лебедев

Многие из вас задумываются об альтернативе таким Groupware-продуктам, как MS Exchange и Lotus Notes. Наконец, нам стала доступна свободная версия Novell/SUSE Linux Open-Xchange-сервера (SLOX).

Open-Xchange (OX) базируется на компонентах с открытым исходным кодом, таких как веб-сервер, почтовый сервер c IMAP, база данных и сервер директорий. Сервер почти целиком написан на JAVA с присутствием элементов на языке С для участков, которые требуют большей безопасности. OX предоставляет пользователю такие модули: портал, календарь, контакты, адреса, задачи, проекты, документы, знания, закладки, доска голосований, форум, веб-интерфейс для почты. Доступ к серверу OX можно получить из многих браузеров и программных пакетов, например: KDE Kontact, Apples iCAL, Konqueror, Mozilla Suite и многих других, основанных на открытых стандартах и интерфейсах. Также можно подключаться из MS Outlook или Palm-устройств с помощью OX-клиента, который доступен для скачивания с сайта.

В данной статье как операционную систему для OX будем использовать FreeBSD версии 5.3, с локально установленными пакетами: Apache2/Tomcat, Postfix/Cyrus, PostgreSQL, OpenLDAP и т. д. Но это не говорит о том, что вы жестко привязаны к такому набору компонентов. OX прекрасно работает на многих UNIX/Linux-подобных системах. Связки пакетов можно менять по вашему вкусу или основываясь на уже установленных программных комплексах. Например, Apache2/Tomcat можно заменить на Apache1.3/jserv, Postfix/Cyrus на Exim/Сourier, использовать внешние базы данных, серверы директорий, почтовые серверы и т. д.

До того как вы приступите к установке OX, чтоб лучше представлять себе, как выглядит система, ее возможности, интерфейс пользователя, рекомендую посмотреть скриншоты (http://mirror.open-xchange.org/ox/EN/community/screenshots.htm), поработать в demo-режиме с порталом и веб-интерфейсом для почты (http://mirror.open-xchange.org/ox/EN/community/online.htm).

Будьте внимательны! Автор не несет ответственности за возможную потерю данных при использовании данной статьи.

Все бренды и названия продуктов являются или могут быть торговыми марками и используются, чтобы идентифицировать продукты или услуги, их соответствующих владельцев.

Подготовим окружение для OX

Введем переменные для простоты написания и понимания:

n OX_home=/usr/local/openxchange – папка, в которую будет установлен OX;

n OX_install=/home/user/OX – в эту папку будем складывать файлы, требуемые для установки;

n p_dir=/usr/ports – папка, где лежит дерево портов FreeBSD.



Для компиляции, инсталляции и работы OX потребуется установить такие программы из коллекции портов:

n shells/bash – мощный интерпретатор команд, требуется для запуска OX и просто в повседневной жизни админа;

n security/sudo – программа для ограниченной раздачи прав администратора пользователям, нужна для запуска OX-сервера;

n java/jdk15 – Sun’s Java Development Kit под FreeBSD;

n www/jakarta-tomcat5 – веб-сервер, позволяющий запускать Java Servlet и JavaServer Pages;

n lang/perl5.8 – язык программирования Perl;

n www/apache2 – очень распространенный веб-сервер;

n devel/apache-ant – основанная на Java утилита для сборки приложений;

n net/openldap22-server – сервер директорий LDAP.

Java

Мы будем устанавливать Native JDK для FreeBSD (http://www.freebsd.org/java/install.html). Напомню, что при установке Java понадобится около 2 Гб свободного места для раздела, на котором будет происходить компиляция пакета. Также для этого потребуются исходники и бинарные архивы Java.

Замечание: файлы надо скачать самостоятельно в связи с лицензионными ограничениями. Для этого надо зарегистрироваться на сайте www.sun.com, а потом со страницы http://www.sun.com/software/java2/download.htm, выбрав платформу Java(TM) SDK 1.5.0, скачать:

n jdk-1_5_0-src-scsl.zip

n jdk-1_5_0-bin-scsl.zip





Со страницы http://www.eyesbeyond.com/freebsddom/java/jdk15.html:

n bsd-jdk15-patches-1.tar.bz2

И положить архивы в папку $p_dir/distfiles.

Как написано в BUILD, для начала процесса компиляции нужен рабочий javac-компилятор. По умолчанию порт ставит java/linux-sun-jdk14, но можно использовать и родной java/jdk14 и java/linux-blackdown-jdk14:

> cd $p_dir/java/jdk15

> sudo make install

Замечание: если процесс завис, нужно остановить его нажатием и добавить Linux proc-файловую систему командами:

> sudo kldload linprocfs

> sudo mount -t linprocfs linprocfs /compat/linux/proc

Запускаем процесс компиляции еще раз, предварительно почистив порт java/jdk15 от уже скомпилированного кода. По окончании проверяем, если вывод команды java -version похож на приведенный ниже, значит, установка прошла успешно:

> sudo make clean && sudo make install clean

> java -version

java version "1.5.0-p1"

Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-p1-root_08_apr_2005_22_00)

Java HotSpot(TM) Client VM (build 1.5.0-p1-root_08_apr_2005_22_00, mixed mode)



Для работы OX потребуются дополнительные jar-компоненты:

n mail.jar – http://java.sun.com/products/javamail/downloads/index.htm

n activation.jar – http://java.sun.com/products/javabeans/glasgow/jaf.html

n xerces.jar – http://xml.apache.org/xerces2-j/download.cgi

n jdom.jar – http://www.jdom.org/dist/binary



На момент написания статьи были использованы следующие версии jar-архивов:

n javamail-1_3_2.zip

n jaf-1_0_2-upd.zip

n Xerces-J-bin.2.6.2.tar.gz

n jdom-1.0.tar.gz

Теперь создадим папки и распакуем в них архивы:

> cd $OX_install

> unzip javamail-1_3_2.zip

> sudo mv ./javamail-1.3.2 /usr/local/javamail

> unzip jaf-1_0_2-upd.zip

> sudo mv ./jaf-1.0.2 /usr/local/jaf

> tar xzvf Xerces-J-bin.2.6.2.tar.gz

> sudo mv ./xerces-2_6_2 /usr/local/xerces

> tar xzvf jdom-1.0.tar.gz

> sudo mv ./jdom-1.0 /usr/local/jdom

Tomcat

Установим сервлет-сервер и проверим его работу, для этого нужно запустить сервис Tomcat и пройти по ссылке http://127.0.0.1:8180. В результате должна появиться страница с информацией о Tomcat:

> cd $p_dir/www/jakarta-tomcat5

> sudo make install clean

> sudo /usr/local/etc/rc.d/020.jakarta-tomcat50.sh start

> lynx http://127.0.0.1:8180

Perl + модули, требуемые для OX

Из дерева портов нам нужно установить следующие компоненты:

n devel/p5-Storable

n devel/p5-Time-Local

n net/p5-URI

n net/p5-perl-ldap

n www/p5-CGI.pm

n converters/p5-MIME-Base64

n converters/p5-Convert-ASN1

n security/p5-Net-SSLeay

n security/p5-Digest-MD5

n security/p5-Authen-SASL

n security/p5-IO-Socket-SSL

n textproc/p5-XML-NamespaceSupport

n textproc/p5-XML-SAX-Base

Установка perl-модулей происходит так же, как и обычных портов, например, установим devel/p5-Storable:

> cd $p_dir/devel/p5-Storable

> sudo make install clean

PostgreSQL

Установим SQL-сервер и добавим автоматический запуск при старте системы. Для этого в файл /etc/rc.conf внесем строку: postgresql_enable=”YES”:

> cd $p_dir/databases/postgresql80-server

> sudo make install clean

Запустим скрипт инициализации базы данных OX. Следует напомнить, что пароль для пользователя openxchange в PostgreSQL-сервере будет использоваться при конфигурировании OX в директиве --with-dbpass=:

> sudo /usr/local/etc/rc.d/010.pgsql.sh initdb

> sudo /usr/local/etc/rc.d/010.pgsql.sh start

После этого добавляем пользователя и создаем базу:

> sudo su -l -m pgsql

%createuser –pwprompt

Введите имя нового пользователя: openxchange

Введите пароль для нового пользователя:

Введите снова:

Разрешить новому пользователю создавать базы данных? (y/n) y

Разрешить новому пользователю создавать пользователей? (y/n) n

CREATE USER

%createdb -O openxchange -E UNICODE openxchange

CREATE DATABASE

Кроме этого, для работы OX с PostgreSQL надо скачать JDBC (http://jdbc.postgresql.org).

В портах есть версия 8.0 databases/postgresql-jdbc, но мы предлагаем использовать коннектор версии pg74.215.jdbc3.jar, скачать который можно с сайта http://jdbc.postgresql.org/download.htm:

> sudo mkdir /usr/local/jdbc

> sudo cp pg74.215.jdbc3.jar /usr/local/jdbc

Apache2 и Ant

Настала очередь веб-сервера, установим его и настроим автозапуск. Также установим утилиту для сборки приложений. Для автозапуска Apache2 при старте системы в файл /etc/rc.conf добавляем строку: apache2_enable=”YES”.

> cd $p_dir/www/apache2

> sudo make install clean

> cd $p_dir/devel/apache-ant

> sudo make install clean

Для соединения сервлет-сервера Tomcat и веб-сервера Apache2 нам потребуется установить модуль mod_jk. На данный момент есть 2 версии этого модуля – mod_jk и mod_jk2, но так как mod_jk2 официально больше не поддерживается, использовать его не будем. Опираясь на рекомендации разработчиков, вместо него возьмем www/mod_jk-apache2.

> cd $p_dir/www/mod_jk-apache2

> sudo make install clean

LDAP

Для работы OX надо собрать LDAP-сервер с экспериментальной функцией ACI (inside-the-tree access controls). Эта функция дает контроль над правами объекта в дереве.

> cd $p_dir/net/openldap22-server

> sudo make -DWITH_ACI install clean

Добавляем автоматический запуск при старте системы и разрешаем слушать только на внутреннем интерфейсе, для этого в файл /etc/rc.conf добавляем строки:

slapd_enable="YES"

slapd_flags='-h "ldap://127.0.0.1/"'

Установливаем OX и настраиваем взаимодействие с окружением

Инсталляция OX

Все готово для начала инсталляции OX. Первым делом необходимо скачать исходники OX с сайта (www.open-xchange.org). Я взял исходники версии 0.7.5, так как для нее на момент установки была русификация. Нам потребуются файлы:

n open-xchange-0.7.5.tar.gz

n OX-RU-Groupware.0.7.5.tar.gz

n OX-RU-Webmail.0.7.5.tar.gz

Далее делаем такие операции:

> cd $OX_install

> tar xzvf open-xchange-0.7.5.tar.gz

> cd open-xchange-0.7.5

Чтобы посмотреть возможные опции конфигурации, выполняем команду:

> ./configure -help

Конфигурируем, компилируем и устанавливаем пакет OX. При этом обратите внимание на опцию --with-dbpass= и укажите тот самый пароль, который задан для пользователя openexchnge в PostgreSQL.

> ./configure –prefix=$OX_home \

> --enable-webdav --enable-doc \

> --with-mailjar=/usr/local/javamail/mail.jar \

> --with-activationjar=/usr/local/jaf/activation.jar \

> --with-jdomjar=/usr/local/jdom/build/jdom.jar \

> --with-xercesjar=/usr/local/xerces/xercesImpl.jar \

> --with-jsdkjar=/usr/local/jakarta-tomcat5.0/common/lib/servlet-api.jar \

> --with-jdbcjar=/usr/local/jdbc/pg74.215.jdbc3.jar \

> --with-dbpass=open \

> --with-runuid=www –with-rungid=www

> make

> sudo make install

На данный момент у нас есть установленный OX и его окружение, приступим к пост-инсталляционному конфигурированию.

Login.pl (Perl/CGI)

Настроим и проверим окно авторизации пользователя OX:

> cd $OX_home/share/perl/

> sudo cp login.pl login.pm /usr/local/www/cgi-bin/

> sudo /usr/local/etc/rc.d/apache2.sh start

> lynx http://127.0.0.1/cgi-bin/login.pl

Замечание: если окно ввода имени и пароля пользователя OX не появилось, нужно смотреть настройки и лог-файлы, веб-сервера Apache2.

Servlets

Настроим servlet-движок так, чтоб он обрабатывал запросы OX. Для этого скопируем нужные файлы из пакета OX.

> cd /usr/local/jakarta-tomcat5.0/webapps

> sudo mkdir -p servlet/WEB-INF/classes servlet/WEB-INF/lib

> sudo cp $OX_home/share/servlets/*.class ./servlet/WEB-INF/classes

> cd servlet/WEB-INF/

Создаём файл web.xml с таким содержимым. Этот файл требуется для того, чтобы Tomcat понимал, как обрабатывать запросы к groupware и webmail:











Servlet OpenXchange

Servlet OpenXchange 0.7.5





intranet

intranet

OX Groupware

OX







intranet

/intranet







webmail

webmail

OX Webmail

OX







webmail

/webmail







Скопируем jar-файлы для Tomcat из установленного пакета OX и проверим правильность работы Tomcat, просмотрев в браузере вывод http://127.0.0.1:8180/servlet/intranet:

> cd /usr/local/jakarta-tomcat5.0/webapps/servlet/WEB-INF/lib

> sudo cp $OX_home/lib/*.jar .

> sudo chown -R www:www /usr/local/jakarta-tomcat5.0/webapps/

> sudo /usr/local/etc/rc.d/020.jakarta-tomcat50.sh stop

> sudo /usr/local/etc/rc.d/020.jakarta-tomcat50.sh start

> lynx http://127.0.0.1:8180/servlet/intranet

Если сервер ответил:

No running Server found. Please inform the Administrator!

это говорит о том, что всё идет нормально, продолжаем настраивать OX.

mod_jk

Настроим взаимодействие Apache2 и Tomcat с помощью mod_jk. Для этого добавим в файл /usr/local/etc/apache2/httpd.conf, такие строки:

LoadModule jk_module libexec/apache2/mod_jk.so







JkWorkersFile /usr/local/etc/apache2/workers.properties

JkLogFile /var/log/apache2/mod_jk.log

JkLogLevel error

JkMount /servlet/* test



Alias /servlet "/usr/local/jakarta-tomcat5.0/webapps/servlet"



servlet/WEB-INF/">

AllowOverride None

deny from all







Скопируйте /usr/local/etc/apache/workers.properties.sample в workers.properties. Измените hostname. Убедитесь, что две последние строки с правильными путями, в нашем случае файл должен выглядеть так:

worker.list=test

worker.test.port=8009

worker.test.host=localhost

worker.test.type=ajp13

worker.test.lbfactor=1

workers.tomcat_home=/usr/local/jakarta-tomcat5.0

workers.java_home=/usr/local/jdk1.5.0

PostgreSQL

С базой данных PostgreSQL проведем те же операции, которые написаны в [1], сначала инициализируем базу, а потом наполним данными из файла, который идёт с пакетом OX:

> sudo su -l -m pgsql

%psql -U openxchange openxchange < $OX_home/share/init_database.sql

%psql -U openxchange openxchange

openxchange=>INSERT INTO sys_gen_rights_template values

openxchange->('now','admin','now','','default_template','y','y','y','y',

openxchange(>'y','y','y','y','y','y','y','y','y','y','y','y','y','y','y',

openxchange(>'y','y','y','y','y','y','y','y','y','y','y','y','y','y','y',

openxchange(>'y','y','y','y','y','y','y','y','y','y','y','y','y');

openxchange=> \q



Также потребуется изменить файлы конфигурации servers.conf в папках:

n /usr/local/openxchange/etc/groupware

n /usr/local/openxchange/etc/webmail

Для того чтобы OX получил доступ к созданной нами базе данных, нужно изменить:

NAS_CON_CLASS_NAME: jdbc:postgresql://localhost/openexchange

NAS_CON_USER: openexchange

на

NAS_CON_CLASS_NAME: jdbc:postgresql://localhost/openxchange

NAS_CON_USER: openxchange

OpenLDAP

Приступим к настройке сервера директорий. Обратите внимание на то, что, если поменять суффикс «dc=example,dc=org» на что-то более родное типа «dc=good-domain,dc=ua», то это надо будет сделать во всех файлах конфигурации (до запуска OpenLDAP), а именно:

n /usr/local/etc/openldap/ldap.conf

n /usr/local/etc/openldap/slapd.conf

n /usr/local/openxchange/share/init_ldap.ldif

n /usr/local/openxchange/etc/admintools.conf

Изменяем конфигурацию OpenLDAP. Для этого в файле /usr/local/etc/openldap/ldap.conf добавляем строки:

BASE dc=example,dc=org

HOST localhost

а в файл /usr/local/etc/openldap/slapd.conf такие:

database bdb

suffix "dc=example,dc=org"

rootdn "cn=Manager,dc=example,dc=org"

rootpw secret

directory /var/db/openldap-data

index objectClass eq

index uid,mailEnabled,cn,sn,givenname,lnetMailAccess,alias,loginDestination eq,sub

Теперь запускаем OpenLDAP:

> sudo /usr/local/etc/rc.d/slapd.sh start

Редактируем файл /usr/local/openxchange/share/init_ldap.ldif и меняем пароль для доступа к базе:

userPassword: {CRYPT}newmailadminpass

В этой строке newmailadminpass меняем на вывод команды:

> perl -e 'print crypt(YOURPASSHERE,pack("C2",(int(rand 26)+65),(int(rand 26)+65)));'

где YOURPASSHERE – пароль для доступа к OpenLDAP.

Теперь импортируем данные для OX из файла /usr/local/openxchange/share/init_ldap.ldif командой:

> sudo slapadd -l $OX_home/share/init_ldap.ldif

Создадим символические ссылки для OX на ldap.conf:

> sudo ln -s /usr/local/etc/openldap/ldap.conf $OX_home/etc/groupware/ldap.conf

> sudo ln -s /usr/local/etc/openldap/ldap.conf $OX_home/etc/webmail/ldap.conf

Добавляем пользователя

Так как многие скрипты в папке /usr/local/openxchange/sbin используют в качестве оболочки /bin/bash, а оригинальное расположение bash в FreeBSD /usr/local/bin/bash, сделаем символическую ссылку и добавим первого пользователя OX:

> sudo ln -s /usr/local/bin/bash /bin/bash

> sudo $OX_home/sbin/adduser_ox \

> --username="test" \

> --passwd="test" \

> --name="Pavel" \

> --sname="Lebedev" \

> --maildomain="example.org" \

> --ox_timezone="Europe/Kiev"

Если скрипт запустить от обычного пользователя, он выдаст:

Execute as root...or make sure slappasswd is in PATH

Запускаем от root, появилась надпись зеленого цвета, что с LDAP все хорошо, а красным цветом, что база openexchange в PostgreSQL не существует:

LDAP Success

psql: FATAL: database "openexchange" does not exist

SQL Error

Deleting User from LDAP

Возвращаемся в пункт PostgreSQL и смотрим, наша база называлась openxchange, а OX использует для доступа базу openexchange, находим и исправляем строки, в файле /usr/local/openxchange/etc/admintools.conf, который отвечает за конфигурацию сервера:

DEFAULT_SQL_DB="openxchange"

DEFAULT_SQL_USER="openxchange"

Запускаем еще раз и получаем в ответ:

LDAP Success

SQL Success

Теперь добавим группу:

> sudo $OX_home/sbin/addgroup_ox –group=developers

Added Group developers to LDAP

Добавление первого пользователя и группы успешно завершено.

Apache2 / Website

Настроим взаимодействие веб-сервера и OX. Для этого создаем папки в директории data веб-сервера и скопируем в них контент, который идет вместе с OX.

> cd /usr/local/www/data

> sudo mkdir -p cfintranet/webmail

> cd $OX_home/share/groupware/data/

> sudo cp -R images css javascript/usr/local/www/data/cfintranet/

> cd $OX_home/share/webmail/data/

> sudo cp -R images css javascript/usr/local/www/data/cfintranet/webmail

Хранилище файлов

Создадим хранилище данных, для этого запустим скрип, который на медленных машинах, с многими файловыми системами, может выполняться довольно долго.

Как написано в [2], файл sbin/correctfilespool в качестве интерпретатора содержит «#!/bin/sh», но, скорее всего, это какая-то модификация bash. Так что поменяем «#!/bin/sh» на «#!/usr/local/bin/bash». Также скрипт sbin/correctfilespool использует GNU seq для счета от 0 до 255, но в составе FreeBSD ее нет. Для решения проблемы можно выбрать два пути. Первый поставить порт sysutils/coreutils и заменить все seq на gseq. Второй вместо seq использовать программу jot, идущую в стандартной поставке FreeBSD, и везде заменить «seq 0 255» на «jot 256 0».

> cd $OX_home/sbin/

> sudo sh ./correctfilespool

Русификация интерфейса

Перейдем в папку, где лежат архивы, скачанные с сайта OX, раз архивируем и установим русификацию для Groupware и Webmail:

> cd $OX_install

> tar xzvf ./OX-RU-Groupware.0.7.5.tar.gz

> sudo cp -r ~/opt/html/RU $OX_home/share/groupware/data/templates/

> sudo cp -r ~/opt/locales/RU.dlc $OX_home/etc/groupware/locales/

> rm -r ./opt

> tar xzvf ./OX-RU-Webmail.0.7.5.tar.gz

> sudo cp -r ~/opt/html/RU $OX_home/share/webmail/data/templates/

> sudo cp -r ~/opt/locales/RU.dlc $OX_home/etc/webmail/locales/

> rm -r ./opt

Теперь надо открыть файл login.pm. в папке /usr/local/www/cgi-bin и для добавления возможности выбора языка интерфейса изменить строку:

my $languages = ['DE','EN'];

на

my $languages = ['EN','RU'];

Замечание: если после перезапуска Groupware, Webmail и Apache2, появится ошибка в файлах webmail.log или groupware.log:

Language RU is in the wrong version

Значит установлена неправильная версия OX-русификации. Скачайте пакет русификации с такой же версией, как и устанавливаемый пакет OX.

Как, оказалось, для отображения иконок панели в русифицированном интерфейсе потребуется создать папки RU и скопировать в них содержимое папок EN. Или как в примере сделать ссылку:

> sudo ln -s /usr/local/www/data/cfintranet/images/top/EN ./RU

> sudo ln -s /usr/local/www/data/cfintranet/webmail/images/top/EN ./RU

Запускаем ОХ

Вот наступил долгожданный момент первого запуска OX. Чтобы вступили в силу сделанные изменения в настройках веб сервера и сервера сервлетов, нужно перезапустить службы Apache2 и Tomcat, для этого надо выполнить такие команды:

>cd /usr/local/etc/rc.d

>sudo ./020.jakarta-tomcat50.sh stop

>sudo ./020.jakarta-tomcat50.sh start

>sudo ./apache2 .sh stop

>sudo ./apache2.sh start



Перед запуском OX нужно отредактировать скрипты:

n /usr/local/openxchange/etc/init.d/groupware

n /usr/local/openxchange/etc/init.d/sessiond

n /usr/local/openxchange/etc/init.d/webmail

на предмет того, что в FreeBSD используется синтаксис команды ps, отличный от GNU/Linux ps. Для этого нужно заменить «ps xao “%p %a”» на «ps xao “pid args”», и раскомментировать строки:

sudo -u $USER $OX_BIN >> $LOGFILE 2>&1 &

ps xao "pid args" | grep -E '.*java.*-DappName=groupwareApp' | grep -v grep | awk '{print $1}'

После этого надо закомментировать строки:

ps axwww | grep -E '.*java.*-DappName=groupwareApp' | grep -v grep | awk '{print $1}'

и

su $USER -s /bin/bash $OX_BIN >> $LOGFILE 2>&1 &

Далее можно пробовать запустить openxchange:

> sudo $OX_home/etc/init.d/openexchange start

Если появились ошибки при старте groupware, webmail и sessiond, нужно по аналогии со скриптами из папки /usr/local/openxchange/sbin в папке /usr/local/openxchange/etc/init.d для всех файлов заменить командный интерпретатор с «#!/bin/sh» на «#!/bin/bash».

После пробных неудачных запусков выяснились еще некоторые изменения, которые нужно внести. Для файлов в папке /usr/local/openxchange/bin изменить командный интерпретатор с «#!/bin/sh» на «#!/bin/bash» и заменить строку:

SERVER=$(test "$HOSTTYPE" == "i386" && echo "-server")

на

SERVER=$(test "$HOSTTYPE" == "FreeBSD" && echo "-server")

Хочется обратить внимание на то, что скрипт /usr/local/openxchange/etc/init.d/openexchange с опцией start будет работать, но вот опция status и stop работать не будут. Это связанно с тем, что в FreeBSD очень длинная командная строка с опциями, в выводе команды ps укорачивается до названия команды, и однозначно определить, что запущено под этой командой, будет невозможно.

Для проверки после старта openexchange советую зайти по адресу: http://server_ip/cgi-bin/login.pl, где server_ip – адрес вашего сервера, ввести логин и пароль созданного пользователя, выбрать groupware, язык локализации RU и нажать login. Во время входа портал будет медленнее работать. Но это нормально, OX проверяет новую почту для пользователя, а почтовый сервер еще не настроен. По наступлению тайм-аута ответа почтового сервера отобразится главная страница портала. Все остальные функции портала будут работать, и можно будет насладиться проделанной работой.

В следующей статье вы узнаете, как настроить дополнительную функциональность OX-сервера:

n почтовый сервер для работы с OX;

n настройка доступа через webdav;

n безопасные соединения HTTPS;

n контроль над доступом к данным пользователей.



Литература:

1. Файл INSTALL из архива пакета OX.

2. Установка OX на FreeBSD от Peter Schober – http://homepage.univie.ac.at/peter.schober/OX_on_FreeBSD.html.

3. Форум OX – http://www.open-xchange.org/cgi-bin/simpleforum.cgi.

4. Документация по установке на другие операционные системы – http://www.open-xchange.org/oxwiki/OXInstallations.

Вложение: 3582990_openxchange__SVOBODU_GRUPPAM.rar


жабба

Воскресенье, 13 Мая 2007 г. 00:47 + в цитатник
Установка Ejabberd под FreeBSD+AD+SSL
Задача и решение

Необходимо было построить на базе ejabberd корпоративный jabber-сервер. База пользователей хранится в M$ Active Directory, оттуда же производится авторизация. Так же необходимо что бы все пользователи видели всех пользователей домена в своём ростере. В качестве дополнительного ограничения на пользовательские ростеры выдвигается требование разбиения контактов на группы по отделам.

Что где взять
Патч для v1.0.0: http://realloc.spb.ru/files/ejabberd/ejabber_ad_001.patch.gz
Патч для v1.1.1: http://realloc.spb.ru/files/ejabberd/ejabber_ad_002.patch.gz

Как пропатчить
Копируем патч в порт с ejabberd (/usr/ports/net-im/ejabberd)
make patch
zcat ejabber_ad_002.patch.gz | patch -p1
make install clean

Как настроить AD

Для начала надо сделать некоторые вещи в AD. Создать пользователя в домене ejabberd. Необходимо создать группу, члены которой будут иметь доступ к jabber серверу и показываться в ростере. В нашем примере используется домен chloe.ku3 и группа Jabber Users. После внесения всех нужных пользователей в эту группу надо прописать им в поле департамента группу в общем ростере, которой они будут принадлежать. Например пользователь vasya@domen.ru должен быть включен в группу Jabber Users и в поле департамента у него будет прописано Support. Это заставит его контакт появиться в группе Support в ростере.

Настройка ejabberd

Тут просто опишу какие изменения необходимы в конфигурационном файле.

{auth_method, ad}.

В качестве метода аутентификации указываем AD. Из-за своеобразного видения стандартов одной маленькой и мягкой фирмой обычная ldap-авторизация с AD не работает.
{ad_servers, ["192.168.0.1"]}.
{ad_uidattr, "sAMAccountName"}.
{ad_group, "CN=Jabber Users,CN=Users,DC=avto,DC=yar,DC=ru"}.
{ad_base, "dc=avto,dc=yar,dc=ru"}.
{ad_rootdn, "CN=ejabberd,CN=Users, DC=avto,DC=yar,DC=ru "}.
{ad_password, "qwerty" }.

Тут всё просто.
ad_servers - IP или имя нашего домен-контроллера.
ad_uidattr - Атрибут, в котором хранится логин пользователя
ad_group - Группа, в которую входят правильные пользователи
ad_base - Собственно по какому домену ищем
ad_rootdn - Кем биндиться будем (ejabberd)
ad_password - Пароль того, кем биндиться будем. Анонимное с AD не работает. (qwerty)

В списке модулей надо вместо mod_vcard использовать mod_vcard_ad, и вместо mod_shared_roster надо mod_shared_roster_ad соответственно. Это позволит использовать AD ещё и для поиска и для вытягивания юзеринфо. Так же надо отключить in-band регистрацию пользователей. Во-первых она всё-равно не будет работать, а во-вторых она на корпоративном сервере ни к чему. Cделать это можно убрав mod_register из списка модулей.


Полный рабочий конфиг:

% $Id: ejabberd.cfg.example 538 2006-04-22 04:02:42Z alexey $

%override_acls.


% Users that have admin access. Add line like one of the following after you
% will be successfully registered on server to get admin access:
{acl, admin, {user, "nev"}}.
%{acl, admin, {user, "ermine"}}.

% Blocked users:
%{acl, blocked, {user, "test"}}.

% Local users:
{acl, local, {user_regexp, ""}}.

% Another examples of ACLs:
%{acl, jabberorg, {server, "jabber.org"}}.
%{acl, aleksey, {user, "aleksey", "jabber.ru"}}.
%{acl, test, {user_regexp, "^test"}}.
%{acl, test, {user_glob, "test*"}}.


% Only admins can use configuration interface:
{access, configure, [{allow, admin}]}.

% Every username can be registered via in-band registration:
% You could replace {allow, all} with {deny, all} to prevent user from using
% in-band registration
{access, register, [{allow, all}]}.

% After successful registration user will get message with following subject
% and body:
{welcome_message,
{"Welcome!",
"Welcome to Jabber Service. "
"For information about Jabber visit http://jabber.org"}}.
% Replace them with 'none' if you don't want to send such message:
%{welcome_message, none}.

% List of people who will get notifications about registered users
%{registration_watchers, ["admin1@localhost",
% "admin2@localhost"]}.

% Only admins can send announcement messages:
{access, announce, [{allow, admin}]}.


% Only non-blocked users can use c2s connections:
{access, c2s, [{deny, blocked},
{allow, all}]}.

% Set shaper with name "normal" to limit traffic speed to 1000B/s
{shaper, normal, {maxrate, 1000}}.

% Set shaper with name "fast" to limit traffic speed to 50000B/s
{shaper, fast, {maxrate, 50000}}.

% For all users except admins used "normal" shaper
{access, c2s_shaper, [{none, admin},
{normal, all}]}.

% For all S2S connections used "fast" shaper
{access, s2s_shaper, [{fast, all}]}.

% Admins of this server are also admins of MUC service:
{access, muc_admin, [{allow, admin}]}.

% All users are allowed to use MUC service:
{access, muc, [{allow, all}]}.

% This rule allows access only for local users:
{access, local, [{allow, local}]}.


% Authentication method. If you want to use internal user base, then use
% this line:
%{auth_method, internal}.

% For LDAP authentication use these lines instead of above one:
{auth_method, ad}.
{ad_servers, ["192.168.0.1"]}. % List of LDAP servers
{ad_uidattr, "sAMAccountName"}. % LDAP attribute that holds user ID
{ad_group, "CN=Jabber Users,CN=Users,DC=my,DC=domain,DC=ru"}.
{ad_base, "dc=my,dc=domain,dc=ru"}. % Search base of LDAP directory
{ad_rootdn, "CN=ejabberd,CN=Users,dc=my,dc=domain,dc=ru"}. % LDAP manager
{ad_password, "qwerty"}. % Password to LDAP manager

% For authentication via external script use the following:
%{auth_method, external}.
%{extauth_program, "/path/to/authentication/script"}.

% For authentication via ODBC use the following:
%{auth_method, odbc}.
%{odbc_server, "DSN=ejabberd;UID=ejabberd;PWD=ejabberd"}.


% Host name:
{hosts, ["bsd.my.domain.ru"]}.

%% Anonymous login support:
%% auth_method: anonymous
%% anonymous_protocol: sasl_anon|login_anon|both
%% allow_multiple_connections: true|false
%%{host_config, "public.example.org", [{auth_method, anonymous},
%% {allow_multiple_connections, false},
%% {anonymous_protocol, sasl_anon}]}.
%% To use both anonymous and internal authentication:
%%{host_config, "public.example.org", [{auth_method, [anonymous, internal]}]}.

% Default language for server messages
{language, "ru"}.

% Listened ports:
{listen,
[{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
{max_stanza_size, 65536},
starttls, {certfile, "путь к сертификату/ssl.pem"}]},
{5223, ejabberd_c2s, [{access, c2s},
{max_stanza_size, 65536},
tls, {certfile, "путь к сертификату/ssl.pem"}]},
% Use these two lines instead if TLS support is not compiled
%{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper}]},
%{5223, ejabberd_c2s, [{access, c2s}, ssl, {certfile, "./ssl.pem"}]},
{5269, ejabberd_s2s_in, [{shaper, s2s_shaper},
{max_stanza_size, 131072}
]},
{5280, ejabberd_http, [http_poll, web_admin]},
{8888, ejabberd_service, [{access, all},
{hosts, ["icq.localhost", "sms.localhost"],
[{password, "secret"}]}]}
]}.


% Use STARTTLS+Dialback for S2S connections
{s2s_use_starttls, true}.
{s2s_certfile, "путь к сертификату/ssl.pem"}.
%{domain_certfile, "example.org", "./example_org.pem"}.
%{domain_certfile, "example.com", "./example_com.pem"}.

% If SRV lookup fails, then port 5269 is used to communicate with remote server
{outgoing_s2s_port, 5269}.


% Used modules:
{modules,
[
{mod_register, [{access, register}]},
{mod_roster, []},
{mod_privacy, []},
{mod_adhoc, []},
{mod_configure, []}, % Depends on mod_adhoc
{mod_configure2, []},
{mod_disco, []},
{mod_stats, []},
{mod_vcard_ad, []},
{mod_offline, []},
{mod_announce, [{access, announce}]}, % Depends on mod_adhoc
{mod_echo, [{host, "echo.localhost"}]},
{mod_private, []},
{mod_irc, []},
% Default options for mod_muc:
% host: "conference." ++ ?MYNAME
% access: all
% access_create: all
% access_admin: none (only room creator has owner privileges)
{mod_muc, [{access, muc},
{access_create, muc},
{access_admin, muc_admin}]},
% {mod_muc_log, []},
{mod_shared_roster_ad, []},
{mod_pubsub, []},
{mod_time, []},
{mod_last, []},
{mod_version, []}
]}.




% Local Variables:
% mode: erlang
% End:



Настройка клиента

Для авторизации нам необходимо иметь пароль в открытом виде. Поэтому надо в клиенте разрешить передачу пароля незашифрованным. Если использовать SSL, то ничего страшного в этой опции нету.



Генерирование сертификата SSL


#openssl req -new -x509 -newkey rsa:1024 -days 3650 -keyout privkey.pem -out server.pem
Generating a 1024 bit RSA private key
................++++++
.......................................++++++
writing new private key to 'cert.pem'
-----
You are about to be asked to enter information that will be incorporated
into your certificate request.
What you are about to enter is what is called a Distinguished Name or a DN.
There are quite a few fields but you can leave some blank
For some fields there will be a default value,
If you enter '.', the field will be left blank.
-----
Country Name (2 letter code) [AU]:US
State or Province Name (full name) [Some-State]:PA
Locality Name (eg, city) []:Pittsburgh
Organization Name (eg, company) [Internet Widgits Pty Ltd]:My Company
Organizational Unit Name (eg, section) []:Systems Administrator
Common Name (eg, YOUR name) []:localhost.example.org
Email Address []:trhodes@FreeBSD.org

Please enter the following 'extra' attributes
to be sent with your certificate request
A challenge password []:SOME PASSWORD
An optional company name []:Another Name


#openssl rsa -in privkey.pem -out privkey.pem
#cat privkey.pem >> server.pem
#rm privkey.pem

#ee /usr/local/etc/ejabberd/ejabberd.cfg
{listen, [{5222, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
starttls, {certfile, "/home/ejabberd/server.pem"}]},
{5223, ejabberd_c2s, [{access, c2s}, {shaper, c2s_shaper},
ssl, {certfile, "/home/ejabberd/server.pem"}]},

_______________________________________________________________________________
см. http://ejabberd.jabber.ru/ejabberd_ad

openssl

Суббота, 12 Мая 2007 г. 20:11 + в цитатник
Быстрое поднятие SSL для Apache под FreeBSD

Эта небольшая практическая заметка как быстро создать сертификаты для
установки связи по SSL c помощью OpenSSL и быстро настроить веб-сервер
Apache+mod_ssl под FreeBSD для установки защищённого соединения.

Введение

Пытаясь настроить кодированное соединение по https-протоколу, чтобы
просто не гонять пароли открытым текстом, столкнулась с проблемой -
развитие документации, проработка удобства, и чарующая простота не
являются свойствами этой технологии. Хотя, вроде всё просто - есть
дерево подписей и подписанный сертификат (грубо говоря - визитка
сервера, с которым происходит соединение). Вы смотрите дерево подписей
и сами думаете, доверяете вы этим подписям или нет. Или же у вас есть
копия сертификата и вы сравниваете. В конце концов (и это требуется
чаще всего) вам хочется не очень светиться эксклюзивными данными и вам
всё равно какие там визитки. Эту простую задачу превратили в
монстроидальный набор крючочков и ручечек. Мне понадобилась неделя
чтобы, используя иногда по 3 статьи на разных языках одновременно ,
дойти до решения вопроса (у меня была задача номер три из моего списка
:)

Задача

Создать конфигурацию виртуального сервера с возможностью подключения
по HTTPS-протоколу для более менее безопасной передачи эксклюзивных
данных (трафик будет шифроваться). Вопрос начального обмена ключами,
который может повлиять на безопасность соединения, я оставлю для
самостоятельного изучения, как проблему выходящую за рамки этой
статьи.

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

* FreeBSD-4.7
* OpenSSL 0.9.6g
* Apache/1.3.26 + mod_perl/1.27

Настройка конфигурации OpenSSL

В файлике /etc/ssl/openssl.cnf надо проделать следующие изменения:

[ CA_default ]

dir = . # Это каталог для работы с ssl
certs = $dir/ssl.crt # Это где будут лежать сертификаты
crl_dir = $dir/ssl.crl # Это где будут листы "отзывов подписей"
database = $dir/index.txt # Здесь index file для индексирования запросов на подпись
new_certs_dir = $dir/ssl.crt # Сюда будут писать новые сертификаты

certificate = $dir/nemesida-ca.pem # Корневой сертификат
serial = $dir/serial # Серийный номер запроса
crl = $dir/ssl.crl/nemesida.pem # Текущий лист отзывов подписей
private_key = $dir/ssl.key/nemesida-ca.key# Секретный ключ для основного сертификата
RANDFILE = $dir/ssl.key/.rand #

Я так и не нашла, как обойти эти вещи заданием ключей, так что
придётся править конфиг.

Создаём "корневой" сертификат

Для удобства, перейдём в каталог с конфигурацией Apache, где у меня
располагаются подкаталоги с искомыми сертификатами:

# cd /usr/local/etc/apache

Корневой сертификат является корнем дерева подписей и является как бы
самой ГЛАВНОЙ подписью. Секретный ключ (он нужен для того, чтобы можно
было воспользоваться вашим корневым сертификатом для подписи
остальных) и сертификат создаются одной командой:

# openssl req -config /etc/ssl/openssl.cnf -new -x509 -keyout \
ssl.key/nemesida-ca.pem -out nemesida-ca.pem -days 3650

Вас спросят пароль - введите и запомните его. Все остальные поля
заполняйте так, как вам подскажет сердце. Снимите пароль с ключа:

# openssl rsa -in ssl.key/nemesida-ca.pem -out nemesida-ca.key

Если вы не сможете спасти этот ключ от посягательств, то и пароль вам
не поможет.
Что делает эта строка, я затрудняюсь ответить точно, но так сделать
рекомендуют:

# openssl x509 -in nemesida-ca.pem -out nemesida-ca.crt

Вот и всё - главная подпись, т.е. корневой сертификат, у вас есть. Он
подписан сам собой.

Подготавливаем площадку

Следующие действия, которые надо не забыть совершить, вызывают у меня
бурный восторг. Следует создать два файла с некоторой индексной
информацией, создать которые openssl не может, равно как и выдать
разумное сообщение по этому поводу. Создадим индексный файл (ключевое
слово database из openssl.cnf):

# touch index.txt

Создадим файл серийных номеров (ключевое слово serial из openssl.cnf):

# echo '01' > serial

Этот файл должен содержать две цифры (обязательно). Если вы ещё не
создавали никаких сертификатов кроме корневого, файл должен содержать
01.

Создаём сертификат сервера.

Создание сертификатов сервера состоит из процедуры создания запроса на
попись, а затем подписания этого запроса в отличии от создания
самоподписанного корневого сертификата. Создаём запрос на подпись
нового сертификата и создаём секретный ключ к нему:

# openssl req -config /etc/ssl/openssl.cnf -new -keyout \
ssl.key/nemesida.pem -out ssl.csr/nemesida.pem

Вводя даные, учтите, что поле Common Name должно содержать полностью
определённое доменное имя (FQDN) того сайта, где вы будете
использовать https-протокол, чтобы броузеры не выдавали предупреждения
о неверности имени. Снимите пароль с ключа:

# openssl rsa -in ssl.key/nemesida.pem -out nemesida.key

Подпишите запрос (подписка запроса и есть создание нового сертификата)
своим корневым сертификатом:

# openssl ca -config /etc/ssl/openssl.cnf -policy policy_anything -out \
ssl.crt/nemesida.pem -infiles ssl.csr/nemesida.pem

Подготовьте сертификат к использованию:

# openssl x509 -in ssl.crt/nemesida.pem -out ssl.crt/nemesida.crt

Списки запросов

Создайте на всякий случай список запросов (там будут храниться и
данные по отзывам подписей, если вам это когда-либо понадобится):

# openssl ca -gencrl -out ssl.crl/nemesida.pem

Настройка Apache.

В файле httpd.conf (сами найдите ваш файл конфигурации) прописываем:

NameVirtualHost *:443

DocumentRoot "/home/nemesida/www"
ServerName nemesida.ru
ScriptAlias /cgi-bin/ /home/nemesida/cgi-bin/
SSLEngine on
SSLCertificateFile /usr/local/etc/apache/ssl.rt/nemesida.crt
SSLCertificateKeyFile /usr/local/etc/apache/ssl.key/nemesida.key
SSLCACertificateFile /usr/local/etc/apache/nemesida-ca.crt
SSLCARevocationFile /usr/local/etc/apache/ssl.crl/nemesida.crl

SSLOptions +StdEnvVars

SetEnvIf User-Agent ".*MSIE.*" \
nokeepalive ssl-unclean-shutdown \
downgrade-1.0 force-response-1.0


Вот собственно и всё. Запускаете Apache и проверяете.

Замечания

* Пока вы не разберётесь в работе SSL, нельзя считать соединение
безопасным. В данном случае представлен быстрый вариант настройки,
не дающий никаких гарантий. Практически - это защита от дурака,
которой тоже пренебрегать не следует.
* Берегите секретные ключи - иначе вся эта мышиная возня не имеет
смысла.
* Поддержка виртуальных хостов "name based" возможна не в полном
варианте - сетрификат вы не сможете сделать различными для разных
"name based" виртуальных хостов. Это связано с тем, что сначала
устанавливается SSL-туннель, а затем по нему идёт обмен данными,
что определяет выбор сертификатов до получения HTTP-запроса.

ejabberd

Суббота, 12 Мая 2007 г. 04:27 + в цитатник
Установка сервера


Ставим (apt-get install) ejabberd.
Находим конфиг /etc/ejabberd/ejabberd.cfg



указываем там (тут приведён пример):



{acl, admin, {user, "combr" }}.
этот пользователь будет записан в администраторы сервера.



{host, "vesna.ru"}.
на этом хосте будет работать jabber-сервер. Ejabberd с версии 0.9 поддерживает виртуальный хостинг, так что хостов может быть много. если нужно поддерживать несколько хостов, используйте опцию hosts.



{language, "ru"}.
язык, на котором будут выдаваться сообщения сервера.



Должны быть открыты порты
[{5222, ejabberd_c2s, [{access, c2s},
..... это соединение клиент-сервер, достаточно для организации нешифрованных соединений клиентов и отдельно стоящего сервера.
{5269, ejabberd_s2s_in,

.... соединение сервер-сервер, для общения с клиентами других серверов.
{5280, ejabberd_http,
.... веб-администрирование этого сервера.



попробуйте запустить сервер service ejabberd start, посмотрите в лог /var/log/ejabberd/sasl.log
если там последняя запись – это
=CRASH REPORT====
ищите причину (чуть ниже может быть подсказка)
Если там последнее – это
=PROGRESS REPORT====



То вы успешно его запустили.

Установка пароля администратора


Теперь надо задать пароль администратора:



Usage: ejabberdctl node command
command:
register user server password register a user
т.е.
ejabberdctl register combr vesna.ru combr



через пробел команда пользователь хост пароль



теперь можете зайти браузером по адресу host:5280/admin, ввести полный jid администратора (например, combr@vesna.ru) и пароль, и администрировать себе ;)

Проблемы
далее нередактированное письмо от
Вадим Илларионов <master@usib.irkps.ru>



Я или кто-нибудь вернитесь к его редактированию позже ;)

============================
Сам ежабер поднялся без хлопот, хватило вдумчивого раскуривания доков.
Суть проблемы (точней, три сути) состояла в следующем.



1. Не удавалось приконнектиться к веб-морде администрирования.
Оно, вроде, и не очень надо (всё можно сделать из старой доброй командной строки), однако ж...



Решение
..............
Далее довольно пространно, зато на эту ремарку после только и буду, что ссылаться (если не забуду в процессе).
В моей ситуации, когда машинка-маршрутизатор во внутренней сети зовётся router, а во внешней – хм... никак не зовётся, и привязать сервис надо к конкретному имени... В общем, геморроя хватило.
Прежде на рутере имелся ещё и реальный айпишник, к которому было привязано реальное имя – скажем, usib.irkps.ru (тем более, что так оно и обстояло).
Не так давно я для вящей безопасности да ради облегчения и без того непосильного админского труда ;) сныкался за аппаратным WAN-маршрутизатором.
Благо, последний умеет прокидывать обращения извне на заданный адрес внутри и даже более того: при обращении изнутри на внешний адрес, возвращать обратившегося «куда надо» (блин, мозги вывихнешь).
Так вот, почти всё дальнейшее повествование будет связано с именем usib.irkps.ru, если обратное не оговорено особо.
Важно! В конфиге ejabber вместо директивы 'host' пользоваться директивой 'hosts', где в качестве параметров указать оба имени: и внутреннее, и внешнее; например:
{hosts, ["router", "usib.irkps.ru"]}
Почему именно так, оставлю до более светлых времён и умов.
После первого запуска сервиса регистрируем в нём себя, любимого (кому ж ещё доверить роль админа!), причём с указанием домена. В моём случае:
ejabberdctl register owner@usib.irkps.ru usib.irkps.ru
Теперь в конфиг сервиса добавим (раскомментарим и поправим имеющуюся) строчку:
{acl, admin, {user, "owner", "usib.irkps.ru"}}
и перезапустим его.
Всё, можно заходить на http://usib.irkps.ru:5280/admin с логином owner@usib.irkps.ru и паролем . (Гы. А вы подберите. =))



2. При регистрации через JIT вываливалась «Ошибка отправки регистрационных данных. Причина: XDB troubles»



Решение
..............
Дело в следующем. Как я уже писал, jabber-jit не умеет жить без xdb_file.so, который принадлежит jabber-1.4. Но жабер-то остановлен! И в противовес ему рулит парадом Е-жабер. Значит, надо подсунуть эту библиотечку jit'y, чтоб выкручивался сам. (Майнтейнеры, ау!) Более того, в доке к е-жаберу есть рецепт, как это сделать. Просто переточим его под Альт, и добавим в /etc/jabber/jabber-jit.xml подправленную «подкоренную» секцию из примера («корневее» только ):





/usr/lib/jabber/xdb_file/xdb_file.so



/var/lib/jabber


# Лирическое отступление.
Почему подправлена секция , можно увидеть тривиальным пролистыванием файловой системы. А вот о секции – в сути №...
# Кранты лирическому отступлению.



...3. Попытка импорта экаунтов из jabber-1.4 (хоть поюзерно, хоть каталогом) обламывалась хоть и многословно, но всегда со словечком “eacces” (да-да, не опечатка).



Решение
..............
Всё просто. ejabberdctl import-something запускается от юзера ejabberd, тогда как права на /var/lib/jabber//* принадлежат юзеру.группе jabber.jabber с маской 700 на каталоги (начиная с /var/lib/jabber) и 600 на файлы. То есть, довольно НА МОМЕНТ ИМПОРТА отдать права ПРОЧИМ на чтение-исполнение, и – вуаля! По запросу:
ejabberdctl import-file /var/lib/jabber//.xml
или вообще:
ejabberdctl import-dir /var/lib/jabber/
из объектива вылетает кролик!
Важно не забыть ПОТОМ вернуть допуски к файлам-каталогам в прежнее состояние, потому что...
... Вот и добрались до спула. Как я уже подмечал, JIT живёт без жабера, но как юзал спул жабера под жабером, так и будет юзать спул _жабера_ под Е-жабером (майнтейнеры, фиг ли). И если локальные клиенты имели регистрацию в аське, самым безболезненным вариантом станет не новая их регистрация в пресловутом, но достойном сервисе, а прозрачный своею незаметностию для означенных юзверей переход на новый, хоть и чуть более прогрессивный... Ой, наплёл-наплёл!
Простите пиво, а?
Надеюсь, теперь понятно, почему важные на мой затуманенный взгляд моменты касательно жабер-спула были выделены КАПСЛОКОМ.



Если вы меня поняли, вашим юзерам не придётся перерегистрироваться в аське.
Если нет – придётся не только ЭТО, но и после новой регистрации, для того, чтоб респонденты выглядели зеленовато при коннекте, не останется ничего иного, как по новой просить у каждого респондента авторизации (эту проблему я не описывал в запросе, однако ж сам в неё упёрся – после решения первых трёх).



Постскриптум
........................
Ремарка (вспомнил, ура!) на пункт 1.
Если ваши юзера помимо жабер-сервиса, которого вполне хватает для внутреннего сообщения, юзают ещё и внешнюю аську (тогда почему бы не позволить им пользовать собственные жабер-экаунты наружу?), не отстраивайте icq-транспорт на имена icq.localhost и sms.localhost.
Почему? Каким-то образом jabber-1.4 с этим вариантом живёт себе, и в ус не дует, а Е-жабер отчего-то не уживается. Е-жаберу какого-то чёрта вынь да положь транспорты с расширением в виде FQDN.



Впрочем, не настаиваю на собственной правоте. Если кому удастся их сдружить таким макаром, буду рад всяческим комментариям.

Общий список контактов
Теперь добавим каждому пользователю список контактов всех (или не всех) сотрудников офиса, а так же, для удобства пользования, сформируем группы по отделам или филиалам.... Это уже на свой вкус и цвет ...
И так:
1) Для владеющих буржуйским языком. Посетите http://www.process-one.net/en/projects/ejabberd/docs/guide_en.html#htoc52
и там почитайте про mod_shared_roster
2) Для таких, как я ...
Добавляем в конец файла ejabberd.cfg строку
{mod_shared_roster, [{iqdisc, no_queue}]},
например между строк
{mod_last, []},
{mod_version, []}
Только внимательно, так как скобки и запятые имеют принципиальное значение.
Перезапускаем сервис... Теперь заходим на http://сервер:5280/admin или как зовут наш сервер) и видим новый пункт меню «Общие контакты»
Там добавляем новую группу, в эту группу добавляем полные JUD (обязательно полные!) и пишем, какие группы могут видеть эту группу ...
По идее, группа видит сама себя, и при включении всего списка в одну группу каждый пользователь будет сразу получать полный ростер ...
А что нам, сисадминам, еще нужно? Правильно – побольше свободного времени...
Не бегать же по всему офису и добавлять в список контактов каждому каждого :)



P.S. Включение пользователя в несколько групп возможно. При этом получается удобно и красиво ...

apache

Суббота, 12 Мая 2007 г. 04:25 + в цитатник
One of the biggest issues involved with becoming a web publisher is the question of hosting. With an internet clogged with false hosting review sites, hosting companies trying to rip you off, and hosting companies run by 14 year olds, the majority of web publishers are at the mercy of random chance when it comes to finding a quality host. To solve this huge problem and to grant freedom to all, we have come up with 75 extremely specific steps that will get you up and running with a *nix box (running FreeBSD), along with the most recent versions of Apache, Perl, PHP, and MySQL.

Minimum Requirements:

To use this guide, you are going to need the following:

1 burnable CD-R
A computer with at least a 4GB hard drive
A working ethernet card
A network that uses DHCP.
Overview:

Part I of this guide will guide you through the installation of the operating system

Part II will explain the installation of MySQL 5.0, Apache 2.0, and PHP 5.1.2.



Part I

1. Download the FreeBSD 6.0 Disc 1 from the internet (http://www.freebsd.org/where.html). If you are going to be running on what used to be a Windows machine, you probably have i386 architecture, so select that one. If you have a 64 bit processor (AMD makes several of these now, including the Opteron processor), select a 64 bit architecture.


2. Burn the FreeBSD “6.0-Release-i386-disc1.iso” to a disc.

3. Insert the Disk into the CD drive of the computer you want to turn into a server.

4. Start the machine.

A menu titled “sysinstall Main Menu”, this is the menu that will give you all of the installation options.

5. Use the arrows to select “Standard” and hit enter.

6. Hit OK to the message that pops up.

7. Hit Shift+A, and then Shift+Q.

8. Choose the “BootMgr” option.

Either the "bootmgr" or "standard boot manager" will work, but for simplicity we will go with the default option.

9. Hit OK to the message that pops up.

10 .Hit Shift+A and then Shift+Q

This will select the standard and most likely best setup of your hard drive.

11. Select option 8, “User”.

12. Hit “Yes” when you are prompted whether or not you want to install the FreeBSD ports collection.

The FreeBSD ports colection is a collection of thousands of open-source software programs that are extremely easy to install. We want this so that it is easy for us to install MySQL, Apache, and PHP.

13. Scroll back up to “Exit” now that we have selected a configuration set.

"Configuration set" is just the name for the settings and features of the operating system that we want.


14. Select option 1, “CD/DVD”.

You could also choose FTP at this step, but for reasons of speed, I recommend you just use the disk that we already have in the drive, since we already burned it. You may want to choose FTP if you burned the disk more than a couple months ago, and you want the absolute latest features of the operating system.


15. Select “Yes” if you are absolutely sure you are willing to sacrifice this machine to be a web server, and that you will never need any of the current contents of the hard drives again.

Hitting "Yes" is going to erase and reformat the entire hard-drive, so make sure that you actually want to do this before hitting it.

Approximately 15 minute wait.

FreeBSD has now been installed!

16. Hit OK to the installation message.

17. Yes, you would like to configure Ethernet or SLIP/PPP.

18. Select your Ethernet card (Mine is “3COM 3c90x / 3c90xB PCI Ethernet card”)

19. “No” do not try IPv6 configuration.

20. “Yes” try DHCP configuration.

This step is going to assume that your network automatically assigns DHCP addresses.

21. Enter one of the main domain names that will be hosted from this server (preferably the main one) in the “Host” box.

By one of the main domain names, I mean that if you are going to be hosting johndoespersonalwebsite.com, enter that domain name.

22. Note the IP that your machine has been assigned (Will probably look like 192.168.*.*, where the stars could be any number between 1 and 255). Tab to the end and hit OK.

23. “No” we do not want this machine to function as a network gateway.

24. “No” we don’t want to configure inetd and the network services that it provides.

25. “Yes” we want to enable SSH login.

SSH login is the standard way that people can access a *nix box remotely. If you want, you will be able to use any machine in the world to access and manage this server by using SSH.

26. “No” anonymous FTP access.

27. “No” not an NFS server.

28. “No” not an NFS client.

29. “No” don’t customize console settings.

30. “Yes” set the time zone.

31. Most machines are set to local time, and not UTC, so hit “No” unless you know that your machine is set up otherwise.

32. Select your region (America – North and South for me)

33. Select your country (United States for me, number 45)

34. Select your time zone (11, Central for me)

35. Select “Yes” the time zone looks reasonable.

36. “Yes” we want to enable Linux binary compatibility.

Approximately 3 minute wait.

37. “No” we don’t need to bother with a mouse.

38. “No” don’t browse the collection of packages.

39. “Yes” add an initial user account to the system.

40. Select option 2; add a new user to the system.

41. Enter the username that you would like to normally use and enter it in the “Login ID” box. Also enter a password for this user.

This step ensures that you have a user in the system other than the all-powerful "root". It is a good idea to have at least one other use in the system that you use on a normal basis, because if you always work as root, there is chance that you could accidently modify or delete some system files.

42. For the “Group” field, enter “wheel”, if you don’t do this, then you won’t be able to perform remote admin tasks.

43. Hit OK.

44. Go back up and select “Exit”.

45. Hit “OK” to the message that pops up.

We are about to set the “root” password, which is the most important password on a *nix box, so make sure that you come up with a good password that you are not going to forget or lose. You need to balance the difficulty of the password because if you forget it, you may have to reinstall the entire machine, but if the password is too easy, then malicious users or hackers will be likely to gain control of your machine.

46. Enter the root password twice.

47. “No”, you don’t want to return to the configuration menu.

48. Select “Exit Install”.

49. Select “Yes”, and while the system is rebooting, remove the FreeBSD disk from the drive.

50. As the machine boots up it will ask you for an entropy source, just hit a few keys at random and hit the enter key.



You have now installed and configured the main FreeBSD operating system, all future configuration and installs can be done remotely without ever touching the machine again. And, barring any unforeseen hardware or software problems, you should never need the monitor or keyboard of this machine ever again.



Part II

Use a program called Putty to connect to the machine via the IP that we were assigned during the DHCP step, or continue using the local keyboard and monitor connected to the machine.

1. Log in using the username and password that you came up with (webmaster, myJa3e9@npasS)

2. Log in as the super user by entering “su”, and then entering the “root” password when prompted.

Logging in as the super user gives you access to install and configure programs and change operating system settings.

3- 11. Enter the following commands, waiting until each completes before running the next one:

cd /usr/ports/databases/mysql50-servermake install cleanmysql_install_dbchown -R mysql /var/db/mysql/chgrp -R mysql /var/db/mysql//usr/local/bin/mysqld_safe -user=mysql &cd /usr/ports/www/apache20make install clean12. Hit OK

13-14: Enter the following commands:

cd /usr/ports/lang/php5make install clean15. Select "use Apache 2.x instead"

16-17. Enter the following commands:

cd /usr/ports/lang/php5-extensionsmake config18. Select any php extensions you want for your webserver and hit "OK".

This is part of the configuration for PHP. PHP has many possible features that come in modules, such as the ability to manage user sessions, interface with a database, etc. By selecting a module at this step, it will automatically be installed and configured for you.

19. make install clean20. Simply hit "OK" for any option configurations that pop up.

21. Type "cat >> /usr/local/etc/apache2/httpd.conf". On the next line type "AddType application/x-httpd-php .php" and hit CTRL+D.

22. apachectl start23. To be able to upload the files for your website, you will need to download a program like WinSCP.

24. Upload all of the files to /usr/local/www/

25. (Optional step) Purchase a domain name and point the DNS to your IP.

Connect to the server by the domain name that you have purchased, or by the IP that you wrote down in an earlier step, and everything should work. Congratulations, you have installed a FreeBSD server, complete with Apache, PHP, and MySQL!



Dislaimer: I understand that this article does not include router setup, domain name pointing, bandwidth, uptime, or TOS issues. This was intentionally an article that just shows you how to set up FreeBSD, Apache, PHP, and MySQL. This article does not cover security concerns or teach you how to manage the server after it has been set up. Setting up your own box by following this guide is a decent way to create an intranet webserver, get into *nix for the first time if have previously always used external hosting, and from these steps you can feel free to deviate in order to explore and learn. If you are looking for more information, I recommend you look up the individual install processes, or perhaps try setting up these webservices with different operating systems to learn for yourself what is going to make sense for you or your business.




Written by Stephen Fluin.

Угарная тема &quot;общение с бывшими&quot;

Пятница, 20 Апреля 2007 г. 02:18 + в цитатник
http://www.liveinternet.ru/polls.php?cmd=showpoll&pollid=493944 - это опрос отвечать тут ... или в коментах , но лудше по ссылке http://www.liveinternet.ru/polls.php?cmd=showpoll&pollid=493944
__________
И так начнём с предесловия , дальнейшая тема будет разворачиваться из моего сознания , и все связки и имена изменины по причинам защиты личносных интересов.
Верно только чувство и рассуждение на предмет. И так думаю томить не будем.
_Данный обект был когда то бывшей "девушкой" и так история переписки:
и так вывод:
Имея несколько пониманий мира разложим данные позиции на простой язык
за символами "/", "\" и "|"
______________________________
_____начало_с_пояснениями_____
______________________________

(09:18:06 16/04/2007) /
привет, бобер! \ - был зделан запрос на мою реакцию
__
sypper-pit (09:19:56 16/04/2007)
? \ - вопрос стоит для выведения противника из себя
привет / - стандартная системная проблема без неё дольнейший ввод данных
вводится кк бессысленный
__
(09:20:07 16/04/2007)
как жизнь? / - это типа интересно , на самом деле это попытка расположить
__
sypper-pit (09:21:46 16/04/2007)
норма \ - метод маскирования запроса
__
(09:22:00 16/04/2007)
все как всегда? / - типа непоняла в чём дело и запускает свою линию
а я с дипломом имеюсь. \ - сбрасывает информационный поток на предмет
пробивания через чувства
__
sypper-pit (09:23:23 16/04/2007)
молодец \ - метод маскирования запроса
__
(09:24:26 16/04/2007)
ага. в тяпницу предзащита, а еще пахать и пахать. =) / - попытка разжалобить
типа (пожелей меня)
__
sypper-pit (09:25:19 16/04/2007)
ну так чтож на меня время и удачу тратим \ - отброс всех остальных запросов и
может просто я кое чего не пойму / - попыток
__
(09:25:43 16/04/2007)
просто так. не рад - не буду. / - прямая акака
__
sypper-pit (09:25:48 16/04/2007)
тогда извени, я ... рад :), просто я о тебе забочусь :) \ - ущел от удара
__
(09:27:24 16/04/2007)
уже good. в субботу угораздило в +3 и ветер вылезти с одногруппниками на речку на шашлыки. замерзла как цуцик! но ничего, сполей-слюней нет. =) у вас как погодка? / - сливают инфу о себе , и говорят о том что "хочеш приеду, погостить"
__
sypper-pit (09:28:18 16/04/2007)
тепло \ - сработала система зашиты и выдола ложное выполнение методом подмены
__ / виртуальной лицности

(09:28:41 16/04/2007)
лето хочу. окончательное. а тут фигня какая-то. /-"хочу свалить от сюда не
__ |подскажеш куда можно переехать"
sypper-pit (09:29:28 16/04/2007)
нужно подождать пару месяцев , правила игры нужно соблюдать \ - типа "извени
__ / - тут те ловить нецего, ажиотаж пропал"
(09:30:07 16/04/2007)
ох уж мне эти правила!... / - "а правила сломать можно? я могу и вернуться"
__ \ - прикольно!!!
sypper-pit (09:33:22 16/04/2007)
ты ни когда не хотела правельно играть "правЕльно" \ - ошибка сделанна
__ / - намеренно
(09:33:51 16/04/2007)
да, вот такой я забавный зверек. =) / - зато я весёлая и привлекательная
__
sypper-pit (09:34:48 16/04/2007)
ага , только я чувствую , что неособо забавно \ - атака
__
(09:35:28 16/04/2007)
а мне нравится. если б не диплом, сказала бы, что жизнь прекрасна. / - бодрится, и пытается сказать что я хорошая и вывисти из равновесия , хотя еслиб было всё так хороше то ко мне бы и не писали
__
sypper-pit (09:36:37 16/04/2007)
вот и ок \ - атака
__
(09:37:16 16/04/2007)
зверюге только вот недавно операцию делала и теперь постоянно какой-то гадостью колю, а так...=) / - давление через нивинных существ
__
sypper-pit (09:38:06 16/04/2007)
у меня тут своих хватает \ - отсутствие интереса равносильно удару
__
(09:38:29 16/04/2007)
чего своих? / - толи не врубилась , толи включила защиту (что более вероятно)

__
sypper-pit (09:38:36 16/04/2007)
зверюг \ - атака
__
(09:39:26 16/04/2007)
эх...а у меня единственная и неповторимая. правда, на днях познакомилась с крысами из мусоропровода. / - давим на то что "мне плохо сделай, хоть что то HELP"
__
sypper-pit (09:39:40 16/04/2007)
*JOKINGLY* \ - злобный смех выброс из равновесия
__
(09:40:05 16/04/2007)
белые и не такие уж страшные. а мать пугала!... / - продолжает тему , включив обратку
__
sypper-pit (09:41:03 16/04/2007)
я знаю \ - удар
__
(09:41:33 16/04/2007)
все ты знаешь!...=) / - потытка выкинуть "белый флаг" и сказать "ты мой герой, я пойду за тобой" одно слово попытка притинуть через жалость
__
sypper-pit (09:41:40 16/04/2007)
многое \ - завершение атаки , добивание
__
(09:42:21 16/04/2007)
а я, как показывает практика, почти ничего. только тссс!, никому. я ведь исправляюсь! =))) / - понила что потеряла позиции, попытка вернуть позиции
__
sypper-pit (09:43:15 16/04/2007)
а толку и для чего \ - чётко даю понять что ловить по этому пути нечего и даже если ты начнёш учиться "я тебя не верну"
__
(09:43:41 16/04/2007)
для себя-любимой. нафиг кому-то читать лекции? / - небольшая попытка ударить , типа "я стану красивой и умной и буду ноги о тебя вытирать"
__
sypper-pit (09:44:41 16/04/2007)
даже не знаю кк сказать, нахрена тогда у меня всё это спрашивать если сама рости будеш \ - типа "а что тогда обратилась значит не всё так хорошо"
__
(09:47:08 16/04/2007)
по-моему, я задала вопросы только о жизни. / - пошла в открытую
__
sypper-pit (09:47:25 16/04/2007)
а я и ответил, я и раньше отвечал , просто кое кто не слушал , точнее слушал , только не услышал \ - типа повторных "курсов"(встреч) не будет
__
(09:48:10 16/04/2007)
вот и чудненько. / - поняла, и обидилась
__
sypper-pit (09:48:27 16/04/2007)
так что извени \ - "извени ажиотаж пропал"
__
(09:48:44 16/04/2007)
может, просто тогда надоело? не задумывался о таком варианте? / - всё что я передовал было принято и обработанно так кк и следовало (код правельно отработал), и получен ответ "тогда было много , сейчас нехвотает знаний помоги"
__
sypper-pit (09:49:14 16/04/2007)
я нашел другую цель \ - думаю если вы прочли верхнию строку то пояснять не нужно
__
(09:49:35 16/04/2007)
рада за тебя. / - обломал бедняжку
__
sypper-pit (09:50:49 16/04/2007)
есть задачи и цели , намного прогресивнее денег , ты этого не понимала , или скорее всего я плохо разяснил
__
(09:51:07 16/04/2007)
а кто говорил про деньги? / - типа "отдай знаний" уж поверьте мне снимать знания они умеют
__
(09:52:18 16/04/2007)
я не поэтому ушла. а просто потому что посмотрела на себя по-другому. просто потому что захотелось внутренней свободы. / - "ты меня грузил тогда, а сейчас мне нужны эти знания"
__
sypper-pit (09:52:20 16/04/2007)
это образно, да Я всё понимаю, мне даже забавно \ - мне действительно было забавно смотреть на то кк человек ради знаний пытается выкрутить ситуацию
__
(09:54:59 16/04/2007)
а мне не нужна была помощь. все, что мне было нужно, я поняла сама. поздновато, правда. зато могу бить себя пяткой в грудь. / - типа "да ну и пашел ты , я и сама всё пойму" , правда присутствует фрагмент типа "прости" а на примую сказать и переступить гордыню не может
__
sypper-pit (09:56:21 16/04/2007)
ну вот видеш какая молодец , только умён тот кто учится на чужих ерорах \ - "у меня есть то что тебе нужно, только и мне это тоже нужно"
__
(09:56:47 16/04/2007)
а много ли таких умников? вооот! а я отношусь к большинству. / - "ну тогда дай"
__
sypper-pit (09:58:03 16/04/2007)
ну видемо я не отношусь \ - я понял что нужно и что именно требуется
а я только отвлекаю / - (часть вырезал не значительный кусок информации) "ты не сможеш это применить"
__
(11:47:15 16/04/2007)
да, стоит только захотеть и хоть что-то сделать. \ - типа я всё сама только направление дай
нет, не отвлекаешь, сама отвлекаюсь. / - "проверка связи"
__
sypper-pit (11:47:36 16/04/2007)
зачем

-
(11:47:42 16/04/2007) \
просто так. \
__ |
sypper-pit (11:48:07 16/04/2007) |
зачем |
__ |
(11:48:40 16/04/2007) |
просто так, сказано же. |
__ |
sypper-pit (11:49:19 16/04/2007) |
понятно , только хоть понятно про что я ? |
__ |
(11:49:58 16/04/2007) |
поняла по-своему. все как всегда. |
__ |
sypper-pit (11:51:48 16/04/2007) |
поясни } всё сводится к тому что "нахрена ты мне пишеш"
__ |
sypper-pit (11:52:06 16/04/2007) |
я просто знаю ответ , хочу услышать от тя |
__ |
(11:52:46 16/04/2007) |
знаешь - и чудно. |
__ |
sypper-pit (12:01:47 16/04/2007) |
вот видиш кк ты умная и красивая женщина:)|
__
(12:02:03 16/04/2007)
ну вот...уже и женщиной обозвали!...=) / - поняла , что потеряла рейтинги
__
sypper-pit (12:03:06 16/04/2007)
ок не надо так не надо :) \ - тема "вернись" закончена с описанием: "мне не нужны траблы связанные с тобой"
__
sypper-pit (12:03:24 16/04/2007)
ты чем планируеш заниматься \ - создание другово пути "я могу помочь"
__
(12:03:27 16/04/2007)
но за умную и красивую спасибо, хотя понимаю, что стеб. / - "я всё понила, давай посмотрим то что ты имееш в виду"
__
(12:03:54 16/04/2007)
в планах...найти работу. как ни банально. / - "хоть устроиться помоги дальше посмотрим"
__
sypper-pit (12:04:04 16/04/2007)
кем
__
(12:04:35 16/04/2007)
каким-нибудь экономистом-финансистом. или вообще что-нибудь не по специальности найду. не хочу в циферках копаться. / - противоречивость самой себе , из ряда "а что вы умеете делать?" ответ "ВСЁ"
__
sypper-pit (12:05:03 16/04/2007)
я тебя к себе не возьму , а вот помошь могу оказать \ - тут думаю пояснения не нужны
__
(12:05:20 16/04/2007)
куда? кем? / - что нужно уметь
__
sypper-pit (12:06:08 16/04/2007)
в уу могу на любое место
__
(12:08:10 16/04/2007)
короче, только не в бухгалтерию, если по специальности. / - вот тут прикольно тк человек учился на финансы
__
sypper-pit (12:08:16 16/04/2007)
если ты многова не знала , это ничего не значит :) что я те не помогу , и что я ничего не знаю что происходит в уу сформулируй и на мыло \ - прошу резюме
__
(12:08:41 16/04/2007)
резюме? ок.
__
sypper-pit (12:10:11 16/04/2007)
какую кантору хочеш, направление \ - скажи кем хочеш быть
__
(12:10:26 16/04/2007)
где хорошо платят! =))) / - "хочу ничего не делать, а деньги получать"
__
(12:11:03 16/04/2007)
Паш, без разницы.
опыта работы по спец-ти ноль. диплом про денежное обращение и финансы государтсва.
______________________________
_______конец_переписки________
______________________________

вот и сами подумайте после всего этого у меня 2 пазиции
1) поступить кк удаФ и раздавить , так чтоб размазать растереть в пыль и развееть над городом
2) сделать себе душу
3) заморозить проект

прокачка

Вторник, 18 Июля 2006 г. 01:30 + в цитатник
в этом нано прокачаться

Вложение: 3532262_1111.rar


http://hh.ru/resume.do?id=1119787

Суббота, 08 Июля 2006 г. 22:53 + в цитатник

qweasddasfdsdfg dsfgsdfg dfgdfsg 1030917

Четверг, 06 Апреля 2006 г. 14:36 + в цитатник
Настроение сейчас - норма

Допустим:
xl0 - смотрит в модем
xl1 - в локалку 10.0.0.0/24
11.22.33.44 - реальный IP выданный провом
10.0.0.0/24 - локалка

Тогда:

Если нету -
mkdir /var/run/ppp
chown root:network /var/run/ppp
chmod 770 /var/run/ppp

/etc/rc.conf
------------
ifconfig_xl0="inet 192.168.255.254 netmask 255.255.255.255"
# абсолютно левый IP, лишь бы был
ifconfig_xl1="inet 10.0.0.1 netmask 255.255.255.0"
gateway_enable="YES"
ppp_enable="YES"
ppp_mode="ddial"
ppp_nat="NO" # без него обойдусь
ppp_profile="stbur"
ppp_user="root"
natd_enable="YES"
natd_program="/sbin/natd"
natd_flags="-l -u -m"
natd_interface="11.22.33.44"

/etc/ppp/ppp.conf
-----------------
default:
<тут долженбыть пробел или табуляция> set log Phase Chat IPCP CCP tun command
<тут долженбыть пробел или табуляция> set redial 5 0
<тут долженбыть пробел или табуляция> set reconnect 5 100
<тут долженбыть пробел или табуляция> set socket /var/run/ppp/pppoe.%d "" 0117

stbur:
<тут долженбыть пробел или табуляция> set device PPPoE:xl0
<тут долженбыть пробел или табуляция> set authname логин
<тут долженбыть пробел или табуляция> set authkey пароль
<тут долженбыть пробел или табуляция> set dial
<тут долженбыть пробел или табуляция> set login
<тут долженбыть пробел или табуляция> set ifaddr 11.22.33.44/32 0.0.0.0/0
<тут долженбыть пробел или табуляция> set cd 5
<тут долженбыть пробел или табуляция> set mtu 1492
<тут долженбыть пробел или табуляция> set mru 1492

/etc/ppp/ppp.linkup
-------------------
stbur:
<тут долженбыть пробел или табуляция> add! default HISADDR

/etc/syslog.conf
----------------
!ppp
*.* /var/log/ppp.log

В ядре полезно:
---------------
optionsHZ=1000
optionsIPFIREWALL
optionsIPFIREWALL_VERBOSE
optionsIPFIREWALL_FORWARD
optionsIPFIREWALL_FORWARD_EXTENDED
optionsIPDIVERT
optionsDUMMYNET
deviceppp
devicetun
devicegif
devicebpf

/etc/rc.firewall типа для начала
----------------
${fwcmd} add 510 divert natd all from 10.0.0.0/24 to any xmit tun0
${fwcmd} add 520 divert natd all from any to 11.22.33.44 recv tun0

Ну а потом как заработает, можно точить конфиги до упора. ?:о)
Курить маны не забываем....
И нужно быть особо внимательным принаписании ppp.conf тк если забыть поставить табулятор или пробел то команды типа (set device PPPoE:xl0) будут восприниматься кк переменная для соеденения set.
ОГРОМНОЕ спасибо за подсказку sTALK_specTrum

Без заголовка

Среда, 07 Декабря 2005 г. 07:14 + в цитатник
присоединяйся народ
pohuyu.jpg (300x500, 30Kb)

привет

Вторник, 15 Марта 2005 г. 06:31 + в цитатник
ghbdtn

1231

Четверг, 08 Июля 2004 г. 17:01 + в цитатник


123

Среда, 07 Июля 2004 г. 11:36 + в цитатник
12344e34

Вложение: 901977.exe


putty

Пятница, 02 Июля 2004 г. 05:39 + в цитатник
123

Вложение: 884319.exe


Вторник, 02 Марта 2004 г. 04:58 + в цитатник
qqqqqqqqq

диплом на продажу ...

Суббота, 14 Февраля 2004 г. 12:26 + в цитатник

Вложение: 439623.rar



Поиск сообщений в Kool_Pit
Страницы: [2] 1 Календарь