Skip to content
  • Категории
  • Последние
  • Метки
  • Популярные
  • World
  • Пользователи
  • Группы
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • По умолчанию (Darkly)
  • Нет скина
Collapse

База знаний (кластер NBICS)

  1. Главная
  2. Цифровая платформа NBICS
  3. NBICS - установка на Debian 12

NBICS - установка на Debian 12

Запланировано Прикреплена Закрыта Перенесена Цифровая платформа NBICS
13 Сообщения 1 Posters 10 Просмотры 1 Watching
  • Сначала старые
  • Сначала новые
  • По количеству голосов
Ответить
  • Ответить, создав новую тему
Авторизуйтесь, чтобы ответить
Эта тема была удалена. Только пользователи с правом управления темами могут её видеть.
  • A Не в сети
    A Не в сети
    Admin
    написал отредактировано
    #1

    Содержание

    1 ответ Последний ответ
    0
    • A Не в сети
      A Не в сети
      Admin
      написал отредактировано Admin
      #2

      1. Обновляем систему

      sudo apt update && sudo apt upgrade
      
      1 ответ Последний ответ
      0
      • A Не в сети
        A Не в сети
        Admin
        написал отредактировано Admin
        #3

        2. Устанавливаем зависимости

        sudo apt install gnupg2 apt-transport-https wget curl unzip
        
        1 ответ Последний ответ
        0
        • A Не в сети
          A Не в сети
          Admin
          написал отредактировано
          #4

          3. Устанавливаем SQL Server 2022

          3.1. Добавляем ключ GPG для MS SQL Server

          wget -q -O- https://packages.microsoft.com/keys/microsoft.asc | \
          gpg --dearmor | sudo tee /usr/share/keyrings/microsoft.gpg > /dev/null 2>&1
          

          3.2. Добавляем репозиторий MS SQL Server

          echo "deb [signed-by=/usr/share/keyrings/microsoft.gpg arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/22.04/mssql-server-2022 jammy main" | \
          sudo tee /etc/apt/sources.list.d/mssql-server-2022.list
          

          3.3. Обновляем репозиторий

          sudo apt update
          

          3.4. Устанавливаем SQL Server

          sudo apt install mssql-server
          

          3.5. Для завершения установки выполняем команду

          sudo /opt/mssql/bin/mssql-conf setup
          

          3.6. Настраиваем SQL Server

          • Выбираем 3 (Express)
            
          • Принимаем условия лицензии (Yes)
            
          • Выбираем цифру 9 (русский язык)
            
          • Вводим дважды пароль системного администратора
            

          3.7. Включаем службу и проверяем её статус

          sudo systemctl is-enabled mssql-server
          sudo systemctl status mssql-server
          

          3.8. Устанавливаем MS SQL Tools для терминала

          echo "deb [signed-by=/usr/share/keyrings/microsoft.gpg arch=amd64,armhf,arm64] https://packages.microsoft.com/ubuntu/22.04/prod jammy main" | \
          sudo tee /etc/apt/sources.list.d/prod.list
          
          sudo apt update
          
          sudo apt install mssql-tools unixodbc-dev
          
          echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> /etc/environment
          source /etc/environment
          echo $PATH
          

          3.9. Проверяем вход в SQL Server

          sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -p
          

          Попросит ввести пароль и впустит в командную строку SQL
          Вводим exit для выхода из интерпретатора.

          1 ответ Последний ответ
          0
          • A Не в сети
            A Не в сети
            Admin
            написал отредактировано Admin
            #5

            4. Устанавливаем Dotnet 8.0

            sudo apt-get update
            sudo apt-get install -y dotnet-sdk-8.0
            
            wget https://packages.microsoft.com/config/debian/12/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
            sudo dpkg -i packages-microsoft-prod.deb
            rm packages-microsoft-prod.deb
            
            sudo apt-get update
            sudo apt-get install -y aspnetcore-runtime-8.0
            
            1 ответ Последний ответ
            0
            • A Не в сети
              A Не в сети
              Admin
              написал отредактировано Admin
              #6

              5. Скачивание и распаковка сайта и базы данных

              5.1. Создаём каталог для скачиваемых ресурсов

              sudo mkdir -p /home/nbics_archive
              

              5.2. Скачиваем по очереди туда сайт и базу данных

              sudo wget -O /home/nbics_archive/school-sample.nbics.net_2025_02_04.zip "https://>nextcloud.nbics.net/index.php/s/zJzBRENozBycTde/download"
              
              sudo wget -O /home/nbics_archive/VSM_School-sample_Web_2025_02_04.bak "https://>nextcloud.nbics.net/index.php/s/8nSLXAcyrGjrook/download"
              

              Внимание! Проверяйте работоспособность ссылок.


              5.3. Создаём каталог для сайта (если уже существует, ничего страшного)

              sudo mkdir -p /var/www
              

              5.4. Распаковываем архив с сайтом в созданный каталог

              sudo unzip /home/nbics_archive/school-sample.nbics.net_2025_02_04.zip -d /var/www
              

              5.5. Создаём каталог для бэкапа базы данных

              sudo mkdir -p /var/opt/mssql/backup/
              

              5.6. Копируем туда бэкап (если он там есть, то перезаписи не будет)

              sudo cp -n /home/nbics_archive/VSM_School-sample_Web_2025_02_04.bak /var/opt/mssql/backup/
              

              5.7. Дать права на новый каталог (!! проверить, возможно команда не нужна !!)

              sudo chown -R mssql:mssql /var/opt/mssql/backup/
              
              1 ответ Последний ответ
              0
              • A Не в сети
                A Не в сети
                Admin
                написал отредактировано Admin
                #7

                6. Восстановление базы данных

                6.1. Заходим в интерпретатор SQL

                sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -p
                

                Вводим пароль.


                6.2. Восстанавливаем базу данных командами

                USE [master]
                RESTORE DATABASE [VSM_School-sample_Web] FROM DISK = N'/var/opt/mssql/backup/VSM_School-sample_Web_2025_02_04.bak'
                WITH FILE = 1,
                MOVE N'VSM_School-sample_Web' TO N'/var/opt/mssql/data/ExtraSql/VSM_School-sample_Web.mdf',
                MOVE N'VSM_School-sample_Web_MSGS' TO N'/var/opt/mssql/data/ExtraSql/VSM_School-sample_Web.ndf',
                MOVE N'VSM_School-sample_Web_1' TO N'/var/opt/mssql/log/ExtraSql/VSM_School-sample_Web_1.ldf',
                NOUNLOAD,
                STATS = 5;
                GO
                

                6.3. Проверяем созданную базу

                - Просмотр списка баз данных:

                SELECT name FROM sys.databases;
                GO
                

                Будет так:

                name
                ----------------------------
                master
                tempdb
                model
                msdb
                VSM_School-sample_Web

                (5 rows affected)

                ..............................
                - Переключение на вашу восстановленную базу данных:

                USE [VSM_School-sample_Web];
                GO
                

                Будет так:

                Changed database context to 'VSM_School-sample_Web'.

                ..............................
                - Просмотр списка таблиц в вашей базе данных:

                SELECT name FROM sys.tables;
                GO
                

                Будет примерно так:

                name
                ------------------------------------------------
                PersPhysical
                RoleUserRelations
                Files
                WebPages
                ConfigurationsTree
                WebPageResources
                CourseVersionConfigurationsTree
                TableFiles
                Enums
                Qualifiers
                RegisteredAssemblies
                Stat
                CourseConfigurationAccess
                Talks
                TypeRelations
                Quals
                TalkMembers
                QualRels
                Entities
                AssembliesReferences
                GlobalSettings
                Messages
                Meta
                PluginLog
                Tables
                Permissions
                Relations
                Qualifiers
                MetaGroup
                MessageFiles
                PrincipalSettings
                Entities
                Docs
                MessageConfigurationsTree
                Timers
                EntityStates
                Quals
                Sites
                RelationStates
                Enums
                Rels
                SiteUsers
                TalkMemberMessages
                Strs
                SitePlugins
                Addresses
                Territories
                UserDevices
                Captcha
                Groups
                Objects
                Fields
                VersionFiles
                VersionConfigurationsTree
                SmallInts
                GroupTalk
                Roles
                SocialNetworksUsers
                Users

                (59 rows affected)


                ..............................
                - Выполнение простого запроса к вашей базе данных (например, выборка первых 10 строк из таблицы):

                SELECT TOP 10 * FROM Enums;
                GO
                

                Будет что-то типа этого:

                Enum Id Code Alias Name > Memo From To > Flag0 Flag1 Flag2 Flag3 Flag4 Flag5 Flag6 Flag7 ImportSrc ImportId ImportCode >Imports Header Enum_Code
                ---- --- ------------------------------- --------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- ------ ------ ----- ----- ----- ----- ----- ----- ----- ----- --------- ----------- ------------------------------------ ------- ------ ---------
                0 0 ТПД Типы данных Типы данных > NULL NULL > NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL NULL > 255 0 NULL
                0 36 uniqueidentifier uniqueidentifier uniqueidentifier

                И ТАК ДАЛЕЕ....

                ВНИМАНИЕ!! После этого команда exit для выхода из интерпретатора может не сработать (а может и сработать). Придётся закрыть терминал или сеанс SSH, и снова открыть.
                После повторного открытия в следующие разы выход из интерпретатора SQL с помощью команды exit будет нормальным.

                1 ответ Последний ответ
                0
                • A Не в сети
                  A Не в сети
                  Admin
                  написал отредактировано
                  #8

                  7. Создаём аккаунт wcf для базы данных

                  sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -p
                  
                  CREATE LOGIN [wcf] WITH PASSWORD = 'Debian123', DEFAULT_DATABASE=[master], DEFAULT_LANGUAGE=[us_english], CHECK_EXPIRATION=OFF, CHECK_POLICY=OFF
                  GO
                  

                  Выходим (exit)

                  Проверяем существование wcf

                  sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U wcf -p
                  

                  Вводим пароль

                  Если появилась строка приглашения ко вводу команд - выходим (exit)

                  Входим опять под SA

                  sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -p
                  

                  Даём права на БД для wcf

                  USE [VSM_School-sample_Web]
                  GO
                  alter user wcf with login = wcf
                  GO
                  
                  exit
                  

                  !!! ВНИМАНИЕ !!!
                  Если при создании логина для wcf впишем параметр CHECK_EXPIRATION=ON то пароль от wcf автоматически сбросится через 90 дней.
                  Проверить это можно войдя в учётку wcf, и введя команду

                  select LOGINPROPERTY('wcf','DaysUntilExpiration')
                  

                  Чтобы предотвратить сброс нужно писать CHECK_EXPIRATION=OFF
                  Либо, если уже поставили значение на ON, можно под учёткой SA ввести команду

                  ALTER LOGIN [wcf] WITH CHECK_EXPIRATION = OFF;
                  
                  1 ответ Последний ответ
                  0
                  • A Не в сети
                    A Не в сети
                    Admin
                    написал отредактировано
                    #9

                    8. Настройка файла appsettings.json

                    sudo nano /var/www/school-sample.nbics.net_2025_02_04/appsettings.json
                    

                    В пустые кавычки ставим пароль SA
                    "DbAdminPassword": "",

                    Это оригинальная строка
                    "ConnectionString": "Data Source=lpc:(local);Initial Catalog=VSM_School-sample_Web;Persist Security Info=True;User ID=wcf;Password=",

                    Меняем её так:
                    "ConnectionString": "Data Source=localhost;Initial Catalog=VSM_School-sample_Web;Persist Security Info=True;User ID=wcf;Password=Debian123",

                    1 ответ Последний ответ
                    0
                    • A Не в сети
                      A Не в сети
                      Admin
                      написал отредактировано
                      #10

                      9. Создание файла Kestrel

                      ВНИМАНИЕ! Если есть файрволл, открываем порт 5000

                      В каталоге /etc/systemd/system/ создаём файл с именем kestrel-school-sample.nbics.net_2025_02_04-service.service

                      sudo touch /etc/systemd/system/kestrel-school-sample.nbics.net_2025_02_04-service.service
                      

                      Открываем файл

                      sudo nano /etc/systemd/system/kestrel-school-sample.nbics.net_2025_02_04-service.service
                      

                      Вставляем в пустой файл такие строки:

                      [Unit]
                      Description=vsm veb core school-sample.nbics.net_2025_02_04 application
                      
                      [Service]
                      WorkingDirectory=/var/www/school-sample.nbics.net_2025_02_04
                      ExecStart=/usr/bin/dotnet /var/www/school-sample.nbics.net_2025_02_04/VSM.Web.Core.dll
                      Restart=always
                      RestartSec=10
                      SyslogIdentifier=school-sample.nbics.net_2025_02_04
                      User=www-data
                      
                      Environment=ASPNETCORE_ENVIRONMENT=Production
                      Environment=DOTNET_PRINT_TELEMETRY_MESSAGE=false
                      [Install]
                      
                      WantedBy=multi-user.target
                      

                      Сохраняем файл.

                      Даём права nginx на каталог с сайтом (для этого сначала установите Nginx - sudo apt install nginx)

                      sudo chown -R www-data:www-data /var/www/school-sample.nbics.net_2025_02_04
                      sudo chmod -R 755 /var/www/school-sample.nbics.net_2025_02_04
                      

                      Запускаем службу

                      sudo systemctl enable kestrel-school-sample.nbics.net_2025_02_04-service.service
                      sudo systemctl start kestrel-school-sample.nbics.net_2025_02_04-service.service
                      

                      Проверяем

                      sudo systemctl status kestrel-school-sample.nbics.net_2025_02_04-service.service
                      

                      1 ответ Последний ответ
                      0
                      • A Не в сети
                        A Не в сети
                        Admin
                        написал отредактировано
                        #11

                        10. Создание админского аккаунта для веб-интерфейса НБИКС.

                        Заходим в интерпретатор под учёткой SA

                        sudo /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -p
                        
                        USE [VSM_School-sample_Web];
                        GO
                        update Tech.Users set Password = 0x35666132383565316265626530613636 where Id = database_principal_id('администратор')
                        GO
                        exit
                        
                        1 ответ Последний ответ
                        0
                        • A Не в сети
                          A Не в сети
                          Admin
                          написал отредактировано
                          #12

                          11. Настраиваем веб-сервер Nginx

                          Внимание. Для этого сначала установите Nginx

                          sudo apt install nginx
                          

                          Создаём конфигурационный файл

                          sudo touch /etc/nginx/sites-available/nbics.conf
                          

                          Открываем этот файл (можно в принципе пропустить предыдущую команду, файл создастся автоматически при открытии несуществующего файла)

                          sudo nano /etc/nginx/sites-available/nbics.conf
                          

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

                          server {
                                     listen 80;
                                     server_name school-sample.nbics.net_2025_02_04;
                                     root /var/www/school-sample.nbics.net_2025_02_04;
                                     keepalive_timeout 60;
                             location / {
                                 proxy_pass http://localhost:5000;
                                 proxy_http_version 1.1;
                                 proxy_set_header Upgrade $http_upgrade;
                                 proxy_set_header Connection "upgrade";
                                 proxy_cache off;
                                 proxy_buffering off;
                                 proxy_read_timeout 100s;
                                 proxy_set_header Host $host;
                                 proxy_cache_bypass $http_upgrade;
                                 proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                                 proxy_set_header X-Forwarded-Proto $scheme;
                                             }
                                     }
                          

                          Сохраняем следующими комбинациями клавиш, последовательно три комбинации:

                          Ctrl-X

                          Shift-Y

                          Enter

                          Cоздаём линк.

                          sudo ln -s /etc/nginx/sites-available/nbics.conf /etc/nginx/sites-enabled/nbics.conf
                          

                          Проверяем работоспособность Nginx:

                          sudo nginx -t
                          

                          Должно быть так:

                          nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
                          nginx: configuration file /etc/nginx/nginx.conf test is successful
                          
                          1 ответ Последний ответ
                          0
                          • A Не в сети
                            A Не в сети
                            Admin
                            написал отредактировано Admin
                            #13

                            12. Установка и настройка Letsencrypt

                            Для того, чтобы сайт открывался без проблем, используя доступ по протоколу //https необходимо создать и установить SSL сертификат. Для этого используется Let’s Encrypt - бесплатный, автоматизированный и открытый Центр Сертификации, созданный на благо всего общества организацией Internet Security Research Group (ISRG)

                            Имя сайта должно быть зарегистрировано и у компьютера должен быть статический IP

                            Устанавливаем certbot и зависимости

                            sudo apt install certbot python3-certbot-nginx -y
                            

                            Создаём сертификат

                            sudo certbot --nginx -d <имя.вашего.домена>
                            
                            1 ответ Последний ответ
                            0
                            • A Admin переместил эту тему из
                            • A Admin закрепил эту тему
                            Ответить
                            • Ответить, создав новую тему
                            Авторизуйтесь, чтобы ответить
                            • Сначала старые
                            • Сначала новые
                            • По количеству голосов


                            • Войти

                            • Login or register to search.
                            Powered by NodeBB Contributors
                            • Первое сообщение
                              Последнее сообщение
                            0
                            • Категории
                            • Последние
                            • Метки
                            • Популярные
                            • World
                            • Пользователи
                            • Группы