Линух, «мускул», Дебет Плюс v12

Действительно, и что тут писать? Там же на сайте «море документации»! Только вот прочтение ее мало приближает к пониманию. Может в этом и есть весь сакральный смысл open-source?…

Итак, прочтение  всего того вороха, что размещен непосредственно на сайте Дебет Плюс, особого «прозрения» не принесло. Какие-то сбивчивые пояснения, обильно перемешанные картинками из виндовса, «дисками C:\ и D:\», обязательными разрешениями открытого беспарольного доступа рута к мускулу с любого компьютера сети, и т.д.

Короче говоря, отстреляться в моем любимом режиме «побороть за 5 минут и забыть» у меня не вышло…

Посему, решил расписать тут процесс этот, может кто потом спасибо скажет…

1.  Вводные

Есть у меня одна организация, активно переходящая на использование линукса. Причина банальна, платить за честный майкрософт они не хотят, а проверки по городу регулярно выискивают — «кто тут снова авторские права злостно нарушает?!». Посему, стоит у них на всех компьютерах Ubuntu, Open Office и т.д. и т.п… И почти все хорошо, но вот понадобилась им программа даже не для бухгалтерии в полном понимании этого слова, а всего лишь для ведения склада. Но такая, чтобы работало в ней несколько человек, на нескольких компьютерах, по сети, из-под под Ubuntu, ну и, естественно, даром…

Первой «подопытной» для демонстрации заказчику мной была выбрана Open ERP. Установка и настройка её — еще та песня, окончательная настройка стабильно работающей системы «сожрала» у меня несколько дней (основная проблема была с установкой и настройкой ее веб-сервера и веб-клиентов), если будет как-нибудь не лень, тоже распишу тут. Но, не понравился заказчику показанный продукт — «очень монстровская программа», «все слишком правильно», «нам бы попроще и подоходчивей», «мы не сможем наших бабушек обучить ей», и т.д. и т.п. И тут «пало око» на Дебет Плюс. Первые ознакомительные потыкивания в установленной на виндовсе версии закончились резолюцией заказчика: «Нормально, чем-то похоже на 1С, если вы утверждаете, что на линуксе оно точно такое же, то нам пойдет».  И вот теперь заказчиком было озвучено желание — «поставьте нам ее такую же, но на линукс и сетевую»…

Я тоже лентяй, разбираться с «клиентами» и «серверами» самого Дебет Плюса не захотел и решил, что «серверность» будем делать банально — через единую базу в MySQL. Вот на этом, собственно, моя вводная и заканчивается…

2. Сервер, подготовка

В данном случае, под «сервером»  я подразумеваю тот компьютер, на котором будет установлен сам сервер MySQL и размещена база «Дебета». Во всем остальном — он мало чем отличается от остальных «соседних» компьютеров. И более того, по «вводной от заказчика» на этом компьютере также будет работать один человек. На всякий случай напоминаю — это компьютер с установленной на нем ОС Ubuntu-desktop (кстати, оказывается в Украине на бубунту какой-то шустрый киевский предприниматель продает предприятиям сертификаты, я выпал!!!). Сама версия дистрибутива выбиралась мной, и я установил 10.04 LTS только потому, что  LTS  — это дистрибутив «с длительной поддержкой» (лениво мне каждые полгода с новыми багами разбираться)…

Для начала нужен сам сервер MySQL. Способов установить его — в интернете описано превеликое множество. Единственная моя «отсебятина», заключается в том, что я иногда люблю заглядывать в базы с помощью PhpMyAdmin (хотя стартовые действия — создание баз, импорт дампов, назначение привилегий — предпочитаю делать в консоли мускульного клиента — как-то и быстрей и понятней получается). Поэтому, (с поправкой на желание PhpMyAdmin-а) я сходу установил на «сервер» LAMP. Как я обычно это делаю, уже описано мной ранее в заметке Зажигаем «LAMP-очку». Дублировать тут ее смысла не вижу абсолютно — просто кликните по ссылке и прочтите…

3. Импорт дампа базы данных

