Установка МИС на сервер с Linux: различия между версиями

Материал из Wiki МИАЦ ВО
Перейти к навигации Перейти к поиску
(Подготовим систему)
(Настройка MySQL сервера)
 
(не показаны 23 промежуточные версии этого же участника)
Строка 1: Строка 1:
В данной статье будет описан процесс установки и настройки сервера «Медицинской информационной системы» на основе Ubuntu Server 16.04.1 LTS
+
В данной статье будет описан процесс установки и настройки сервера «Медицинской информационной системы» на основе Ubuntu Server 16.04.1 LTS.<br>
 +
Основную часть этого мануала написал Малахов С.М. (Большая ему благодарность), а я только немного добавил и исправил ошибки.
  
 
== Часть I Подготовка ==
 
== Часть I Подготовка ==
Строка 152: Строка 153:
 
# '''Очистим''' smb.conf <code>$sudo echo 1>/etc/samba/smb.conf </code>
 
# '''Очистим''' smb.conf <code>$sudo echo 1>/etc/samba/smb.conf </code>
 
# '''Отредактируем''' <pre>$sudo nano /etc/samba/smb.conf</pre> сохраняем комбинацией клавиш '''ctrl + O, ctrl + X '''для выхода<br><br>'''содержимое smb.conf'''  
 
# '''Отредактируем''' <pre>$sudo nano /etc/samba/smb.conf</pre> сохраняем комбинацией клавиш '''ctrl + O, ctrl + X '''для выхода<br><br>'''содержимое smb.conf'''  
[general]
+
<pre>
        server string = Medical Information System MIAC
+
[global]
        guest account = nobody
+
    server string = Medical Information System MIAC
        writeable = yes
+
    workgroup = WORKGROUP
        security = user
+
    netbios name = MIS
        map to guest = bad user
+
    server string = MIS Server
        log file = /var/log/samba/%m.log
 
        max log size = 50
 
        log level = 1
 
        socet options = TCP_NODELAY IPTOS_LOWDELAY
 
[mysql]
 
        browsable = yes
 
        guest ok = no
 
        path = /var/mis
 
        read only = no
 
        create mask = 0770
 
        directory mask = 0770
 
        force group = usermis
 
  
4. '''Создадим группу''' пользователей МИС <code>$sudo groupadd usermis</code> и '''добавим''' нашего '''пользователя''' в SAMBA <code>$sudo smbpasswd -a %USERNAME%</code>, где %USERNAME% имя '''вашей''' учетной записи,<br>а также '''добавим''' его '''в группу''' usermis <pre>$sudo usermod -a -G usermis %USERNAME%</pre>
+
    # need for netbios informations sharing over the network
 +
    wins support = Yes
 +
    directory mask = 0775
 +
    create mask = 0664
 +
    log file = /var/log/samba/%m.log
 +
    max log size = 50
 +
    syslog = 0
 +
 
 +
    # this way samba will not ask for password to connect to the machine
 +
    security = user
 +
    passdb backend = tdbsam
 +
    // в каком порядке использовать сервисы имен для получения IP адреса.
 +
    // bcast : Сделать широковещательный запрос по всем известным интерфейсам.
 +
    // Это самый ненадежный из всех методов определения имен, т.к. зависит от подключения
 +
    // компьютера к локальной сети.
 +
    name resolve order = bcast host
 +
   
 +
    acl allow execute always = True
 +
 
 +
[homes]
 +
    comment = Home Directories
 +
    valid users = %S
 +
    #path = /home/%S/
 +
    path = /home/%U/mis/
 +
    browseable = no
 +
    #writable = yes
 +
    read only = no
 +
 
 +
 +
[mysql]
 +
    comment = MIS base  Directories
 +
    path = /var/mis
 +
    public = yes
 +
    printable = no
 +
    read only = no
 +
    admin users = user1,user2
 +
    # В данном устройстве файлы будут создаваться, как есть
 +
    preserve case = yes
 +
    short preserve case = yes
 +
    default case = lower
 +
    directory mask = 0777
 +
    create mask = 0666
 +
    force group = usermis
 +
</pre>
 +
4. '''Создадим группу''' пользователей МИС  
 +
<pre>$sudo groupadd usermis</pre> и '''добавим''' нашего '''пользователя''' в SAMBA  
 +
<pre>$sudo smbpasswd -a %USERNAME%
 +
