Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
doc:1513:643.mgul.15131-01_32_01 [2019/06/20 04:34] deimozzz создано |
doc:1513:643.mgul.15131-01_32_01 [2019/07/21 12:09] (текущий) deimozzz [5 Обязательные изменения в текстах программ] |
||
---|---|---|---|
Строка 160: | Строка 160: | ||
Смените владельца директории сайта на группу http | Смените владельца директории сайта на группу http | ||
$ chgrp –R http /var/www/site.ru/ | $ chgrp –R http /var/www/site.ru/ | ||
+ | | ||
+ | ===== 5 Обязательные изменения в текстах программ ===== | ||
+ | |||
+ | 1. Откройте в текстовом редакторе файл /core/baseinfo.php. | ||
+ | |||
+ | 2. Замените в нём: | ||
+ | * 'server' – если база данных и веб сервер находятся на одной машине, то замените на «localhost», иначе замените на адрес сервера с базой данных. | ||
+ | * 'user' – замените на логин пользователя базы данных. | ||
+ | * 'password' – замените на пароль пользователя базы данных. | ||
+ | * 'BD' – замените на название базы данных (по умолчанию Production). | ||
+ | |||
+ | 3. Сохраните изменения | ||
+ | |||
+ | 4. Откройте в текстовом редакторе файл /admin/config.php. | ||
+ | |||
+ | 5. Добавьте пользователей панели управления. | ||
+ | |||
+ | Шаблонный пример: | ||
+ | <code>$buffer['admin'] = ['password'=>'111','level'=>255]; </code> | ||
+ | В данной строке в массив buffer по индексу ‘admin’ вносится массив с паролем ‘12345’ и уровнем доступа ‘255’. Индекс – имя пользователя. Уровень доступа указывает к каким функциям пользователь имеет доступ: | ||
+ | |||
+ | **"1"** – только внесение новых данных. | ||
+ | |||
+ | **"2"** – внесение новых данных и данных калибровки и адресов датчиков. | ||
+ | |||
+ | **"127"** – добавление и редактирование объектов, операторов и приборов. | ||
+ | |||
+ | **"255"** – Полный доступ. | ||
+ | |||
+ | 6. Сохраните изменений | ||
+ | |||
+ | 7. Загрузите изменённые файлы в директорию сайта. | ||
+ | |||
====== Проверка системы ====== | ====== Проверка системы ====== | ||
Строка 208: | Строка 241: | ||
Введите Y. Перезагрузить таблицу привилегий для вступления их в силу. | Введите Y. Перезагрузить таблицу привилегий для вступления их в силу. | ||
+ | |||
+ | ====== ПРИЛОЖЕНИЕ 1 ====== | ||
+ | ===== Структура базы данных ===== | ||
+ | Для хранения данных используется следующая структура базы данных: | ||
+ | |||
+ | |||
+ | 1. **opr_list(N, Name)** – таблица содержащая данные о операторах. | ||
+ | *Столбцы: | ||
+ | ***N** – уникальный номер оператора(id). | ||
+ | ***Name** – имя оператора. | ||
+ | |||
+ | 2. **objects(NumOb, NameOb)** – таблица содержащая данные о объектах размещения приборов. | ||
+ | *Столбцы: | ||
+ | ***NumOb** – уникальный номер объекта размещения(id). | ||
+ | ***NameOb** – наименование объекта размещения. | ||
+ | |||
+ | 3. **units_list(uNum, uName, Serial, AKey, OPid, x, y, IDob)** – таблица со-держащая данные о используемых приборах. | ||
+ | *Столбцы: | ||
+ | ***uNum** – уникальный номер прибора(id). | ||
+ | ***uName** – наименование прибора. | ||
+ | ***Serial** – серийный номер прибора. | ||
+ | ***AKey** – ключ доступа прибора (используется для идентификации при-бора при передаче данных). | ||
+ | ***OPid** – уникальный номер оператора (берётся из таблицы OPR_list). | ||
+ | ***x** – координата размещения прибора Х. | ||
+ | ***y** – координата размещения прибора У. | ||
+ | ***IDob** – уникальный номер объекта размещения (берётся из таблицы Objects) | ||
+ | |||
+ | 4. **info(Num_i, Date, Prib_id, OpNum, ObjectId, x, y)** – таблица содержащая данные о сессиях передачи данных. | ||
+ | *Столбцы: | ||
+ | ***Num_i** – номер сессии передачи данных. | ||
+ | ***Date** – временной штамп сессии передачи данных. | ||
+ | ***Prib_id** – уникальный номер прибора передавшего данные (берётся из units_list) | ||
+ | ***OpNum** – уникальный номер оператора, закреплённого к прибору на момент сессии передачи данных (берётся из OPR_list) | ||
+ | ***ObjectId** – уникальный номер объекта размещения, где располагался прибор на момент сессии передачи данных. | ||
+ | ***x** – координата X размещения прибора на объекта размещения, на момент сессии передачи данных. | ||
+ | ***y** – координата Y размещения прибора на объекте размещения, на момент сессии передачи данных. | ||
+ | |||
+ | 5. **save_data(Num, Type, Value)** – таблица содержащая данные, полученные в процессе сессии передачи данных. | ||
+ | *Столбцы: | ||
+ | ***Num** – номер сессии, в процессе которой были переданы данные. | ||
+ | ***Type** – вид параметра, данные измерения которого были переданы. | ||
+ | ***Value** – значение данных для замеряемого параметра. | ||
+ | |||
+ | 6. **multiplier(unit, sensor, timestamp, ratio)** – таблица содержащая калибровочные данные датчиков. | ||
+ | *Столбцы: | ||
+ | ***unit** – уникальный номер прибора на котором установлен калибруемый датчик. | ||
+ | ***sensor** – наименование датчика, параметр, если он снимает несколько параметров, а так же номер датчика, если их несколько в одном приборе | ||
+ | ***timestamp** – временная привязка данных калибровки | ||
+ | ***ratio** – данные калибровки. | ||
+ | |||
+ | 7. **sensors_adr(id, unit_id, sensor, adr, timestamp, sensor_name, note)** – таблица содержащая адреса датчиков. | ||
+ | *Столбцы: | ||
+ | ***id** – уникальный номер записи | ||
+ | ***unit_id** – уникальный номер прибора на котором установлен датчик | ||
+ | ***sensor** – полное название параметра передаваемого датчиком | ||
+ | ***adr** – адрес датчика | ||
+ | ***timestamp** – время внесения данных | ||
+ | ***sensor_name** – короткое наименование параметра | ||
+ | ***note** – заметка о датчике и его применение | ||
+ | |||
+ | Далее представлена структура базы данных и взаимосвязь таблиц на рисунке 1. | ||
+ | |||
+ | {{:doc:1513:bd_after.png?nolink|}} | ||
+ | === Рисунок 1. === | ||
+ | |||
+ | |||
+ | ---- | ||
+ | |||
+ | ===== SQL запрос, для загрузки в новую базу данных созданной структуры ===== | ||
+ | |||
+ | <file sql inject.sql> | ||
+ | SET NAMES utf8mb4; | ||
+ | SET FOREIGN_KEY_CHECKS = 0; | ||
+ | |||
+ | -- ---------------------------- | ||
+ | -- Table structure for info | ||
+ | -- ---------------------------- | ||
+ | DROP TABLE IF EXISTS `info`; | ||
+ | CREATE TABLE `info` ( | ||
+ | `Num_i` int(1) UNSIGNED NOT NULL AUTO_INCREMENT, | ||
+ | `Date` datetime(0) NOT NULL DEFAULT CURRENT_TIMESTAMP, | ||
+ | `Prib_id` tinyint(1) UNSIGNED NOT NULL, | ||
+ | `OpNum` tinyint(1) UNSIGNED NOT NULL, | ||
+ | `ObjectId` tinyint(1) UNSIGNED NOT NULL, | ||
+ | `x` float(10, 5) NOT NULL, | ||
+ | `y` float(10, 5) NOT NULL, | ||
+ | PRIMARY KEY (`Num_i`) USING BTREE, | ||
+ | UNIQUE INDEX `Number_id_index`(`Num_i`) USING BTREE, | ||
+ | INDEX `date_index`(`Date`) USING BTREE, | ||
+ | INDEX `Unit_index`(`Prib_id`) USING BTREE | ||
+ | ) ENGINE = Aria CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Page; | ||
+ | |||
+ | -- ---------------------------- | ||
+ | -- Table structure for multiplier | ||
+ | -- ---------------------------- | ||
+ | DROP TABLE IF EXISTS `multiplier`; | ||
+ | CREATE TABLE `multiplier` ( | ||
+ | `unit` tinyint(1) NOT NULL, | ||
+ | `sensor` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | `timestamp` datetime(0) NOT NULL, | ||
+ | `ratio` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | `adr` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | INDEX `Unit_index_multip`(`unit`) USING BTREE | ||
+ | ) ENGINE = Aria CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Page; | ||
+ | |||
+ | -- ---------------------------- | ||
+ | -- Table structure for objects | ||
+ | -- ---------------------------- | ||
+ | DROP TABLE IF EXISTS `objects`; | ||
+ | CREATE TABLE `objects` ( | ||
+ | `NumOb` tinyint(1) UNSIGNED NOT NULL AUTO_INCREMENT, | ||
+ | `NameOb` varchar(35) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | PRIMARY KEY (`NumOb`) USING BTREE | ||
+ | ) ENGINE = Aria CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Page; | ||
+ | |||
+ | -- ---------------------------- | ||
+ | -- Table structure for opr_list | ||
+ | -- ---------------------------- | ||
+ | DROP TABLE IF EXISTS `opr_list`; | ||
+ | CREATE TABLE `opr_list` ( | ||
+ | `N` tinyint(1) UNSIGNED NOT NULL AUTO_INCREMENT, | ||
+ | `Name` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | PRIMARY KEY (`N`) USING BTREE | ||
+ | ) ENGINE = Aria CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Page; | ||
+ | |||
+ | -- ---------------------------- | ||
+ | -- Table structure for save_data | ||
+ | -- ---------------------------- | ||
+ | DROP TABLE IF EXISTS `save_data`; | ||
+ | CREATE TABLE `save_data` ( | ||
+ | `Num` int(1) UNSIGNED NOT NULL, | ||
+ | `Type` char(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | `Value` char(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | INDEX `Num_ses`(`Num`) USING BTREE, | ||
+ | INDEX `Type_value_index`(`Type`, `Value`) USING BTREE | ||
+ | ) ENGINE = Aria CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Page; | ||
+ | |||
+ | -- ---------------------------- | ||
+ | -- Table structure for sensors_adr | ||
+ | -- ---------------------------- | ||
+ | DROP TABLE IF EXISTS `sensors_adr`; | ||
+ | CREATE TABLE `sensors_adr` ( | ||
+ | `id` smallint(1) UNSIGNED NOT NULL AUTO_INCREMENT, | ||
+ | `unit_id` tinyint(1) UNSIGNED NOT NULL, | ||
+ | `sensor` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | `adr` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | `timestamp` datetime(0) NOT NULL, | ||
+ | `sensor_name` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | `note` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, | ||
+ | PRIMARY KEY (`id`) USING BTREE | ||
+ | ) ENGINE = Aria CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Page; | ||
+ | |||
+ | -- ---------------------------- | ||
+ | -- Table structure for units_list | ||
+ | -- ---------------------------- | ||
+ | DROP TABLE IF EXISTS `units_list`; | ||
+ | CREATE TABLE `units_list` ( | ||
+ | `uNum` tinyint(1) UNSIGNED NOT NULL AUTO_INCREMENT, | ||
+ | `uName` varchar(25) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | `Serial` varchar(15) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL, | ||
+ | `AKey` varchar(30) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL, | ||
+ | `OPid` tinyint(1) UNSIGNED NOT NULL, | ||
+ | `x` float(10, 5) NOT NULL, | ||
+ | `y` float(10, 5) NOT NULL, | ||
+ | `IDob` tinyint(1) UNSIGNED NOT NULL, | ||
+ | `remove` bit(1) NOT NULL, | ||
+ | PRIMARY KEY (`uNum`) USING BTREE, | ||
+ | UNIQUE INDEX `Units`(`uNum`, `uName`) USING BTREE | ||
+ | ) ENGINE = Aria CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Page; | ||
+ | |||
+ | SET FOREIGN_KEY_CHECKS = 1; | ||
+ | |||
+ | </file> |