После того, как сервер MySQL установлен и работает, наступило время вкинуть в него базу для Дебет Плюс. Для этого в первую очередь понадобится сам  Дебет Плюс. Идем на сайт программы в раздел «Скачать» и качаем версию для линукса.

http://www.debet.kiev.ua/download-program

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

Итак, после того как архив был распакован, в домашней папке пользователя появилась папка DebetPlusV12. Переходим в папку, в которой расположен дамп базы данных (в консоли (терминале) вводим команду):

cd ~/DebetPlusV12/base/org2

(В данном случае «~» обозначает как раз домашнюю папку пользователя, вместо нее можно еще указать $HOME. )

В обозначенной папке убеждаемся в том, что в ней присутствует файл dpbase.arh (это и есть искомый дамп базы данных программы Дебет Плюс!). Если файл присутсвует, идем в консоль сервера MySQL, для этого вводим команду:

mysql -uroot -p

..и в ответ на запрос вводим пароль root-а (для сервера MySQL). После того, как попали в консоль MySQL, вводим команду для импорта дампа:

source dpbase.arh;

(данная команда приведена с учетом того, что мы перед входом в консоль мускула находились ИМЕННО в той самой папке, где располагался сам файл дампа dpbase.arh, иначе — в команде нужно прописать полный путь к файлу dpbase.arh, например, /home/dmitry/DebetPlusV12/base/org2/dpbase.arh). Дополнительно обращаю внимание, что предварительно саму базу мы не создаем — команда на ее создание уже присутсвует в дампе. Там же, в дампе, указано и то имя, с которым новая база будет создана — dpbase.

В результате процедуры импорта на сервере MySQL будет создана новая база — dpbase и в ней — (примерно) 1000 таблиц. Однако, программе Дебет Плюс для работы нужна ЕЩЕ ОДНА база (уж зачем она ей нужна — я не разбирался, но без нее, увы никак!). Имя этой базы dpadmin. Поэтому, создаем сразу же и ее:

CREATE DATABASE `dpadmin` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci; 

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

GRANT ALL PRIVILEGES ON dpadmin.* TO "DPADMIN"@"%" IDENTIFIED BY "password" WITH GRANT OPTION; 
GRANT ALL PRIVILEGES ON dpbase.* TO "DPADMIN"@"%" IDENTIFIED BY "password" WITH GRANT OPTION; 

Как видите, в данных командах мы для двух баз (dpadmin и dpbase) назначаем владельцем пользователя (DPADMIN), который будет подключаться с помощью пароля password (причем в данном случае указанное в примере слово «password» — это ИМЕННО ЗНАЧЕНИЕ пароля, поставьте свое собственное, выполняя данные инструкции), и получать при этом полный доступ. Имя пользователя — DPADMIN, причем, именно так — БОЛЬШИМИ буквами, это имя, прописанное по умолчанию в программе Дебет плюс.  И именно с этим именем по умолчанию программа будет пытаться подключаться. Вместо адреса сервера, с которого пользователь DPADMIN будет подключаться к серверу баз данных в команде указано «%» — то есть, с любого адреса. Желающие повысить безопасность могут прописать конкретные адреса, или диапазоны адресов…

Все, базы готовы, консоль мускула нам больше ни к чему, выходим из нее командой quit или exit — кому как больше нравится…

4. Непосредственно сама программа

Тут действительно, практически все уже готово (с учетом того, что ранее программу мы уже разархивировали), и ее нужно просто запустить. Для этого вводим в консоли команду

~/DebetPlusV12/DebetPlus

Программа стартует, причем, полностью готовая к работе, как говорится «из коробки»! Спрашивается, а зачем тогда весь этот талмуд, если ее надо было просто запустить?… Отвечаю — ведь мы ж хотели «сетевую», а если «вот так просто стартануть» — то программа работает с локальной Derby-базой. То есть — пока еще не спешим пользоваться программой — сначала ее нужно перенастроить на использование базы, лежащей в сервере MySQL, и уж тогда будет нам «счастье сетевое»!…

По этому, последний шаг:

5. Настройка на использование базы MySQL

В этой части инструкции я покажу скриншоты, сделанные уже на «внешнем» рабочем месте — стоящем по соседству в сети компьютере. Причем, так уж вышло, что скриншоты делались на компьютере с ОС Windows, но в случае использования ОС Linux все настройки будут происходить точно также.

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