$sudo smbpasswd -e %USERNAME%
 +
</pre>  
 +
где %USERNAME% имя '''вашей''' учетной записи,<br>
 +
а также '''добавим''' его '''в группу''' usermis  
 +
<pre>$sudo usermod -a -G usermis %USERNAME%</pre>
 
5. '''Создаем папку''' для программы МИС <pre>$sudo mkdir /var/mis</pre> и '''назначим права''' на папку <pre>$sudo chown :usermis /var/mis && sudo chmod 770 /var/mis</pre>
 
5. '''Создаем папку''' для программы МИС <pre>$sudo mkdir /var/mis</pre> и '''назначим права''' на папку <pre>$sudo chown :usermis /var/mis && sudo chmod 770 /var/mis</pre>
 
6. '''Перезагрузим''' smbd <pre>$sudo service smbd restart</pre>
 
6. '''Перезагрузим''' smbd <pre>$sudo service smbd restart</pre>
Строка 186: Строка 226:
  
 
====== Настройка MySQL сервера ======
 
====== Настройка MySQL сервера ======
1) '''Редактируем''' файл my.cnf <code>$sudo nano /etc/mysql/my.cnf</code>
+
1) Делаем архив файла конфигурации
 
+
<pre>cd  /etc/mysql/mysql.conf.d
В нем '''находим строку''' ''bind-address = 127.0.0.1'' и комментируем ее '''#''bind-address = 127.0.0.1'''''
+
$sudo cp mysqld.cnf mysqld.cnf.dist</pre>
 
+
2) '''Редактируем''' файл mysql.cnf  
2) Редактируем файл my.ini <code>$nano /var/mis/my.ini</code>
+
<pre>$sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf</pre>
находим строчки basedir="D:\mysql\data\"
+
В блоке [mysqld] меняем
datadir="D:\mysql\data\"
+
<pre>bind-address = 127.0.0.1</pre>
 
+
на <pre>bind-address = 0.0.0.0</pre>
меняем на basedir="/var/lib/mysql/"
+
Добавляем строки в конец файла
datadir="/var/lib/mysql/"
+
<pre>
3) '''Подключаемся''' к mysql серверу и создаем 2 базы <code>$mysql -uroot -pqwerty</code>
+
# Кодировка
  >create database new;
+
init_connect='SET NAMES cp1251'
>create database kadry;
+
character-set-server=cp1251
>quit;
+
collation-server=cp1251_general_ci
4) Базы созданы, теперь можно '''накатывать дампы''' на сервер:
+
skip-character-set-client-handshake
 
+
lower_case_table_names=1
<code>$mysql -uroot -pqwerty new < /var/mis/new.dump.sql</code>
+
open_files_limit = 24000
 
+
join_buffer_size = 256K
<code>$mysql -uroot -pqwerty kadry < /var/mis/kadry.dump.sql</code>
+
# Чтобы не выхавала варнинги на DNS
 
+
skip-host-cache
5) '''Перезагрузим''' сервер mysql <code>$sudo service mysql restart</code>
+
skip-name-resolve
 +
# Включить совместимость в 5.6
 +
sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION
 +
</pre>
 +
3) '''Перезагрузим''' сервер mysql  
 +
<pre>$sudo service mysql restart</pre>
 +
4) '''Подключаемся''' к mysql серверу и создаем пользователя и 2 базы.<br>
 +
passwd - пароль пользователя nataly.
 +
<pre>$mysql -uroot -pqwerty
 +
mysql>CREATE USER 'nataly'@'%' IDENTIFIED BY 'passwd';
 +
mysql>GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABLESPACE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT,
 +
INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE, LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER ON *.* TO 'nataly'@'%' WITH GRANT OPTION;
 +
mysql>FLUSH PRIVILEGES;
 +
mysql>create database new;
 +
mysql>create database kadry;
 +
mysql>\q</pre>
 +
5) Базы созданы, теперь можно '''накатывать дампы''' на сервер:
 +
<pre>$mysql -uroot -pqwerty new < /var/mis/new.dump.sql
 +
$mysql -uroot -pqwerty kadry < /var/mis/kadry.dump.sql</pre>
  
 
''Базы успешно перенесены''
 
''Базы успешно перенесены''
  
 
====== Назначаем права на папку МИС ======
 
