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
    написал отредактировано 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
                          • Пользователи
                          • Группы