Рис. 1 — Выбираем добавление базы данных

То есть, в Правой части в меню выбираем закладку «Дебет Плюс»,  правой кнопкой мыши щелкаем на пункте «База DERBY» и в контекстном меню выбираем пункт «Добавить новую».

В открывшемся меню:

Рис. 2 — Выбираем добавление уже существующей базы данных

 

…выбираем пункт «Добавить в список существующую».

Откроется вот такое меню настройки параметров базы:

Рис. 3 — Настройки параметров базы данных

В этом меню нам предстоит выполнить ряд действий.

  1. Введите произвольное имя для данного подключения к базе. То есть, это просто то имя, под которым данное подключение к базе будет фигурировать в настройках программы Дебет Плюс. Причем, как показывают и используемое по умолчанию в программе имя «База DERBY», и официальная дока с сайта программы, здесь вы вольны использовать в том числе и кирилицу (правда, лично я не люблю этого, и посему назвал подключение не мудрствуя лукаво — mysql).
  2. Щелкните на стрелку и в выпадающем вписке выберите пункт «MySQL» (надеюсь, вы еще помните в каком сервера баз данных мы создавали нашу базу 🙂 )..
  3. Адрес (сетевой) того компьютера, на котором расположен сервер баз данных MySQL, в котором размещена интересующая нас база программы Дебет Плюс.  В данном случае на скриншоте показан IP-адрес сервера.  Если у вас в сети есть и используется локальный сервер DNS, который для локальных компьютеров хранит имена, можете указать вместо IP-адреса сетевое имя. Ну и напоследок, для случая, когда Дебет плюс запускается на том же компьютере, где расположена и сама база, вполне логичным будет указать в этом поле значение localhost (естественно, что «таких» компьютеров в «сетевой» инсталяции м.б. всего один 🙂 ).
  4. Номер порта. По умолчанию MySQL слушает подключения на порту 3306. Если вы не меняли это значение в настройках сервера MySQL (или даже не знаете, о чем идет речь), остатвьте как есть — 3306. Если меняли — смените и тут… Имя базы. При импорте дампа базы (как было описано выше) мы «автоматом» получаем, что создаваемая для «Дебет Плюс» база будет иметь имя dpbase (оно жестко прописано в файле дампа dpbase.arh, и его смена предполагает ручное редактирование файла dpbase.arh перед импортом). Если вы «ничего такого не делали», оставьте как есть — dpbase.
  5. В поле «Использовать авторизацию Дебет Плюс» мы птичку ставим для того, чтобы избежать необходимости при каждом запуске программы вручную вводить пароль, с которым Дебет Плюс подключается к базе данных. (Заказчик очень просил — «Не мучайте наших бабушек! Не надо, чтобы они еще и пароли запоминали!»).  Если же вы приверженец того, чтобы в целях безопасности пользователь все-таки вводил пароль вручную — не ставьте эту «птичку»!
  6. В поле «Настройки в базе данных» ОБЯЗАТЕЛЬНО ставьте «птичку»! Для сетевой работы — это необходимо. Иначе, при работе с сетевой базой данных Дебет Плюс будет постояннно пытаться искать «какие-то» настройки в своих локальных папках, находить их там естественно не будет, и вместо нормальной работы вы будете просто читать кучи сообщений об ошибках…
  7. Когда все выполнено, нажмите кнопку «Готово». Новое подключение (база данных) появится в списке рядом с пунктом «База DERBY».

Теперь нам нужно задействовать (активировать) эту самую новую (сетевую) базу данных, хранящуюся в сервере MySQL. Для этого выполните следующее:

Рис. 4 — Активация нового подключения к базе

То есть, просто щелкните на ней правой кнопкой мыши, и в меню выберите пункт «Сделать активной».  В ответ на это вы получите два сообщения.

Первое — это сообщение об ошибке:

Рис. 5 — Сообщение о невозможности подключиться к базе данных