====== Назначаем права на папку МИС ======
<pre>$sudo chown -R :usermis /var/mis
+
<pre>$sudo chown -R :usermis /var/mis/mysql
$sudo chmod -R 0770 /var/mis
+
$sudo chmod -R 0660 /var/mis/mysql
$cd /var/mis/
+
$cd /var/mis
$find * -type d -print0 | xargs -0 sudo chmod 0750</pre>
+
$find * -type d -print0 | xargs -0 sudo chmod 0770</pre>
 
 
====== Создаем пользователей программы ======
 
''Иванов Иван Иванович''
 
 
 
'''Заводим''' пользователя '''в систему''' <code>$sudo useradd -s /usr/bin/nologin -g usermis ivanovii</code>
 
  
'''Добавляем''' пользователя '''в SAMBA''' <code>$sudo smbpasswd -a ivanovii</code>
+
====== Редактируем файл sql.cfg ======
 +
Можно с виндовой машины. Файл лежит на новом сервере с путем '''//ip_addr_serv/mysql/programm/sql.cfg'''<br>
 +
Допустим IP адресс нового сервера 192.168.1.5, тогда файл должен выглядеть примерно так.
 +
<pre>192.168.1.5;new;//192.168.1.5/mysql/programm/</pre>
  
 +
====== Создаем пользователей samba ======
 +
''Иванов Иван Иванович''<br>
 +
'''Заводим''' пользователя '''в систему'''
 +
<pre>$sudo useradd -s /usr/bin/nologin -g usermis ivanovii</pre>
 +
'''Добавляем''' пользователя '''в SAMBA'''
 +
<pre>$sudo smbpasswd -a ivanovii
 +
$sudo smbpasswd -e ivanovii</pre>
 
''Заводим сколько требуется пользователей''
 
''Заводим сколько требуется пользователей''
  
 
<u>Сервер готов!</u>
 
<u>Сервер готов!</u>

Текущая версия на 22:24, 6 февраля 2017

В данной статье будет описан процесс установки и настройки сервера «Медицинской информационной системы» на основе Ubuntu Server 16.04.1 LTS.
Основную часть этого мануала написал Малахов С.М. (Большая ему благодарность), а я только немного добавил и исправил ошибки.

Часть I Подготовка

1) Скачиваем дистрибутив операционной системы. Автором данной статьи использовалась Ubuntu 16.04 LTS, но вы можете выбрать другой.

2) Записываем образ на cd-диск / USB-диск / монтируем образ через IPMI (или другим интерфейсом управления сервером).

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

Часть II Установка

  1. Загружаем с выбранного носителя и приступаем к установке.
  2. Выбираем язык
  3. При выборе раскладки - выбираем -нет
  4. Выбираем страну
  5. Выбираем способ переключения языков
  6. Задаем имя нашего сервера. Выбор имени сервера оставляем за вами.
  7. Создаем нового пользователя. Имя пользователя должно быть отличным от administrator, admin, root. Этот пользователь будет sudo user, и может выполнять команд от имени root.
  8. Настраиваем часовой пояс как Europe/Moscow.

Разметка диска

Предполагается, что вы будете использовать зеркальный рейд (raid 1 mirror), поэтому будем использовать программный MD (Multiple Devices) рейд, он не требует наличия аппаратного рейд контроллера (но вы можете пользоваться и им).

  1. Выбираем пункт Вручную
  2. Создаем новую пустую таблицу разделов на каждом диске
  3. У нас появился пункт "настройка программного RAID" выбираем его. Нажимаем создать MD устройство -> выбираем RAID1 -> число разделов 2 -> число резервных 0 -> пробелом выбираем 2 диска (sda sdb). Сохраняем изменения.
  4. Теперь настроим логические тома. Выбираем пункт Настройка менеджера логических дисков (LVM), и первым делом создаем группу томов. Называем ее gr0 и включаем в нее созданный ранее рейд массив.
  5. Далее создаем логические тома. Выбираем группу gr0 и делаем согласно таблице ниже:
Название тома Примерный размер
boot 512Mb
root 10 - 80 Gb
swap 2 - 4 Gb
var 100 - 200 Gb
home Оставшееся место

В итоге у нас получилось 5 томов (boot - загрузчик grub; root - системные файлы; swap - файл подкачки; var - под программу МИС и MySQL; home - домашняя директория), нажимаем закончить.

Далее создаем точки монтирования для созданных томов согласно таблице:

ТОМ Использовать как Точка монтирования
boot ext4 /boot
root ext4 /
swap раздел подкачки отсутствует
var ext4 /var
home ext4 /home

Закончить разметку и записать изменения на диск.

Завершение установки

Далее система установит все необходимое, просто наблюдаем. Тип обновлений "без автоматического обновления"; из программного обеспечения выберите Samba,OpenSSH Server и стандартные системные утилиты.

GRUB устанавливаем в главную загрузочную запись.

Система успешно установлена.

Далее можно либо продолжать работать через консоль, либо подключиться по SSH[1]

Часть III Настройка системы

Подготовим систему
  1. Заходим в систему используя созданную учетную запись
  2. Обновляем пакеты и апгрейдим систему
    $ sudo apt-get update && sudo apt-get upgrade -y && sudo reboot
  3. После перезагрузки, доставим необходимые пакеты
    $ sudo apt install mysql-server-5.7 mysql-client-5.7 mc
  4. Во время установки mysql сервера вас попросят задать пароль пользователя mysql root, пишите qwerty
  5. После установки можно проверить версию mysql
    $ mysql --version
Настраиваем сеть.

Находим название сетевого интерфейса

$ ifconfig
enp0s3    Link encap:Ethernet  HWaddr 08:00:27:58:54:bb  
          inet addr:192.168.1.143  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: fe80::a00:27ff:fe58:54bb/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:3423 errors:0 dropped:0 overruns:0 frame:0
          TX packets:878 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000 
          RX bytes:1989544 (1.9 MB)  TX bytes:84171 (84.1 KB)

lo        Link encap:Локальная петля (Loopback)  
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:65536  Metric:1
          RX packets:166 errors:0 dropped:0 overruns:0 frame:0
          TX packets:166 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1 
          RX bytes:12178 (12.1 KB)  TX bytes:12178 (12.1 KB)

В нашем случае - это enp0s3

$ sudo nano /etc/network/interfaces

auto enp0s3
iface enp0s3 inet static
address 192.168.1.5
netmask 255.255.255.0
gateway 192.168.1.1
dns-nameservers 192.168.1.1 8.8.8.8

Перезапускам сетевой интерфейс и проверяем настройки сети:

sudo ifdown -a && sudo ifup -a
$ifconfig
eth0      Link encap:Ethernet  HWaddr xx:xx:xx:xx:xx:xx
          inet addr:192.168.1.5  Bcast:192.168.1.255  Mask:255.255.255.0
          inet6 addr: xxxx:xxxx:xxxx:xxxx:xxxx:xxxx/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:126785 errors:0 dropped:0 overruns:0 frame:0
          TX packets:135453 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:116474217 (116.4 MB)  TX bytes:102473947 (102.4 MB)

lo        Link encap:Локальная петля (Loopback)
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:104371 errors:0 dropped:0 overruns:0 frame:0
          TX packets:104371 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:720253620 (720.2 MB)  TX bytes:720253620 (720.2 MB)


Настроим SMB
  1. Скопируем стандартный файл конфигурации $sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.dist
  2. Очистим smb.conf $sudo echo 1>/etc/samba/smb.conf
  3. Отредактируем
    $sudo nano /etc/samba/smb.conf
    сохраняем комбинацией клавиш ctrl + O, ctrl + X для выхода

    содержимое smb.conf
[global]
    server string = Medical Information System MIAC
    workgroup = WORKGROUP
    netbios name = MIS
    server string = MIS Server

    # need for netbios informations sharing over the network
    wins support = Yes
    directory mask = 0775
    create mask = 0664
    log file = /var/log/samba/%m.log
    max log size = 50
    syslog = 0

    # this way samba will not ask for password to connect to the machine
    security = user
    passdb backend = tdbsam
    // в каком порядке использовать сервисы имен для получения IP адреса.
    // bcast : Сделать широковещательный запрос по всем известным интерфейсам. 
    // Это самый ненадежный из всех методов определения имен, т.к. зависит от подключения 
    // компьютера к локальной сети.
    name resolve order = bcast host
    
    acl allow execute always = True

[homes]
    comment = Home Directories
    valid users = %S
    #path = /home/%S/
    path = /home/%U/mis/
    browseable = no
    #writable = yes
    read only = no

 
