Ставим OrangeHRM в Mandriva по-быстрому…

На днях ставил на своем «сервере» OrangeHRM. Запустил «Центр управления Mandriva», поискал в списке «Установка и удаление программ», Есть такая программа в списке пакетов! Отлично! Ставим «птичку», жмем кнопку «Применить». Система отвечает, что «для удовлетворения зависимостей» нужно поставить еще парочку пакетов. Соглашаемся (а что, разве у нас есть альтернатива?). Ждем, пока пакеты загрузятся и установятся. Несколько минут на все про все! А вот «про всё» ли — ещё тот вопрос?…

Кстати, не любите GUI, предпочитаете консоль? Тогда, в консоли от имени root-а вводим команду «urpmi orangehrm«. В остальном — все то же: сообщение о необходимости установки недостающих пакетов, подтверждение, закачка, установка…

А вот теперь — ручками!

Вообще-то, «установка пакетов» (описанная выше) и «установка и настройка программы» — это, как говорят в Одессе, «две большие разницы». Посему, теперь приступаем к установке и настройке. У программы предусмотрен т.н. Web-installer. По идее процесс должен был быть достаточно простым — нужно открыть браузер, и в адресной строке ввести что-то наподобие:

http://my.site.adress/orangehrm

(Естественно, вместо «my.site.adress» Вам нужно ввести адрес своего сайта). Программа проверяет — выполнялась ли уже ранее настройка и установка или нет. Если нет (программа запускается в первый раз), то стартует Web-installer. Вот тут меня ждали первые «грабли». Точнее, не грабли, а ответ в окне браузера: «ErrorDocument 403 «Access denied per /etc/httpd/conf/webapps.d/orangehrm.conf«. Не пущают!!! Чтож, имя и месторасположение файла «виновника торжества» указано — /etc/httpd/conf/webapps.d/orangehrm.conf. Вот его-то и идем читать на предмет того, что же там такое нам мешает. Написано в указанном файле следующее:

Alias /orangehrm /var/www/orangehrm

<Directory /var/www/orangehrm>
    Allow from All
</Directory>

<Directory /var/www/orangehrm/installer>
    Order Deny,Allow
    Deny from All
    Allow from 127.0.0.1
    ErrorDocument 403 "Access denied per /etc/httpd/conf/webapps.d/orangehrm.conf"
</Directory>