… которое гласит о том, что программа не смогла подключиться к базе данных. Не пугайтесь. Причина его в том, что, во-первых, ранее вы поставили птичку в поле «Использовать авторизацию Дебет Плюс» (см. рис. 3 выше), во вторых, назначая права пользователей базы (см раздел «3. Импорт дампа базы данных» выше), вы указали использовать пароль (password), и в третьих, самой программе «Дебет Плюс» об этом пока что ничего не известно — ни о факте использования пароля, ни его (пароля) значение. По этому, программа и пытается подключиться к базе с пустым паролем. На что сервер MySQL ей вполне естественно и отвечает, что мол, «низзя сюды без паролю-то!»… Не огорчайтесь, все будет хорошо, нас же просили «не мучать бабушек»…

Второе сообщение — это как раз приглашение ввести пароль:

Рис. 6 — Ввод пароля для подключения к базе

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

После того, как пароль принят, вы можете приступать к работе непосрадственно в программе Дебет Плюс! (И кстати, на этом этапе, при желании, можно уже и удалить не используемую теперь «Базу DERBY»).

Однако, условие «не мучать бабушек» все еще не выполнено: если на данном этапе оставить все как есть, окно с предложением ввести пароль, показанное на рис. 6 выше, будет выпрыгивать при каждом запуске программы. По этому, будем настраивать дальше…

Выполните следующее:

Рис. 7 — Вход в меню «Администрирование»

То есть,  щелкните сначала «Администрирование» в списке на закладке «Дебет плюс», а потом просто на самой вкладке «Администрирование» вверху.

В открывшейся вкладке нас интересует пункт Пользователи.

Рис. 8 — Выбираем меню «Пользователи»

Вот его и щелкнем. Откроется меню настройки пользователей программы:

Рис. 9 — Меню настроек пользователя

В нем выполните следующее:

  1. «Щелкните плюсик», чтобы открыть список пользователей.
  2. В списке будет всего один пользователь — DPADMIN. Вот его и выберите. Кстати, вот мы добрались до того, и с каким именем программа «ходит» в базу данных,  и почему оно набрано большими буквами… Кстати, желающие могут сменить, но учтите, что менять придется и в сервере MySQL (см. выше про назначение прав).
  3. Но мы сюда пришли с единственной целью — сменить пароль, с которым программа пытается подключаться к базе.  Поэтому, ставим «птичку» в поле «Сменить пароль».
  4. После этого у вас появится возможность ввода в поле «Пароль для пподключения к БД». Вводим туда то самое «password» (или какое там вы указали у себя) значение пароля.
  5. Щедлкаем кнопку «Сохранить». При этом пропадут и «звезды» в поле пароля, и «птица» в поле «Сменить пароль». Не переживайте — дело уже сделано, программа запомнила новый пароль.
  6. Щелкаем кнопку Закрыть» и выходи из меню.

ВСЁ!

Для проверки — выйдите из программы Дебет Плюс. А потом запустите ее снова. Вы должны попасть в программу без ввода каких бы то ни было дополнительных паролей, по умолчанию должна быть выбрана база MySQL, и все должно прекрасно работать.

Вот теперь, на мой взгляд, наконец-то это похоже на иструкцию по запуску программы за пять минут!!! 😉

Ах, да! Чуть не забыл…

6. Важное замечание по серверу MySQL

По умолчанию, обычно, сразу после установки сервера MySQL, доступ извне (из сети) к нему ограничен! За это отвечает обычно специальная настройка в файле my.ini. Зачастую (раньше) использовался специальный параметр — skip-networking. Если он активирован в файле настроек, право подключения к серверу дается лишь запросам, поступающим с адреса localhost. В таком случае, наши сетевые клиенты не смогут работать.  Чтобы все было хорошо, указанную строку нужно закомментировать.

Однако, в Ubuntu последнее время вместо параметра skip-networking используется другой — bind-address =127.0.0.1. Он также не позволяет подключаться к серверу никому, кроме localhost-а. По этому, его как и рассматривавшийся выше параметр skip-networking тоже нужно закомментировать.

После того, как данное ограничение в настройках сервера будет исправлено, сервер MySQL нужно перезапустить.

И вот теперь ваша сетевая версия Дебет Плюс будет прекрасно работать…

Успехов!