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