Что это за файл вообще? Если присмотреться внимательней, то мы видим тот самый файл «.htacces«. «Стандартно» файлы «.htacces» управляют параметрами тех папок веб сервера Apache, в которых они расположены. Подробнее об этом можно почитать тут (по-английски) или же тут (по-русски). А причем здесь файл orangehrm.conf? В данном случае, файл orangehrm.conf (как и все другие файлы с расширением .conf, расположенные в папке /etc/httpd/conf/webapps.d/) автоматичнески включаются в основной файл конфигурации Apache его же директивой «Include conf/webapps.d/*.conf«. Будучи включенными в файл конфигурации, данные файлы действуют именно в режиме тех самых «.htacces«-файлов. Взглянувши на приведенное выше содержимое файла «/etc/httpd/conf/webapps.d/orangehrm.conf«, мы видим, что он ограничивает доступ в папку /var/www/orangehrm/installer (а это и есть папка Web-installer-а), а именно — разрешает его только лишь с адреса «127.0.0.1». В том смысле, что ТОЛЬКО с локальной консоли! То есть, если бы я запускал Web-installer на том компьютере, где непосредственно находится OrangeHRM, то проблем не возникло бы! Но у меня «несколько иной случай» — «сервер» мой лежит на холодильнике, мониторов/клавиатур/мышей не имеет, и прыгать к нему мне лень. Как следствие — запускал я установку с другого («соседнего» в сети) компьютера. Вот потому-то и наблюдал сообщение об отказе в доступе! Можно было бы, конечно, достать «сервер» с холодильника, подключить к нему всю периферию и повторить процесс с локальной консоли… Но, для меня ленивого проще оказалось изменить ограничения доступа — я вписал 192.169.1.0./24 (т.е. всю локальную подсеть) вместо 127.0.0.1, а потом перезапустил Apache командой /etc/init.d/httpd restart. Все! После этого процесс пошел…Итак, я повторно в браузере (на другом компьютере 🙂 ) ввел адрес:

http://my.site.adress/orangehrm

И в этот раз я таки увидел Web-installer:

orangehrm1
Рис. 1 Окно приветствия Web-installer-а

По быстрому читаем приветствие и жмем кнопочку «Next«. Наблюдаем следующее окно — лицензионное соглашение:

orangehrm2
Рис. 2 Лицензионное соглашение

Его полагается прочитать и принять (нажать кнопочку «I Accept» в самом низу (в моем скриншоте она не поместилась)). После этого переходим к следующему меню — настройке параметров базы данных:

orangehrm3
Рис. 3 Параметры подключения к базе данных.

В этом окне все вроде как просто и понятно. И если бы меня не потянуло «поумничать», то дальше вопросов у меня возникло бы намного меньше. Но, как говорится, «не было печали — черти накачали»! Решил я «добровольно помочь» Web-installer-у. Запустил консоль, вошел в MySQL и там «ручками» создал для OrangeHRM всё: базу, пользователя, прописал пользователю и пароль, и привилегии… После этого вернулся к меню, показанному на рис. 3 и прописал все параметры в соответствующие поля. Вписал имя созданной мною базы в поле «Database Name«. Затем поставил птичку в поле «Use the same Database User for OrangeHRM«. Как следствие — два нижних поля («OrangeHRM Database Username» и «OrangeHRM Database User Password«) стали недоступны. Пользователя, созданого мной для базы я вписал вверху в поле «Priviledged Database Username«, и в соседнем поле («Priviledged Database User Password«) ввел его пароль. А то ведь там был root прописан. Не хорошо же ведь пользоваться учетной записью администратора! Короче говоря, постарался как мог! После этого нажал кнопку «Next«…

Самое первое, что я после этого получил … было сообщение об ошибке «База данных уже существует»! То есть Web-installer попытался создать базу и не смог — она там уже была (я ж сам ее «ручками» создал)! Ясно, пошел в консоль, в MySQL и удалил базу. После этого вернулся в меню конфигурирования базы данных и, ничего не меняя, снова нажал кнопку «Next«.

И тут же «заполучил» следующее сообщение об ошибке — «MySql InnoDB support not available«. В том смысле, что отключена в моем MySQL-сервере поддержка баз InnoDB. В инструкции по установке OrangeHRM (ведь Вы же тоже заметили ссылку «[Help ?]» в правом верхнем углу Web-installer-а? 😉 ) по этому поводу написано следующее:

  • Войти в консоль от имени root-а.
  • Открыть в (любом «любимом») редакторе файл /etc/my.cnf.
  • Найти в нем строку skip-innodb.
  • Закомментировать данную строку (вставить в начале строки символ комментария — «#«).
  • Сохранить файл и выйти из редактора.
  • Перезапустить сервер MySQL коммандой /etc/init.d/mysqld restart.

Все коротко и ясно! Именно так я и собирался поступить. Остановил меня лишь тот факт, что в моем файле /etc/my.cnf я не нашел строки «skip-innodb«! Зато я нашел там следующие строки:

# Uncomment the following if you are using InnoDB tables
#innodb_data_home_dir = /var/lib/mysql/
#innodb_data_file_path = ibdata1:10M:autoextend
#innodb_log_group_home_dir = /var/lib/mysql/
#innodb_log_arch_dir = /var/lib/mysql/
# You can set .._buffer_pool_size up to 50 - 80 %
# of RAM but beware of setting memory usage too high
#innodb_buffer_pool_size = 16M
#innodb_additional_mem_pool_size = 2M
# Set .._log_file_size to 25 % of buffer pool size
#innodb_log_file_size = 5M
#innodb_log_buffer_size = 8M
#innodb_flush_log_at_trx_commit = 1
#innodb_lock_wait_timeout = 50

Как следует из приведенных в файле настроек комментариев, чтобы активировать поддержку InnoDB в моем MySQL-сервере, нужно просто «раскомментировать» соответствующие строки, Для наглядности в приведенном выше фрагменте файла настроек «лишние» символы «#» я выделил красным — вот их-то и нужно удалить. Чтож, нужно, так нужно:

  • Раскомментировал.
  • Перезапустил сервер
  • Все равно все то же сообщение об ошибке — «MySql InnoDB support not available«.

В чем же дело? По-быстрому «погуглил». Как-то вскользь наступил на фразу, что мол с MySQL в плане InnoDB «каши не сваришь», нужно ставить MySQL-MAX. Снова запустил поиск в списке «Установка и удаление программ» в «Центре управления Mandriva». Есть такая программа в списке пакетов! Поставил «птичку», нажал «Применить». Через пару минут у мея уже стоял MySQL-MAX. Опять вернулся в меню конфигурирования базы данных и, ничего не меняя, снова нажал кнопку «Next«. Все равно сообщение об ошибке — «MySql InnoDB support not available«! Странно. Неужели таки не работает InnoDB? Надо бы как-то проверить! «Погуглил» чуток и нашел в сети такой совет — войти в консоль, затем от имени root-а — в MySQL и там уже запустить команду «show engines;«. В ответ я должен получить таблицу наподобие вот такой:

+------------+----------+----------------------------------------------------------------+
| Engine     | Support  | Comment                                                        |
+------------+----------+----------------------------------------------------------------+
| MyISAM     | DEFAULT  | Default engine as of MySQL 3.23 with great performance         |
| MEMORY     | YES      | Hash based, stored in memory, useful for temporary tables      |
| InnoDB     | YES      | Supports transactions, row-level locking, and foreign keys     |
| BerkeleyDB | YES      | Supports transactions and page-level locking                   |
| BLACKHOLE  | YES      | /dev/null storage engine (anything you write to it disappears) |
| EXAMPLE    | YES      | Example storage engine                                         |
| ARCHIVE    | YES      | Archive storage engine                                         |
| CSV        | YES      | CSV storage engine                                             |
| SPHINX     | YES      | Sphinx storage engine 0.9.8                                    |
| ndbcluster | DISABLED | Clustered, fault-tolerant, memory-based tables                 |
| FEDERATED  | YES      | Federated MySQL storage engine                                 |
| MRG_MYISAM | YES      | Collection of identical MyISAM tables                          |
| ISAM       | NO       | Obsolete storage engine                                        |
+------------+----------+----------------------------------------------------------------+
13 rows in set (0.00 sec)

…в которой в числе прочих должен увидеть «Yes» напротив InnoDB. Вошел, запустил, увидел — написано «Yes«! То есть, InnoDB все-таки работает (значит, поддержку InnoDB я все-таки активировал, когда раскомментировал те строки в файле my.cnf), а вот Web-installer все-равно его не видит! Парадокс, однако! Нюанс лишь в том, что как обычно «творцом» парадоксов является человек, в данном случае — я сам. В чем немногим позже я и убедился. Но…

«Погуглил» уже чуть больше чем просто «немножко». На форуме OrangeHRM набрел на фразу о том, что Web-installer наличие поддержки InnoDB проверяет попыткой создания таблицы с использованием данного «движка». И одной из причин неудачи (читай — «сообщения об отсутствии поддержки InnoDB») может быть отсутствие необходимых прав у пользователя от имени которого выполняется данная проверка. А именно — у пользователя, вписанного в графе «Priviledged Database Username«. А я ж там вписал того пользователя, которого создал для работы с OrangeHRM. Вот и нашлась причина-то — «избыточно мудрый» администратор попался — сам себе забот наворотил!

Чтож, снова вернулся в меню конфигурирования базы данных (рис. 3) и наконец-то включил мозг. Итог был таков: Web-installer самостоятельно создает базу данных для OrangeHRM. Для этого он использует привелегированную учетную запись, имя и пароль которой мы должны вписать в графы (соответственно) «Priviledged Database Username» и «Priviledged Database User Password«. Эта же самая учетная запись впоследстви используется для проверки наличия поддержки InnoDB. И, кроме того, эта же учетная запись («Priviledged Database Username«) используется при создании пользователя OrangeHRM и назначения ему необходимых прав. Исходя из всего вышесказанного это должна быть учетная запись именно администратора базы данных MySQL (по умолчанию — root)! А вот, чтобы не быть идиотом и не заставлять конкретную программу работать с конкретной базой от имени root-а, птичку в графе «Use the same Database User for OrangeHRM» ни в коем случае ставить нельзя! Для работы с вновь создаваемой базой OrangeHRM, имя которой мы вписываем в графу «Database Name«, Web-installer создаст нового пользователя, имя которого мы указываем в графе «OrangeHRM Database Username» и назначит ему пароль, который мы вписываем в графу «OrangeHRM Database User Password«. Исходя из этого трудночитаемого абзаца, ПРАВИЛЬНО заполняем поля в форме настройки подключения к базе данных (рис. 3) следующим образом:

Database Host Name localhost Если база данных установлена на том же компьютере, что и OrangeHRM, ничего менять не нужно. В противном случае — указываем имя или адрес сервера, на котором установлен сервер баз данных MySQL
Database Host (Port) 3306 Номер порта, на котором сервер баз данных MySQL ожидает подключений. Если Вы ничего не меняли в настройках то и тут ничего менять не нужно.
Database Name hr_mysql Имя создаваемой для OrangeHRM базы данных. При желании можете изменить на любое другое, которое придумаете сами. Единственное — в MySQL не должно быть уже существующей базы данных с таким именем!
Priviledged Database Username root С этим разобрались выше — здесь только root и никакое другое имя.
Priviledged Database User Password *********** Пароль пользователя root в MySQL.Он у сервера MySQL свой собственный и может отличаться от пароля root-а в самой ОС. По умолчанию он в сервере MySQL не установлен (пустой). Если Вы его устанавливали (или меняли) — введите правильное значение.
Use the same Database User for OrangeHRM __ Не ставить «птичку» ни в коем случае!!!
OrangeHRM Database Username orange_user Имя пользователя, которое OrangeHRM будет использовать для связи с базой данных MySQL. Вводите любое имя, которое придумаете сами.
OrangeHRM Database User Password *********** Пароль пользователя, который OrangeHRM будет использовать для связи с базой данных MySQL. Вводите любой пароль, который придумаете сами.

Кстати, еще — перед этим я снова «сходил» в консоль MySQL и теперь уже поудалял все то, что «ручками» насоздавал ранее. Ну вот, форму настройки связи с базой данных мы с горем пополам заполнили. Жмем «Next«. Если поддержка InnoDB в MySQL уже была активирована (как описано выше — изменением файла /etc/my.cnf), то проблем с базой данных при установке быть уже не должно. Была парочка мелких нюансов — пришлось, во-первых, сменить владельца файлов в папке /var/www/orangehrm на пользователя, от имени которого запущен сервер Apache (в моем случае — это «apache«), и во вторых, разрешить этому пользователю запись файлов в папке /var/www/orangehrm/lib/confs. После этого я получил вот такое сообщение о положительных результатах всех проверок:

orangehrm4
Рис. 4 Все проверки успешно завершены!

Чтож, раз все «ОК», идем дальше — жмем кнопку «Next«. Если же на этом этапе Вы получали сообщения об ошибках, то после их устранения достаточно нажать кнопку «Re-check» для повторной проверки.

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

orangehrm5
Рис. 5 Ввод имени и пароля администратора программы OrangeHRM

По умолчанию предлагается использовать имя «Admin» и ввести (дважды) свой собственный пароль для него. Но это не догма — Вы можете ввести свои собственные не только пароль, но и имя этого пользователя — администратора OrangeHRM. Вводим, не ошибаемся с паролем (в обоих строках он должен быть одинаковым 😉 ), и жмем «Next«. Попадаем в меню подтверждения:

orangehrm6
Рис. 6 Сводка параметров установки

В нем просто перечислены все те параметры (за исключением паролей), что мы навводили ранее. На всякий случай внимательно проверяем, если замечаем ошибки — возвращаемся и исправляем. Если же все правильно, то нажимаем кнопку «Install«. Немножко ждем (установка ведь идет!). После того, как установка завершена, наблюдаем вот такое сообщение:

orangehrm7
Рис. 7 Установка успешно завершена

По сути — установка завершена. С чем я Вас и поздравляю! Следующий после нажатия кнопки «Next» пункт — это предложение зарегистрировать свою установку на сайте разработчика. Я даже скриншот не стал делать. Желаете зарегистрироваться — указываете в ссответствующих полях свои данные — и вперед — кнопка «Register» ждет Вас. Не желаете — просто жмете кнопку «No thanks!» и пристуаете к работе с OrangeHRM.

Успехов!…

«Живая» флешка с Linux-ом

Сразу же опускаем вопрос — «А зачем это нужно?». Здесь я лишь опишу пару способов, как это сделать. Причем, постараюсь описать те варианты, для которых достаточно мышью в кнопку «ОК» попадать…

Вариант первый — тот же самый Live-CD, но на флешке.

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

Помочь в этом могут, например, следующие программы:

  1. Unetbootin (сайт)
  2. FUSBi (сайт)

Программы эти — практически «близнецы-братья» (что и не удивительно с поправкой на тот факт, что одна — усовершенствованная модификация второй).

Что нужно сделать (рассмотрим вариант использования их из-под Windows).

  1. Естественно, скачать программу и (если она в архиве) распаковать в (какую-нибудь) папку на жестком диске.
  2. Скачать ISO-образ LIVE CD диска выбранного дистрибутива. При этом очень стОит почитать на сайтах указанных программ, с какими дистрибутивами они работают без проблем. Лично я проверял их на «совместимость» с Ubuntu — все было нормально. (Образ диска сохранить на жесткий диск компьютера, единственное, не забыть куда).
  3. Подготовить «объект для установки». В смысле — флешку. С учетом того, что дистрибутив (Ubuntu) умещается на компакт диск, то понадобится флешка размером не менее 700 Мб (в принцие, 1 Гб — будет нормально). Если выбран дистрибутив бОльшего размера, то флешку тоже нужно взять поболее (чтобы ее размер превышал размер образа диска дистрибутива). Теперь про Ваши  личные файлы, уже имеющиеся на флешке. В процессе установки форматирование флешки не происходит, но в нее должен с небольшим запасом помещаться выбранный дистрибутив. То есть, если у Вас флешка 1 Гб, а дистрибутив — 700 Мб, то перед началом установки «посторонних» файлов на флешке  должно быть не более чем на 300 Мб. Но, по большому счету, перед началом установки файлы с флешки лучше убрать, а саму ее отформатировать. Если файлы так уж необходимы, то их можно вернуть на флешку уже после установки дистрибутива.
  4. Запустить программу.
  5. Выбрать тип источника дистрибутива «Disk Image ISO», нажать кнопку «» и найти, куда сохранили ISO-образ установочного диска дистрибутива Linux (указатель 1 а рис. 1 ниже).
  6. Указать, что писать будем на «USB Drive» и выбрать букву диска, соответствующую флешке (указатель 2 на рис. 1 ниже).
  7. Попасть мышью в любимую кнопку «ОК» (указатель 3 на рис. 1 ниже).
screenshot
Рис. 1 Интерфейс программы

Я специально не указываю к какой именно программе относится данная инструкция, т.к. (повторяюсь) обе указанные выше программы являются «братьями-близнецами», в том числе и по алгоритму их использования.

По окончании работы программы Вы получите флешку, с которой будет загружаться выбранный Вами дистрибутив (естественно, если bios Вашего компьютера поддерживает загрузку с USB драйвов). Все будет происходить точно так же, как будто Вы загружаетесь с компакт-диска. Все хорошо, задача выполнена. Правда, через время возникает ощущение, что чего-то не хватает. И это «что-то» называется :

Persistent Mode

Что же это такое? Представим, что Вы в своей работе пользуетесь карандашом. В первый раз, начиная работать, Вы достаете из коробки новый карандаш, точите его и работаете. По окончании работы Вы кладете карандаш назад в коробку. А на следующий день, достав тот же самый карандаш из коробки, Вы вновь вынуждены его точить. Persistent Mode — это возможность сохранять все изменения, которые Вы произвели во время работы с флешкой на самой флешке. Как следствие, при следующей загрузке не будет нужды снова настраивать те же самые параметры (например, язык, пароли доступа к Wi-Fi или почте, и т. д. и т. п.)…

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

Оригинал этой инструкции на английском языке («Ubuntu 8.10 USB Flash Drive Installation tutorial«) опубликован по адресу: http://www.pendrivelinux.com/live-ubuntu-810-usb-persistent-install-windows/. Ниже приведен мой «вольный» перевод этой инструкции на русский язык. «Вводная» — «по умолчанию» данная инструкция предполагает, что Вы используете чистую (отформатированную в FAT) флешку размером 2 Гб. и инструкция выполняется на компьютере под управлением ОС Windows.

  1. Скачайте и запустите файл U810p.exe. Архив распакуется на Ваш компьютер. Автоматически будет создана папка U810p.
  2. Скачайте ISO-образ диска Ubuntu 8.10 и поместите его в папку U810p на Вашем компьютере.
  3. Перейдите в папку U810p на Вашем компьютере и дважды щелкните мышью на файле U810.bat. Начнется выполнение скрипта. (Естественно, не забудьте включить флешку в компьютер). Следуйте инструкциям на экране. (От себя — инструкции будут на английском, но особых сложностей там нет никаких — сначала нужно указать букву диска, присвоенную флешке, а по окончании копирования файлов подтвердить согласие на создание на флешке загрузочной записи). Будьте внимательны, указывая букву диска — иначе Вы рискуете повредить загрузочную запись жесткого диска компьютера!
  4. По окончании работы скрипта перезавгрузите компьютер и настройте его BIOS на загрузку с USB драйва.

Если все ОК, Вы получите дистрибутив Ubuntu 8.10, загружающийся с флешки, и сохраняющий все произведенные изменения и настройки.

Размер файла для сохранения изменений. Как я уже писал выше «по умолчанию» данная инструкция подразумевает установку дистрибутива на фпешку размером 2 Гб. Как следствие, при выполнении данной инструкции на флешке создается специальный файл casper-rw размером 1 Гб. Именно в нем и сохраняются все выполненные Вами в процессе работы изменения. (А второй Гигабайт флешки при этом займет собственно сам дистрибутив)… Если же размер Вашей флешки позволяет, то для сохранения изменений Вы сможете использовать файл бОльшего размера. Для этого нужно скачать файл соответствующего размера по одной из ссылок ниже (пугаться не стоит — по ссылкам выкачиваются zip-архивы, размер которых значительно меньше):

После того, как архив скачали, его нужно распаковать в какую-нибудь папку на жестком диске и потом файлом, полученным из архива, заменить файл casper-rw, созданный на флешке при выполнении данной инструкции. Замену файла casper-rw следует выполнять еще до загрузки с флешки и внесения каких-либо изменений в систему. Или же (в противном случае), все ранее выполненные изменения, записанные в старый файл casper-rw, будут утеряны при замене его новым файлом большего размера…

Если же ни один из предложенных размеров «не подошел», можете создать файл требуемого размера самостоятельно

ЗЫ. На этом же сайте (http://www.pendrivelinux.com/) можно с легкостью найти и такие файлы: U904p.exe, KU904p.exe и XU904p.exe. Думаю, догадаться о их назначении несложно. Для тех, кому все-таки сложно, подсказываю — создание загрузочной флешки из дистрибутивов (соответственно) Ubuntu 9.04, Kubuntu 9.04 и Xibuntu 9.04. При этом, инструкция по их применению практически ничем (кроме используемого файла образа исходного диска) не отличается от описанной выше.

ЗЗЫ. Повторил данную инструкцию, вот только вместо флешки взял внешний USB винчестер. Однако, syslinux отказался ставить загрузчик на диск, мотивируя это тем, что он не флешка. Пришлось подредактировать файл makeboot.bat (причем, я редактировал уже тот, который в результате выполнения инструкции был скопирован на мой винчестер). В нем, в команде запуска syslinux я добавил ключик -f (force), и команда стала выглядеть следующим образом:

sysl\win32\syslinux.exe -f -ma %~d0

(Добавленый ключ выделен красным цветом). После этого я повторно запустил файл makeboot.bat (прямо с внешнего винчестера) и загрузчик syslinux установился на диск. В итоге у меня теперь флешка «чуток поболе» стала 🙂 …

Проще некуда — liveusb-creator

Как я уже писал, предыдущий способ в свое время подкупил меня своей относительной простотой. Но, через некоторое время я нашел ссылку на страницу программы liveusb-creator, которая (на мой взгляд) упростила процесс создания «флешки с Linux-ом с сохранением параметров» до безобразия. Смотрим на рисунок:

liveusb-creator
Рис. 2 Интерфейс программы

Во первых, данная программа устанавливает на флешку дистрибутивы Fedora Linux (версий с 9-й по 11-ю). Во вторых, все управление программой осуществляется мышью — никаких коммандных строк. Итак, что нужно сделать (кроме того, что скачать и запустить саму программу):

  1. Нажать кнопку Browse и указать где лежит скачанный образ дистрибутива. (Естественно, он должен быть выкачан заранее с сайта проекта Fedora. С другой стороны, можно просто выбрать версию дистрибутива в выпадающем списке справа от кнопки Browse. В этом случае сначала программа сама выкачает из интернета образ диска, а уже потом приступит к созданию загрузочной флешки.
  2. В выпадающем списке выбрать букву диска, соответствующую Вашей флешке-«кандидату».
  3. Просто двигая мышью ползунок, установить желаемый размер файла для сохранения изменений. Переживать не стоит — выставить больше, чем сможет влезть на флешку (за вычетом размера самого дистрибутива) — не получится.
  4. Нажать кнопку «Create Live USB» и дождаться окончания процесса…

Пока что все.

А вот и не все (добавлено 24.04.2009)

Ubuntu — «просто разуй глаза!»

Скачал я (как и «положено», в день выхода 🙂 ) Ubuntu 9.04. Записал на болванку и загрузился с нее, чтобы посмотреть — что же там есть нового. И, просматривая пункты меню, «неожиданно наткнулся» вот на такой:

ubuntu_menu
Рис. 3 Меню Ubuntu, запуск программы создания загрузочной флешки

Да уж, воистину: «внимательность — друг идейца»! Сколько вариантов с интернета накачал, программок всяких перепробовал, а оно вот тут, прямо под носом лежало!!! Запустил и получил вот такой интерфейс:

ubuntu_make_usb
Рис. 4 Интерфейс программы

Интерфейс программы «USB Startup Disk Creator» немного напоминает программу liveusb-creator, описанную выше.

  • В поле «Source disk image (.iso) or CD» (если Вы, как и я, загрузились с компакт-диска) будет указан диск, находящийся в приводе. Но, Вы можете, нажав кнопку «Other…«, выбрать другой файл образа диска, если таковой найдется на, допустим, жестком диске Вашего комьютера.
  • В поле «USB disk to use:» будет указана Ваша флешка (если Вы уже включили ее в компьютер), ее полная емкость («Capacity«), а также — свободное место («Free Space«). Запустить установку не получится, если на флешке будет не достаточно места для записи дистрибутива.
  • Если мы хотим, чтобы при работе с флешкой все изменения сохранялись (Persistent mode), то «ставим птичку» в пункте «Stored in reserved extra space«, и затем в поле «How much» движком устанавливаем желаемый объем файла для сохранения.
  • После этого осталось лишь нажать кнопку «Make Startup Disk» и дождаться окончания работы программы.

Первое, что сделал я, увидевши эту программу, проверил на предмет ее наличия в предыдущих релизах дистрибутива Ubuntu. В Ubuntu 8.10 эта программа уже присутствовала, а вот в Ubuntu 8.4 — не нашлось…

добавлено 27.02.2010

LILI

Еще одна программа для создания загрузочных флешек с Linux-ом из различных дистрибутивов с поддержкой Persistent Mode — «LiLi USB Creator«.

RADIUS, MySQL и парочка “веб-морд” ко всему этому …

Приспичило на днях мне RADIUS установить. На вопрос о том, «Зачем?», отвечу — именно с этого я начал, когда захотел создать себе хотспот. Но пока что рассмотрим вопрос «Как я это делал, и с какими трудностями при установке боролся»…

1. Ставим FreeRADIUS.

Итак, начнем с «вводных». На «сервере» моем установлена Mandriva (на данном этапе — версии 2008.1), репозитории её давным-давно настроены, а RADIUS мне приспичило настроить именно с использованием базы данных MySQL. Кстати, Apache, PHP5 и MySQL у меня тоже уже давным-давно были и установлены и настроены. Чтож, начинаем ставить RADIUS. Ставить будем не из исходников, которые при желании можно скачать с сайта FreeRADIUS, а из репозитория. Запускаем консоль от имени администратора (root) и вводим следующую команду:

urpmi freeradius freeradius-mysql libfreeradius1

Дожидаемся окончания успешной установки. Этим самым мы устанавливаем три пакета: сам сервер FreeRADIUS, модуль поддержки MySQL для FreeRADIUS, а также «базовый» набор библиотек. Просматривая список пакетов, которые можно установить из официальных репозиториев Mandriva, в имени которых присутствует слово «RADIUS», я выбрал еще парочку кандидатов для установки. Все в той же консоли от имени root вводим следующую команду:

urpmi freeradius-web libfreeradius-devel

Что это было такое? Пакет «libfreeradius-devel» — это набор дополнительных библиотек для разработчиков. Не уверен, что мне он так уж сильно будет нужен, но как говорится возьмем «на всякий случай». А вот «freeradius-web» — это уже один из тех двух веб-интерфейсов для управления RADIUS-сервером, установку которых я и планирую описать тут. На самом деле программа называется Dialup Admin, при желании, почитать о ней можно тут, а скачать (если кому-то не нравится ставить из репозитория) — тут.

Итак, пять пакетов мы скачали и установили. Не стоит даже и надеяться, что все это уже работает! Пока что мы только готовим ту «глыбу», из которой потом высечем нашу «статую». И для этого нам понадобится еще кое что.

2. Ставим daloRADIUS.

Вопросов собственно, возникает два:

  1. Почему, не доделав одно, мы перескакиваем на другое?
  2. И что это вообще такое и зачем оно нам нужно?

Отвечу сначала на второй вопрос. daloRADIUS — это второй веб-интерфейс для управления все тем же RADIUS-сервером. Зачем второй, если один уже есть? Честно говоря, поначалу у меня Dialup Admin попросту не запустился, и я быстренько «нагуглил» другой. А потом, когда запустил их оба, то решил тут описать все это сразу. А уж кому что больше нравится — решайте сами. Кстати, daloRADIUS по сравнению с Dialup Admin — более новый и более функционально насыщенный. Ну и справедливости ради должен отметить — в конечном итоге, установив и попробовав оба эти веб-интерфейса, я не нашел их достаточно удобными инструментами для управления хотспотом. Но об этом ниже в «Выводах»…

А теперь о том, зачем нам понадобилось устанавливать daloRADIUS до того, как завершено конфигурирование «связки» FreeRADIUS и MySQL. Дело в том, что установка FreeRADIUS с модулем поддержки MySQL еще не означает автоматического создания требуемой базы данных. Как я и говорил, это только «глыба», над которой нам еще предстоит поработать ручками! Но возвращаясь к базе — после установки 5 пакетов, описанных в первой части, у нас на компьютере только того и появляется, что всего-лишь … скрипт для создания в MySQL той самой требующейся для работы FreeRADIUS базы данных. В принципе, ничто не мешает сразу же взять этот скрипт и создать необходимую базу. И так и стоит поступить, только если Вы не планируете … установить daloRADIUS. Дело в том, что с ним также поставляется скрипт создания базы данных MySQL для FreeRADIUS. Но, в отличие от скрипта, поставляемого с самим FreeRADIUS-сервером, скрипт, идущий в комплекте с daloRADIUS, создает более объемную базу, добавляя в нее кроме базовых еще дополнительные таблицы и поля, требующиеся для его собственной работы. А с другой стороны, если изначально создать базу при помощи скрипта «от FreeRADIUS», то впоследствии, при выполнении скрипта «от daloRADIUS», первую базу придется снести. Так зачем дважды делать одно и то же? Уговорил?

Так как в репозиториях Mandriva данной программы нет, идем на сайт daloRADIUS или же на страницу проекта на SourceForge.net. В любом случае — качаем архив с программой. Собственно, сама установка сводится к нескольким простым действиям:

  • Распаковать содержимое архива.

Переходим в ту папку, куда сохранили скачанный архив с программой и выполняем команду:

tar -zxvf имя_архива.tar.gz

  • Полученный результат нужно скопировать в папку веб-сервера Apache.

Примечания по копированию. Во первых, результатом распаковки реального архива будет папка с именем наподобие такого — daloradius-0.9-8. Лично я для удобства папку эту сразу же переименовал в просто daloradius. А во вторых, папка, в которой находятся документы веб-сервера Apache в моем случае (так настроено), называется /var/www/html, и именно это и показано в приведенной ниже команде. А теперь вернемся к тому факту, что мы только что (командой приведенной выше) распаковали архив с программой. Находясь там же, выполняем следующую команду:

cp daloradius/ /var/www/html -R

  • Теперь нужно назначить владельцем папки с программой того пользователя, от имени которого работает веб-сервер.

В моем случае, это пользователь apache из группы apache. Чтобы сменить владельца, выполняем команду:

chown apache:apache /var/www/html/daloradius -R

  • Ну и напоследок, нужно изменить права доступа на файл конфигурации daloRADIUS.

Для этого выполняем команду:

chmod 644 /var/www/html/daloradius/library/daloradius.conf.php

На этом предварительную установку daloRADIUS можно считать законченой.

3. Подготавливаем MySQL (создаем базы).

Ну вот и добрались мы до «высечения» нашей «статуи»!.. Собственно, до настройки взаимодействия FreeRADIUS с базой данных MySQL нужно эту самую базу создать. Как я писал уже выше, на данном этапе у нас есть только скрипты для ее создания. И из двух возможных «претендентов» лично я выбрал скрипт, поставлявшийся в комплекте с daloRADIUS. Вот его и будем сейчас «юзать». В приведенном ниже примере я использую имя базы «radius_db«, имя пользователя для данной базы — «radius_user» и пароль «radius_passwd» для доступа данного пользователя к данной базе. Вам же я рекомендую выбрать свои значения и подставлять их в соответствующие команды. Предполагается, что мы по-прежнему находимся в консоли от имени root-а. Запускаем команду:

mysql -uroot -p

Если попросит, вводим пароль root-а для MySQL. (Если же не попросит, то совет на будущее — установить этот самый пароль в целях повышения безопасности). После успешного ввода пароля мы попадаем в консоль MySQL. На всякий случай напомню, что все команды в ней должны заканчиваться точкой с запятой (;). Создаем базу даных:

CREATE DATABASE radius_db;

Переходим в только что созданную базу данных:

use radius_db;

Запускаем тот самый скрипт, который и создаст в этой базе данных всё необходимое:

source /var/www/html/daloradius/contrib/db/fr2-mysql-daloradius-and-freeradius.sql;

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

После того, как база создана (мы получили ответ наподобие «Query OK, ХХХ rows affected…»), создаем пользователя и назначаем ему права на данную базу данных:

GRANT ALL PRIVILEGES ON radius_db.* TO 'radius_user'@'localhost' IDENTIFIED BY 'radius_passwd';

В данном случае следует обратить внимание на слово «localhost», означающее, что и база данных MySQL и сервер FreeRADIUS установлены на одном компьютере. В противном случае имя компьютера в приведенной команде нужно будет изменить.

Теперь наша база готова, но … только для случая использования веб-интерфейса daloRADIUS. Если же планируется использовать Dialup Admin, то нам необходимо добавить в базу еще несколько таблиц. Необходимое примечание — после установки пакета freeradius-web файлы программы Dialup Admin на моем «сервере» расположились в папке /var/www/freeradius-web, а документация к ней — в папке /usr/share/doc/freeradius-web/sql. В папке с документацией, в подпапке /sql/mysql находятся четыре скрипта для создания недостающих для работы Dialup Admin дополнительных таблиц. Если Вы еще не вышли из консоли MySQL, то просто вводим приведенные ниже четыре команды. Если же вышли, то сначала возвращаемся в консоль MySQL командой «mysql -uroot -p» и выбираем базу командой «use radius_db;«. А уже потом создаем 4 новые таблицы — «badusers»

source /usr/share/doc/freeradius-web/sql/mysql/badusers.sql;

«userinfo»:

source /usr/share/doc/freeradius-web/sql/mysql/userinfo.sql;

«mtotacct:»

source /usr/share/doc/freeradius-web/sql/mysql/mtotacct.sql;

«totacct»:

source /usr/share/doc/freeradius-web/sql/mysql/totacct.sql;

После того, как успешно созданы и эти 4 таблицы, можно выйти из консоли MySQL командой «exit«. Но, в моем случае попытка создания данных 4 таблиц привела лишь к сообщениям об ошибках. «Удачным» примером может служить скрипт для создания таблицы badusers (badusers.sql). При попытке его запуска MySQL выдал два сообщения об ошибках — «ERROR 1067 (42000): Invalid default value for ‘id’» и «ERROR 1072 (42000): Key column ‘Date’ doesn’t exist in table«. Пришлось редактировать вручную.

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

#
# Table structure for table 'badusers'
#
CREATE TABLE badusers (
  id int(10) DEFAULT '0' NOT NULL auto_increment,
  UserName varchar(30),
  IncidentDate	datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  Reason varchar(200),
  Admin varchar(30) DEFAULT '-',
  PRIMARY KEY (id),
  KEY UserName (UserName),
  KEY Date (Date)
);

А вот так — после правки:

#
# Table structure for table 'badusers'
#
CREATE TABLE badusers (
  id int(10) DEFAULT NULL NOT NULL auto_increment,
  UserName varchar(30),
  IncidentDate	datetime DEFAULT '0000-00-00 00:00:00' NOT NULL,
  Reason varchar(200),
  Admin varchar(30) DEFAULT '-',
  PRIMARY KEY (id),
  KEY UserName (UserName),
  KEY IncidentDate (IncidentDate)
);

Для наглядности различия выделены красным. Как мы видим, для исправления первой ошибки (1067) я просто заменил числовой ноль (0) на значение «NULL». После этого сообщение о неверном «умолчательном» значении дл колонки «id» ушло. Второе сообщение об ошибке (1072) говорит нам, что мы пытаемся сделать ключевым невуществующий в таблице (!!!) столбец «Date». И это действительно так! Взглянувши на структуру таблицы, мы видим, что там из дат есть только столбец «IncidentDate». Вот именно его я и сделал ключевым…  Подобная правка может потребоваться и для трех остальных скриптов. После правки повторно запускаем создание 4 дополнительных таблиц. Получив ответ вида «Query OK, ХХХ rows affected…» на все четыре команды по созданию доп. таблиц, выходим из консоли MySQL командой «exit«.

4. Настраиваем FreeRADIUS на использование базы MySQL.

В самом начале мы установили FreeRADIUS. Помните? И все это время он тихонько работал! Не верите? Введите команду:

ps -e|grep radiusd

Нюанс в том, что пока что наш FreeRADIUS не использует базу MySQL. Чтож, будем «принуждать». Для этого необходимо выполнить несколько действий. Во первых, нужно отредактировать файл /etc/raddb/sql.conf. В нем нужно найти указанные строки (они не будут идти подряд, как в примере ниже) и присвоить им следующие значения:

	database = "mysql"
	server = "localhost"
	login = "radius_user"
	password = "radius_passwd"
	radius_db = "radius_db"
	usergroup_table = "radusergroup"
	readclients = yes

Это были параметры, используемые FreeRADIUS при подключении к базе MySQL. Важно, чтобы имя базы, пользователя и пароль, вписанные нами в файл /etc/raddb/sql.conf, совпадали с теми, которые мы ранее использовали при создании базы в MySQL. Следующим шагом мы редактируем файл /etc/raddb/radiusd.conf. В нем нам нужно найти и раскомментировать (убрать символ #) строку:

	$INCLUDE sql.conf

Этим самым мы «глобально» разрешаем FreeRADIUS использовать в своей работе sql-базу данных (параметры которой мы только что описали в файле /etc/raddb/sql.conf). И напоследок нужно отредактировать файл /etc/raddb/sites-available/default. Файл сам по себе не маленький, но придется постараться. В нем нужно найти секцию authorize{} и в ней раскомментировать строку, содержащую директиву «sql». Это позволяет FreeRADIUS искать записи о пользователях в sql-базе данных при их авторизации. Также, нужно найти секцию accounting{} и в ней также раскомментировать строку «sql». Это вынуждвет FreeRADIUS свои записи о подсчете трафика также хранить в sql-базе данных.

Все. Настройка взаимодействия FreeRADIUS с базой данных MySQL завершена. Чтобы внесенные нами изменения вступили в силу, сервер FreeRADIUS нужно перезапустить. Мы же все еще в консоли с правами root-а? Тогда просто вводим команду:

/etc/init.d/radiusd restart

Если все хорошо, то сначала мы прочтем «ОК» по поводу остановки сервера freeradius, а потом — «ОК» по поводу его запуска. С этого момента «связка» FreeRADIUS с базой данных MySQL работает, и нам пора это проверить…

5. Проверка «связки» FreeRADIUS + MySQL

Чтобы убедиться, что наш сервер работает и «общается» с базой данных, выполним следующее. Сначала войдем в консоль MySQL:

mysql -uroot -p

Выберем базу данных :

use radius_db;

Вставим в нее новую запись (в таблицу «radcheck» про пользователя «sqltest» и его пароль «testpwd»):

INSERT INTO radcheck (UserName, Attribute, Value) VALUES ('sqltest', 'Password', 'testpwd');

(По сути, мы только что «по быстрому» завели в нашем RADIUS-сервере тестового пользователя). На всякий случай проверим, что запись таки была добавлена:

select * from radcheck where UserName='sqltest';

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

+----+----------+-----------+----+---------+
| id | username | attribute | op | value   |
+----+----------+-----------+----+---------+
|  1 | sqltest  | Password  | == | testpwd |
+----+----------+-----------+----+---------+
1 row in set (0.00 sec)

Если все хорошо, выходим из консоли MySQL:

exit

А теперь пошлем запрос нашему RADIUS-серверу:

radtest sqltest testpwd localhost 1812 testing123

В данном случае служебная программа radtest (предназначенная для проверки сервера RADIUS) посылает запрос на порт 1812 локального (localhost) RADIUS-сервера с просьбой подтвердить авторизацию пользователя с именем “sqltest” и паролем “testpwd“. Ответ сервера выглядит примерно так:

Sending Access-Request of id 136 to 127.0.0.1 port 1812
        User-Name = "sqltest"
        User-Password = "testpwd"
        NAS-IP-Address = 127.0.0.1
        NAS-Port = 1812
rad_recv: Access-Accept packet from host 127.0.0.1 port 1812, id=136, length=20

И нам в нем важна выделенная красным цветом строка “Access-Accept”, которая подтверждает, что клиент “sqltest” принят сервером RADIUS, а значит наша “связка” FreeRADIUS + MySQL работает нормально! Следовательно, пора прикручивать веб-интерфейсы…

6. Настраиваем Dialup Admin

Настройка программы проста и сводится к редактированию всего лишь одного файла конфигурации — /etc/freeradius-web/admin.conf. В нем нужно найти указанные строки (они не обязательно будут идти подряд, как в примере ниже) и присвоить им следующие значения:

sql_type: mysql
sql_server: localhost
sql_port: 3306
sql_username: radius_user
sql_password: radius_passwd
sql_database: radius_db
sql_usergroup_table: radusergroup
sql_debug: false

Важно, чтобы имя базы, имя пользователя и пароль, вписанные нами в файл /etc/freeradius-web/admin.conf, совпадали с теми, которые мы ранее использовали при создании базы в MySQL. Все. Даже перезапускать ничего не нужно. Просто запускаем браузер (любой) и набираем в поле адреса:

http://localhost/freeradius-web/

  • Подразумевается, что браузер запущен на том самом компьютере, где установлен Dialup Admin. Если Вы пытаетесь войти в программу с другого — укажите в браузере имя или ip-адрес компьютера, на котором установлен Dialup Admin.
  • Программа сразу же открывает интерфейс для управления сервером RADIUS, не спрашивая никакого имени и пароля. То есть, никакой собственной защиты она не использует. Поэтому доступ к странице программы настоятельно рекомендуется защитить, например с помощью файла .htaccess, настроив его по собственному разумению.

7. Настраиваем daloRADIUS.

Подразумевается, что Вы уже установили программу и настроили ее владельца и права доступа, как описано выше в пункте 2 «Ставим daloRADIUS». Для настройки программы необходимо отредактировать всего лишь один файл конфигурации — /var/www/html/daloradius/library/daloradius.conf.php. В нем нужно найти указанные строки (они не обязательно будут идти подряд, как в примере ниже) и присвоить им следующие значения:

$configValues['CONFIG_DB_ENGINE'] = 'mysql';
$configValues['CONFIG_DB_HOST'] = 'localhost';
$configValues['CONFIG_DB_USER'] = 'radius_user';
$configValues['CONFIG_DB_PASS'] = 'radius_passwd';
$configValues['CONFIG_DB_NAME'] = 'radius_db';
$configValues['CONFIG_DB_TBL_RADUSERGROUP'] = 'radusergroup';
$configValues['CONFIG_PATH_DALO_VARIABLE_DATA'] = '/var/www/html/daloradius/var';
$configValues['CONFIG_LANG'] = 'ru';

Важно, чтобы имя базы, имя пользователя и пароль, вписанные нами в файл /var/www/html/daloradius/library/daloradius.conf.php, совпадали с теми, которые мы ранее использовали при создании базы в MySQL. Программа готова к запуску. Просто запускаем браузер (любой) и набираем в поле адреса:

http://localhost/daloradius/

  • Подразумевается, что браузер запущен на том самом компьютере, где установлен daloRADIUS. Если Вы пытаетесь войти в программу с другого — укажите в браузере имя или ip-адрес компьютера, на котором установлен daloRADIUS.
  • Программа при запуске открывает окно входа (login) в котором нужно ввести имя пользователя и пароль. При первом запуске (то есть, Вы ничего не меняли еще) вводим пользователя «administrator» и пароль «radius«. В дальнейшем настоятельно рекомендуется сменить хотя-бы пароль, а то будет как с левым Windows — пользователей миллионы, а пароль один. Более того, я бы порекомендовал дополнительно защитить доступ к странице программы с помощью файла .htaccess, настроив его по собственному разумению.

Ну вот и все… Ах, ну да —

Выводы

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

В итоге — предлагаю всем желающим приобрести русифицированный и модернизированный вариант программы Easyhotspot плюс подробнейшее руководство по установке хотспота. Подробности здесь.

Почитать еще:

  1. http://daloradius.wiki.sourceforge.net/
  2. http://wiki.freeradius.org/ и в том числе http://wiki.freeradius.org/SQL_HOWTO
  3. http://www.howtoforge.com/authentication-authorization-and-accounting-with-freeradius-and-mysql-backend-and-webbased-management-with-daloradius

Почитать все мои заметки о хотспотах:

  1. https://wifi-hotspot.zp.ua/wp/category/xotspot/