[mysql]
    comment = MIS base  Directories
    path = /var/mis
    public = yes
    printable = no
    read only = no
    admin users = user1,user2
    # В данном устройстве файлы будут создаваться, как есть
    preserve case = yes
    short preserve case = yes
    default case = lower
    directory mask = 0777
    create mask = 0666
    force group = usermis

4. Создадим группу пользователей МИС

$sudo groupadd usermis

и добавим нашего пользователя в SAMBA

$sudo smbpasswd -a %USERNAME%
$sudo smbpasswd -e %USERNAME%

где %USERNAME% имя вашей учетной записи,
а также добавим его в группу usermis

$sudo usermod -a -G usermis %USERNAME%

5. Создаем папку для программы МИС

$sudo mkdir /var/mis

и назначим права на папку

$sudo chown :usermis /var/mis && sudo chmod 770 /var/mis

6. Перезагрузим smbd

$sudo service smbd restart
Создаем дампы МИС

1) Идем на сервер с МИС и открываем командную строку cmd.exe

2) Переходим по пути где лежат исполняемые файлы mysql (D:\mysql\bin) и набираем в командной строке:

D:
cd mysql\bin
mysqldump -uroot -pqwerty new > d:\new.dump.sql
mysqldump -uroot -pqwerty kadry > d:\kadry.dump.sql

3) Сейчас мы можем открыть расшаренную папку linux сервера либо по ip-адресу либо по net-bios имени, и скопировать туда программу МИС и свежие дампы mysql

Настройка MySQL сервера

1) Делаем архив файла конфигурации

cd  /etc/mysql/mysql.conf.d
$sudo cp mysqld.cnf mysqld.cnf.dist

2) Редактируем файл mysql.cnf

$sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

В блоке [mysqld] меняем

bind-address = 127.0.0.1

на

bind-address = 0.0.0.0

Добавляем строки в конец файла

# Кодировка
init_connect='SET NAMES cp1251'
character-set-server=cp1251
collation-server=cp1251_general_ci
skip-character-set-client-handshake 
lower_case_table_names=1
open_files_limit = 24000
join_buffer_size = 256K
# Чтобы не выхавала варнинги на DNS
skip-host-cache
skip-name-resolve
# Включить совместимость в 5.6
sql_mode=ONLY_FULL_GROUP_BY,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

3) Перезагрузим сервер mysql

$sudo service mysql restart

4) Подключаемся к mysql серверу и создаем пользователя и 2 базы.
passwd - пароль пользователя nataly.

$mysql -uroot -pqwerty
mysql>CREATE USER 'nataly'@'%' IDENTIFIED BY 'passwd';
mysql>GRANT EXECUTE, PROCESS, SELECT, SHOW DATABASES, SHOW VIEW, ALTER, ALTER ROUTINE, CREATE, CREATE ROUTINE, CREATE TABLESPACE, CREATE TEMPORARY TABLES, CREATE VIEW, DELETE, DROP, EVENT, 
INDEX, INSERT, REFERENCES, TRIGGER, UPDATE, CREATE USER, FILE, LOCK TABLES, RELOAD, REPLICATION CLIENT, REPLICATION SLAVE, SHUTDOWN, SUPER  ON *.* TO 'nataly'@'%' WITH GRANT OPTION;
mysql>FLUSH PRIVILEGES;
mysql>create database new;
mysql>create database kadry;
mysql>\q

5) Базы созданы, теперь можно накатывать дампы на сервер:

$mysql -uroot -pqwerty new < /var/mis/new.dump.sql
$mysql -uroot -pqwerty kadry < /var/mis/kadry.dump.sql

Базы успешно перенесены

Назначаем права на папку МИС
$sudo chown -R :usermis /var/mis/mysql
$sudo chmod -R 0660 /var/mis/mysql
$cd /var/mis
$find * -type d -print0 | xargs -0 sudo chmod 0770
Редактируем файл sql.cfg

Можно с виндовой машины. Файл лежит на новом сервере с путем //ip_addr_serv/mysql/programm/sql.cfg
Допустим IP адресс нового сервера 192.168.1.5, тогда файл должен выглядеть примерно так.

192.168.1.5;new;//192.168.1.5/mysql/programm/
Создаем пользователей samba

Иванов Иван Иванович
Заводим пользователя в систему

$sudo useradd -s /usr/bin/nologin -g usermis ivanovii

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

$sudo smbpasswd -a ivanovii
$sudo smbpasswd -e ivanovii

Заводим сколько требуется пользователей

Сервер готов!