Документация ispmanager 6 lite, pro, host

Работа c Python

Python – язык программирования общего назначения, который можно интегрировать для работы сайтов и приложений.

Перед импортом пользователей с Python убедитесь, что на целевом сервере все нужные версии Python установлены.

Установка

Обратите внимание!
Для того чтобы добавить в панель управления ispmanager возможность установки Python, необходимо предварительно установить веб-сервер Nginx. Обратите внимание, что при установке Nginx произойдут изменения в конфигурации веб-серверов. Если уже произведена настройка сайтов в ispmanager с использованием связки NginxApache, рекомендуется связаться с разработчиком сайтов для уточнения возможности корректной работы после установки Nginx.

Для включения:

  1. В Основном меню панели выберите Настройки.
  2. В раскрывшемся списке выберите Конфигурация ПО.
  3. На открывшейся форме выберите Python в списке и нажмите на кнопку Установить.

После завершения установки Python станет доступным как обработчик при создании сайта.

 

Включение Python

1. После установки, использование Python для пользователей по умолчанию отключено.

2. Для включения, перейдите в раздел Пользователи > Изменить.

3. На вкладке Доступ установите галочку Может использовать Python.

4. Выберите версию Python по умолчанию.

5. Нажмите кнопку OK.

Обратите внимание!
Версия Python по умолчанию также настраивается в шаблонах пользователей.

После включения будут выполнены дополнительные действия:

1. Создание юнита systemd для запуска демона pm2 из-под пользователя (если пользователь активен).

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

Выключение Python

Чтобы выключить Python для пользователя, перейдите в раздел Пользователи > Изменить.

На вкладке Доступ уберите галочку Может использовать Python.

Нажмите кнопку OK.

Обратите внимание!
 Если у пользователя есть сайты, использующие Python, данную возможность отключить нельзя.

При выключении возможности будет выполнено:

1. Установка пользовательского демона pm2.

2. Удаление юнита systemd для запуска демона pm2 из-под пользователя.

Добавление проекта Python

Добавьте свой проект Python в созданный сайт, для этого:

  1. В Основном меню выберите Сайты.
  2. Выберите необходимый сайт и нажмите на кнопку Файлы сайта.
  3. На открывшейся форме Менеджер файлов нажмите Загрузить.
  4. Выберите, откуда необходимо загрузить файлы:
    • Файл с локального компьютера – нажмите на кнопку Выбрать файл или переместите необходимые файлы в зону drag-and-drop;
    • URL файла на другом сервере:
      • URL – ссылка на файл, который будет загружен, например, http://example.com/dir/file.html;
      • Имя файла – имя файла, с которым будет сохранен в текущем каталоге. Если оставить это поле пустым, имя файла будет выделено из URL.
  5. Укажите необходимые пакеты в файле requirements.txt.
  6. Нажмите на кнопку Вернуться к списку сайтов.
  7. Нажмите на кнопку ““ и выберите Установка пакетов Python.
    Python выполнит установку всех указанных пакетов вашего проекта. Процесс установки отображается серой иконкой Python в столбце параметров сайта.
  8. После выполнения установки нажмите на кнопку ““ и выберите Перезапустить (Python).
    Будет выполнен перезапуск проекта; иконка Python станет зеленого цвета, что означает правильную работу проекта.
Если вы установили пакет Python, который требует настройки Web-сервера:
  1. Выполните настройку сайта, нажав на кнопку Редактировать.
  2. Перейдите в раздел Обработчик и заполните поля для Web-сервер Python.
  3. После заполнения полей нажмите на кнопку Сохранить.
  4. Если необходимо, выполните настройку установленного пакета Python.

Проверка работоспособности

Для проверки работоспособности:

  • если на ПК установлена ОС семейства Unix, то добавьте в файл /etc/hosts запись вида:
    1.1.1.1 example.ru
    Где:
    • 1.1.1.1 — IP-адрес вашего сервера;
    • example.ru — имя сайта;
  • если на ПК установлена ОС Windows, то добавьте в файл C:\windows\system32\drivers\etc\hosts запись вида:
    1.1.1.1 example.ru
    Где:
    • 1.1.1.1 — IP-адрес вашего сервера;
    • example.ru — имя сайта.

Введите в браузере имя сайта для проверки корректности создания.

Настройка пользователя

После того как Python будет установлен на панель, добавьте права на использования пользователю, под которым будут добавляться проекты Python, для этого:

  1. В Основном меню выберите Пользователи.
  2. Выберите соответствующего пользователя и нажмите на кнопку Изменить.
  3. На открывшейся форме найдите секцию Доступ.
  4. Отметьте чекбокс Python и нажмите на кнопку Сохранить.

