Работа c Python
Python – язык программирования общего назначения, который можно интегрировать для работы сайтов и приложений.
Установка
Для включения:
- В Основном меню панели выберите Настройки.
- В раскрывшемся списке выберите Конфигурация ПО.
- На открывшейся форме выберите Python в списке и нажмите на кнопку Установить.
После завершения установки Python станет доступным как обработчик при создании сайта.
Включение Python
1. После установки, использование Python для пользователей по умолчанию отключено.
2. Для включения, перейдите в раздел Пользователи > Изменить.
3. На вкладке Доступ установите галочку Может использовать Python.
4. Выберите версию Python по умолчанию.
5. Нажмите кнопку OK.
После включения будут выполнены дополнительные действия:
1. Создание юнита systemd для запуска демона pm2 из-под пользователя (если пользователь активен).
2. Пользователи, у которых включена возможность создавать сайты на Python, будут определены по зеленой пиктограмме в столбце Состояние.
Выключение Python
Чтобы выключить Python для пользователя, перейдите в раздел Пользователи > Изменить.
На вкладке Доступ уберите галочку Может использовать Python.
Нажмите кнопку OK.
При выключении возможности будет выполнено:
1. Установка пользовательского демона pm2.
2. Удаление юнита systemd для запуска демона pm2 из-под пользователя.
Добавление проекта Python
Добавьте свой проект Python в созданный сайт, для этого:
- В Основном меню выберите Сайты.
- Выберите необходимый сайт и нажмите на кнопку Файлы сайта.
- На открывшейся форме Менеджер файлов нажмите Загрузить.
- Выберите, откуда необходимо загрузить файлы:
- Файл с локального компьютера – нажмите на кнопку Выбрать файл или переместите необходимые файлы в зону drag-and-drop;
- URL файла на другом сервере:
- URL – ссылка на файл, который будет загружен, например, http://example.com/dir/file.html;
- Имя файла – имя файла, с которым будет сохранен в текущем каталоге. Если оставить это поле пустым, имя файла будет выделено из URL.
- Укажите необходимые пакеты в файле requirements.txt.
- Нажмите на кнопку Вернуться к списку сайтов.
- Нажмите на кнопку “…“ и выберите Установка пакетов Python.
Python выполнит установку всех указанных пакетов вашего проекта. Процесс установки отображается серой иконкой Python в столбце параметров сайта. - После выполнения установки нажмите на кнопку “…“ и выберите Перезапустить (Python).
Будет выполнен перезапуск проекта; иконка Python станет зеленого цвета, что означает правильную работу проекта.
- Выполните настройку сайта, нажав на кнопку Редактировать.
- Перейдите в раздел Обработчик и заполните поля для Web-сервер Python.
- После заполнения полей нажмите на кнопку Сохранить.
- Если необходимо, выполните настройку установленного пакета 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, для этого:
- В Основном меню выберите Пользователи.
- Выберите соответствующего пользователя и нажмите на кнопку Изменить.
- На открывшейся форме найдите секцию Доступ.
- Отметьте чекбокс Python и нажмите на кнопку Сохранить.
После сохранения в столбце Состояние пользователя будет отображаться иконка Python.
Создание сайта для проекта с Python
Теперь необходимо создать сайт с обработчиком Python, для этого:
- В Основном меню выберите Сайты.
- На открывшейся форме нажмите на кнопку Создать сайт.
- Выберите вкладку Расширенные настройки (подробное описание настроек см. Создание сайта) и заполните необходимые поля. Ниже представлены важные поля при создании сайта с проектом 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.
Пояснение -
- Режим работы Python:
- секция Основные настройки:
- Нажмите на кнопку Создать.
На вкладке Сайты будет добавлен созданный сайт, у которого в столбце Параметры будет отображаться иконка 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 выполняются следующие действия:
- Завершаются процессы pm2;
- Удаляются файлы юнитов для автоматического запуска pm2;
- Удаляется pm2;
- Если не используется возможность Node.js, удаляется директория /usr/lib/ispnodejs.