Помощь

Структура системы

Сервер

Серверное оборудование

В качестве сервера используется микрокомпьютер Raspberry Pi 2, в корпусе с системой охлаждения.
Операционная система устанавливается на microSD карту, (рекомендуемый объем - 16ГБ). Для резервирования базы данных используются 2 внешние USB flash-карты уменьшенного форм-фактора и одинакового объема (рекомендуемый объем - 16ГБ). Требуется постоянное подключение к интернету или другому источнику точного времени (например, GPS).
Требуется источник бесперебойного питания.

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

Запись операционной системы Raspbian Lite на microSD карту:

sudo dd bs=4M if=2019-04-08-raspbian-stretch-lite.img of=/dev/sdd

Настройка конфигурации: сменить пароль, включить ssh, настроить часовой пояс, включить профиль разгона "Pi2".

Expand Filesystem
Internationalization Options
	Locale: ru.utf8
	Timezone: Asia/Almaty
Overclock:
	Profile: Pi2
Advanced Options:
	hostname: timecoding.local
	SSH: Enable

Обновление системы:

sudo apt update
sudo apt upgrade

Установка статического IP адреса в файле /etc/dhcpcd.conf

static ip_address=192.168.0.246/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1

Установка NTP:

sudo apt install ntp

Разрешение вещания времени в сеть в файле /etc/ntp.conf

broadcast 192.168.0.255

Установка NGINX:

sudo apt install curl gnupg2 ca-certificates lsb-release
echo "deb http://nginx.org/packages/debian `lsb_release -cs` nginx" \
    | sudo tee /etc/apt/sources.list.d/nginx.list
curl -fsSL https://nginx.org/keys/nginx_signing.key | sudo apt-key add -
sudo apt update
sudo apt install nginx

Установка PHP-FPM и MySQL

sudo apt -y install lsb-release apt-transport-https ca-certificates 
sudo wget -O /etc/apt/trusted.gpg.d/php.gpg https://packages.sury.org/php/apt.gpg
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/php7.3.list
sudo apt update
sudo apt install php7.3-fpm php7.3-mbstring php7.3-mysql php7.3-xmlrpc
sudo apt install mysql-client mysql-server phpmyadmin
sudo mysql_secure_installation

Конфигурация NGINX, PHP, MySQL

https://www.nginx.com/resources/wiki/start/topics/recipes/drupal/

php.ini max_execution_time = 300;

mysql

backup -> FTP


Клиенты

Терминалы

Запись операционной системы Raspbian Wheezy на microSD карту:

sudo dd bs=4M if=2015-05-05-raspbian-wheezy.img of=/dev/sdd

Настройка конфигурации: сменить пароль, включить ssh, настроить часовой пояс, включить профиль разгона "turbo".

Expand Filesystem
Internationalization Options
	Locale: ru.utf8
	Timezone: Asia/Almaty
Overclock:
	Profile: turbo
Advanced Options:
	hostname: timecoding.terminal
	SSH: Enable

Установка драйвера монитора:

sudo wget http://timecoding.tk/misc/3.5-touchscreen-driver/LCD-show.tar.gz
sudo tar xvf LCD-show.tar.gz 
sudo cd LCD-show/
sudo ./LCD35-show

Настройка хоста сервера: в файле /etc/hosts создать ссылку на IP адрес сервера с доменом timecoding.local

192.168.0.246    timecoding.local

Настройка NTP: в файле /etc/ntp.conf добавить IP адрес TimeCoding сервера:

server timecoding.local iburst

Отключение засыпания экрана, в файле /etc/lightdm/lightdm.conf в разделе [SeatDefaults] необходимо добавить:

xserver-command=X -s 0 dpms

Установка браузера Chromium:

sudo apt-get install chromium-browser

Отключение отображения курсора на экране:

sudo apt-get install unclutter

Установка HTML загрузчика:

mkdir /home/pi/timecoding
touch /home/pi/timecoding/timecoding.loader.html

Вставить в файл /home/pi/timecoding/timecoding.loader.html текст:

<!DOCTYPE html>
<html lang="en">
 <head>
 <meta charset="utf-8">
 <title>Time Coding Loader</title>
 <meta name="viewport" content="width=device-width, initial-scale=1.0">
 <style>
 body{
  margin:0;
  overflow:hidden;
 }
 iframe{
  -webkit-transform: rotate(90deg);
  margin: -80px 80px;
 }
 </style>
 </head>
 <body onLoad="document.getElementById('timecoding_iframe').focus();">
 <iframe id="timecoding_iframe" width="320" height="480" frameBorder="0" scrolling="no"
src="http://i.timecoding.tk/terminal_touch.320x480.php?terminal_id=timecoding"></iframe>
 </body>
</html>

Настройка автозагрузки:

sudo mkdir -p /home/pi/.config/autostart
sudo touch /home/pi/.config/autostart/timecoding.desktop

В файл /home/pi/.config/autostart/timecoding.desktop внести:

[Desktop Entry]
Type=Application
Exec=chromium-browser -incognito -kiosk /home/pi/timecoding/timecoding.loader.html

Дополнительное оборудование

Дополнительное оборудование работает через интерфейс GPIO. Пример скрипта, подающего сигнал через GPIO 26 в течение 1 секунды:

#!/bin/bash
echo 26 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio26/direction
echo 1 > /sys/class/gpio/gpio26/value
sleep 1
echo 0 > /sys/class/gpio/gpio26/value
echo 26 > /sys/class/gpio/unexport

Настоятельно рекомендуется использовать оптроны, для оборудования с автономным питанием.