После сохранения в столбце Состояние пользователя будет отображаться иконка Python.

Создание сайта для проекта с Python

Теперь необходимо создать сайт с обработчиком Python, для этого:

  1. В Основном меню выберите Сайты.
  2. На открывшейся форме нажмите на кнопку Создать сайт.
  3. Выберите вкладку Расширенные настройки (подробное описание настроек см. Создание сайта) и заполните необходимые поля. Ниже представлены важные поля при создании сайта с проектом Python:
    • секция Основные настройки:
      • Доменное имя – имя сайта;
      • Директория сайта – путь к директории сайта. Указывается относительно домашней директории владельца;
      • Псевдоним сайта – дополнительные имена вашего сайта (необязательное поле);
      • Обработчик – выберите Python;
      • SSL-сертификат – сертификат для данного сайта. Вы можете указать существующий сертификат из списка либо создать новый самоподписанный сертификат;
      • IP-адрес – список IP-адресов, за которыми закреплен сайт;
      • Владелец сайта – выберите из списка необходимого пользователя;
      • Сайт по умолчанию (чекбокс) – если сайт является сайтом по умолчанию, то запрос по не зарегистрированному на этом Web-сервере доменному имени (в том числе запрос по IP-адресу) на любой из назначенных этому сайту IP-адресов будет обрабатываться именно этим сайтом;
    • секция Обработчик (Python):
      • Режим работы Python:
        • CGI (Apache + Python) – вызовом интерпретатора Python занимается Apache2, код будет выполнен при обращении непосредственно к файлу;

          Обратите внимание!
          Для использования данного режима требуется установленный сервер Apache. В этом режиме каждое обращение к скрипту Python порождает процесс, который обрабатывает запрос и возвращает результат. Пример описания конфигурационного файла Apache для данного режима приведен ниже.
          <VirtualHost 127.0.0.1:8080>
                  ServerName example.com
                  DocumentRoot /var/www/www-root/data/www/example.com
                  ServerAdmin webmaster@example.com
                  AddDefaultCharset off
                  AssignUserID www-root www-root
                  CustomLog /var/www/httpd-logs/example.com.access.log combined
                  ErrorLog /var/www/httpd-logs/example.com.error.log
                  ScriptAlias /python-bin/ /var/www/python-bin-isp-python3.8/www-root/example.com/
                  AddHandler application/x-httpd-python .py
                  Action application/x-httpd-python /python-bin/python
                  <FilesMatch "\.py$">
                          SetHandler application/x-httpd-python
                  </FilesMatch>
                  SetEnvIf X-Forwarded-Proto https HTTPS=on
                  ServerAlias www.example.com
                  DirectoryIndex index.php index.html
          </VirtualHost>
          <Directory /var/www/www-data/data/www/example.com>
                  Options +Includes -ExecCGI
          </Directory>

          В данном режиме менеджер процессов pm2 не используется.

           

        • Web-сервер Python – некоторым пакетам Python необходимо настроить сервер (например, Django). Выполните настройку после того, как будет установлен соответсвующий пакет:
          • Путь к серверу – путь к файлу сервера приложения относительно домашней директории сайта;

            Обратите внимание!
            Это поле доступно только в режиме работы веб-сервера Python. Можно изменить путь к скрипту, который запускает сервер. Если указанная директория не существует, она будет создана. Существующий файл по указанному пути не будет перезаписан, и предыдущий файл сервера не будет удален. Однако, если вы измените это поле, файл сервера будет перемещен по указанному пути. 

            При сохранении данных они будут записаны в файл.

            ecosystem.config.js

            В поле с ключем script, Пример.

            "script" : "server.py"
          • Аргументы сервера – список аргументов, которые будут переданы серверу при запуске;

            Обратите внимание!
            Это поле доступно только в режиме работы веб-сервера Python. Оно позволяет задать аргументы, которые будут переданы запускаемому приложению. Аргументы разделяются символом пробела. При сохранении данных они будут записаны в файл.

            При сохранении данные записываются в файл.

            ecosystem.config.js

            В список с ключем args. Пример.

            "args" : [ "runserver","localhost:8000" ]
          • Способ подключения (выбор способа доступен только при выборе режима работы Сервер Python):
            • Порт – будет назначен свободный непривилегированный порт для сайта;
            • Сокет – сайт будет работать через сокет.
        • Версия Python – выберите необходимую версию Python.
        Пояснение

         

  4. Нажмите на кнопку Создать.

На вкладке Сайты будет добавлен созданный сайт, у которого в столбце Параметры будет отображаться иконка Python.

Редактирование сайта

