# Установка системы в среде Linux server

### Установка зависимостей на Ubuntu server

### Установка чистой ОС

Для установки vsDesk на Ubuntu server, необходимо выполнить чистую установку ОС на выделенный или виртуальный сервер. Для работы системы требуется Ubuntu server X64  [24.04 LTS](https://releases.ubuntu.com/24.04/ubuntu-24.04.2-live-server-amd64.iso), а так же Отечественные ОС [Astra Linux 1.8.1 SE](https://astralinux.ru) и [Red OS 7.3 - 8](https://redos.red-soft.ru/product/downloads/). Выполните установку с настройками по умолчанию. При выборе Программного обеспечения во время установки, необходимо дополнительно выбрать ТОЛЬКО OpenSSH server, остальные компоненты должны быть оставлены в значениях, заданных по умолчанию.

### Установка зависимостей из скрипта

После установки ОС, Вам нужно загрузить скачанный дистрибутив демо или полной версии на свежеустановленный Ubuntu server. Сделать это можно по протоколу SFTP с использованием файловых менеджеров или приложения [WinSCP](https://winscp.net/eng/download.php), если вы используете Windows окружение. Предполагаем, что вы скопировали дистрибутив в домашний каталог пользователя.

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

```bash
sudo mkdir /var/www/vsdesk
sudo cp vsdesk_demo.tar.bz2 /var/www/vsdesk
cd /var/www/vsdesk
sudo tar -xvf /var/www/vsdesk/vsdesk_demo.tar.bz2
cd lib/
```

#### для Ubuntu 24.04

```bash
sudo sh ubuntu.sh
```

Пример установки на Ubuntu 24.04 не отличается от Ubuntu 22.04

{% embed url="<https://vimeo.com/997646257>" %}
Пример установки из скрипта на Ubuntu server 22.04
{% endembed %}

**для Astra Linux 1.81 SE**

```bash
sudo sh astra.sh
```

{% embed url="<https://vimeo.com/997644083>" %}
Пример установки из скрипта на Astra Linux Orel
{% endembed %}

**для Red OS 7.3 - 8**

```bash
sudo sh redos.sh
```

{% embed url="<https://vimeo.com/997645699>" %}
Пример установки из скрипта на Red OS Murom
{% endembed %}

После этого запустится скрипт установки зависимостей. В процессе установки от вас потребуется создать, запомнить и ввести пароль для mySQL пользователя vsdesk. По завершении установки зависимостей, веб-установщик или рабочая демо-версия системы будут доступны в браузере по IP-адресу сервера.&#x20;

## Обновление версии PHP до 8.3 для устаревших релизов

Все установленные дистрибутивы начиная с версии 12.0112 уже поставляются с PHP 8.3 и им обновление версии PHP не требуется!

**Для обновления старых версий PHP до 8.3. на Ubuntu, начиная с версии 22.04 необходимо выполнить скрипт:**

```bash
cd /var/www/vsdesk/lib
sudo sh ubuntu_update_php83.sh
```

**Для обновления старых версий PHP до 8.3. на RedOS 7.3 необходимо выполнить команды:**

```bash
dnf install php83-release 
dnf clean all
dnf makecache 
dnf update php*
yum remove php php-common php-imap php-ldap php-mysqli php-gd php-odbc
dnf install php php-common php-imap php-ldap php-mysqli php-gd php-mcrypt php-odbc php-zip
yum remove php-fpm
dnf update pcre pcre2
sudo cp -f /var/www/vsdesk/lib/ioncube_loader_lin_8.3.so /usr/lib/php/ioncube_loader_lin_8.3.so
sudo cp -f /var/www/vsdesk/lib/php8.ini /etc/php.ini
systemctl restart httpd
systemctl restart mariadb
```

**Обновление Astra Linux Orel CE до версии PHP 8.3 невозможно, из-за отсутсвия поддержки данных версий на уровне ОС.**

## Установка зависимостей на другие Linux дистрибутивы

### Установка зависимостей вручную

Ниже приведены требования для установки системы на другие Linux системы без использования скрипта установки зависимостей. **Если вы выполнили установку зависимостей из скрипта, то данные действия выполнять не нужно, сразу перейдите к установке системы.**\
Требования для установки системы:

* Linux server X64;
* Apache 2.4;
* PHP версии 8.2 - 8.3 (не выше);
* MySQL > 5.7 или Maria DB > 10;

Установлены следующие PHP extensions и пакеты:

* php
* php-common
* php-gd
* php-imap
* php-ldap
* php-imagick
* php-mbstring
* php-mcrypt
* php-curl
* php-mysql
* php-mysqli
* php-zip
* php-xml
* apache2
* libapache2-mod-php
* mysql-server
* mysql-client
* zip
* git

Необходимо заменить файлы php.ini на файл из дистрибутива /lib/php.ini /etc/php/phpX.X/apache2/php.ini и /etc/php/phpX.X/cli/php.ini

Необходимо скопировать файл из дистрибутива /lib/ioncube\_loader\_lin\_X.X.so в папку /usr/lib/php/

Учтите что указанные пути и названия пакетов могут отличаться в зависимости от версии ОС.

Убедитесь, что включен модуль apache2 `mod_rewrite`

После этого скопируйте с заменой из дистрибутива файл /lib/000-default.conf директорию /etc/apache2/sites-enabled или вносим изменения в данном разделе, заменив AllowOverride None на AllowOverride All или замените содержимое файла на:

```
<VirtualHost *:80>
        ServerAdmin webmaster@localhost
        ServerName vsdesk
        ServerAlias vsdesk.yourdomain.com
        DocumentRoot /var/www/vsdesk
<Directory />
                Options FollowSymLinks
                AllowOverride All

</Directory>
<Directory /var/www/vsdesk/>
                Options Indexes FollowSymLinks MultiViews
                AllowOverride All
                Order allow,deny
                allow from all       
</Directory>
        ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/        
<Directory "/usr/lib/cgi-bin">
                AllowOverride None
                Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
                Order allow,deny
                Allow from all
</Directory>
        ErrorLog ${APACHE_LOG_DIR}/error.log

        # Possible values include: debug, info, notice, warn, error, crit,
        # alert, emerg.
        LogLevel warn

        CustomLog ${APACHE_LOG_DIR}/access.log combined    
</VirtualHost>
```

Распакуйте содержимое дистрибутива в папку /var/www/vsdesk и задайте права на запись для пользователя из под которого запускается веб-серер apache2.

После этого создайте базу данных, имя и пароль пользователя задаются при установке MySQL или выдаются при регистрации хостинга.

После создания БД, наберите в браузере URL вашего домена, например,

<http://yourdomain.ltd>

## Установка системы

### Проверка требований перед установкой

![Проверка требований перед установкой](https://3807933561-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcpteH47XFJvwR4kSbU%2Fuploads%2FPvAtIkX9oUkIHhU6Iyh9%2Finstall_01.png?alt=media\&token=c17d9d60-08b3-492a-b188-86b0d9a44f6a)

Если хотя бы одно требование не будет выполнено, то установка не будет продолжена.

После выполнения всех требований можете продолжить установку системы.

### Проверка подключения к БД

![Проверка подключения к БД](https://3807933561-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcpteH47XFJvwR4kSbU%2Fuploads%2FUHj6VJNzcMzc4qrb5IXY%2Finstall_002.png?alt=media\&token=03a0029b-f894-46c4-b55a-89a45c2370b7)

На данном этапе необходимо ввести корректные параметры подключения к БД:\
1\. **Хост БД**- адрес MySQL сервера, на котором располагается БД.\
2\. **Имя БД**- имя базы созданной на этапе предварительной настройки сервера.\
3\. **Пользователь БД**- учетная запись, имеющая права на запись в выбранную БД.\
4\. **Пароль БД**- пароль учетной записи, имеющей права на запись в выбранную БД.\
5\. **Создавать базу, если она не существует**- данный переключатель позволяет создать базу с указанным именем в БД, при наличии прав.\
6\. **Новая установка?**- переключатель позволяет выбрать вариант установки - новая Установка или Обновление с предыдущей версии ПО.\
7\. **Проверить подключение к БД -** кнопка позволяет проверить подключение с указанными параметрами. Если указанное имя БД не существует, то проверка покажет ошибку, в данном случае можно продолжать установку и БД будет создана.

### Параметры отправки уведомлений и настройки планировщика

![Параметры отправки уведомлений и настройки планировщика](https://3807933561-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcpteH47XFJvwR4kSbU%2Fuploads%2FlSvl136wky3uGnliLcrz%2Finstall_03.png?alt=media\&token=aa79d832-4008-46c1-9e95-0e234bb7ee21)

На данном шаге предлагается заполнить параметры подключения к SMTP-серверу, используемому для отправки E-mail уведомлений:\
1\. **SMTP сервер** - имя сервера который будет выполнять отправку уведомлений. Если Ваш сервер использует SSL или TLS, эти настройки можно будет установить после установки системы.\
2\. **SMTP порт** - порт по которому работает SMTP сервер. При использовании SSL подключения порт может быть отличен от 25, например 465 или 587.\
3\. **Пользователь SMTP** - учетная запись пользователя, которая используется для отправки.\
4\. **Пароль SMTP** - пароль учетной записи, которая используется для отправки.\
5\. **E-mail администратора** - адрес администратора системы, который будет использоваться для отправки системных уведомлений или критических ошибок.\
6\. **E-mail отправителя** - обычно это адрес учетной записи, которая используется для отправки.\
7\. **Текст поля ОТ** - это имя отправителя, которое будет отображаться при получении уведомлений по E-mail.\
8\. **Установить задачи планировщика** - если вы используете в качестве сервера выделенный VDS или собственную площадку, то установите этот переключатель в положение Да. Если вы устанавливаете систему на Shared хостинг, то при установке данного переключателя **могут быть перезаписаны все задания планировщика CRON для всех хостов!**

### Установка успешно завершена

![Установка успешно завершена](https://3807933561-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LcpteH47XFJvwR4kSbU%2Fuploads%2FqlOjJGXTjkmzyXnUt1Bh%2Finstall_04.png?alt=media\&token=f7dd4ba5-41f2-4524-834e-80329f385ab0)

После успешной установки или обновления вы увидите следующее сообщение, в котором будет указано успешно ли прошла установка и в случае успеха, установщик предложит перейти на главную страницу.

### Окно входа в систему

![Окно входа в систему](https://3807933561-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-LcpteH47XFJvwR4kSbU%2F-LcptfHnHpLiBqToxGkr%2F-Lcpth46kOwfwLoogiFt%2Flogin.jpg?generation=1555682487042138\&alt=media)

После удачной установки системы необходимо произвести первичные настройки и заполнить актуальной информацией систему, т.к. по умолчанию в системе установлены демонстрационные данные. Для входа в систему на странице авторизации используются следующие логины и пароли:\
Пользователь с ролью администратора:\
**Login: admin**\
**Password: admin**\
Пользователь с ролью исполнителя:\
**Login: manager**\
**Password: manager**\
Пользователь с ролью заявителя:\
**Login: user**\
**Password: user**