1. Изменение версии Python. Можно изменить версию Python, используемую для своего веб-проекта в зависимости от требований и совместимости.

2. Изменение режима работы с CGI (Apache + Python). Переключение между режимами работы с CGI и Python в среде Apache, а также обратно, обеспечивает гибкость в управлении веб-приложениями.

3. Изменение режима работы приложения с сокета на порт и наоборот. Возможность переключения между работой с сокетами и портами обеспечивает оптимизацию и эффективность работы приложений в зависимости от требований проекта.

4. Смена обработчика на PHP, Node.js или его отключение. Можно изменить обработчик на PHP, Node.js или полностью отключить его в зависимости от потребностей и предпочтений разработки.

Выключение сайта

Для выключения сайта  перейдите в раздел Сайты и нажмите кнопку Выкл. После этого пользователь увидит заглушку. Если приложение работало в режиме сервера, процесс сервера Python будет остановлен. Важно отметить, что никакие данные сайта не изменятся или не будут удалены в процессе отключения.

Обратите внимание!
Важно отметить, что никакие данные сайта не изменятся или не будут удалены в процессе отключения.

Включение сайта

Для активации сайта перейдите в раздел Сайты и нажмите кнопку Вкл. После этого, если приложение работает в режиме сервера, процесс Python для сайта будет запущен.

Перезапуск сайта

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

Установка пакетов

Команда позволяет установить пакеты, указанные в файле requirements.txt, расположенном в корневом каталоге сайта. Для выполнения команды кликните кнопкой мыши на нужном сайте и выберите Установка пакетов Python.

Просмотр пакетов

Для просмотра установленных пакетов для сайта, кликните кнопкой мыши на сайте и выберите Просмотр пакетов Python. При нажатии на кнопку откроется список установленных зависимостей, содержащий кнопки на тулбаре:

  • Установить - устанавливает зависимости. Поддерживается одновременная установка нескольких зависимостей указанных версий;
  • Удалить - удаляет выбранную зависимость.

Shell-клиент

Shell-клиент предоставляет возможность выполнения дополнительных команд Python, pip и других в терминале. Запуск shellinaboxd осуществляется из-под владельца сайта. При открытии терминала выполняются следующие действия:

Переход в домашнюю директорию сайта.

  • Переход в домашнюю директорию сайта;
  • Добавление в переменную PATH пути к виртуальному окружению для выбранного сайта.

Чтобы запустить Shell-клиент, необходимо в контекстном меню нужного сайта нажать кнопку Shell-клиент.

Удаление сайта

Для удаления сайта необходимо в разделе Сайты нажать кнопку Удалить. Будет удалено содержимое сайта, настройки Python, данные в менеджере процессов pm2. Процесс сайта будет завершен.

Список сайтов

Сайт, использующий Python, отмечен в столбце Обработчик строкой Python и текущей версией. Для режима CGI перед версией добавлено слово CGI. Кроме того, имеются пиктограммы состояния сайта. Состояние может иметь значения:

1. Сайт устанавливается.

2. Сайт успешно запущен. В подсказке отображается используемый порт или путь к сокету приложения.

3. Ошибка запуска сайта.

4. Идет процесс перезапуска сайта.

5. Идет процесс выключения сайта.

6. Идет процесс включения сайта.

7. Сайт выключен.

8. Идет процесс установки пакетов.

9. Сайт работает в режиме CGI.

Конфигурационные файлы

Конфигурационные файлы для приложений Python включают в себя файл requirements.txt, который используется pip для установки зависимостей. Пример такого файла:

jinja2==2.11.3
jsmin==2.2.2
markupsafe==1.1.1
python-http-client==3.3.2
redis==3.2.1

Для редактирования конфигурационных файлов в режиме веб-сервера Python доступен файл ecosystem.config.js. Чтобы внести изменения, необходимо перейти в раздел Сайты, нажать кнопку Файлы конфигурации и выполнить необходимые действия. Возможность редактирования этих файлов доступна как администраторам, так и пользователям.

Удаление Python

Для удаления поддержки Python необходимо выполнить следующие шаги:

Перейдите в раздел Конфигурация ПО > Python > Отключить, либо нажать кнопку Изменить, снять галочку напротив Python и нажать кнопку Применить изменения.

Обратите внимание!
Если на сервере существуют сайты, использующие Python, удаление Python будет невозможно.

При удалении Python выполняются следующие действия:

  • Завершаются процессы pm2;
  • Удаляются файлы юнитов для автоматического запуска pm2;
  • Удаляется pm2;
  • Если не используется возможность Node.js, удаляется директория /usr/lib/ispnodejs.