---
title: 'Как запустить Python проект на виртуальном хостинге | Zomro'
description: 'Прежде чем начинать процесс развертывания, важно удостовериться, что у вас есть необходимые ресурсы. Необходим минимальный набор требований'
image: 'https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_1_q50.jpg'
---

![opened image]()

  * [Zomro](https://zomro.com/rus/)
  * [Полезные статьи](https://zomro.com/rus/blog/articles/)
  * Как запустить Python проект на виртуальном хостинге 



# Как запустить Python проект на виртуальном хостинге

07-11-2024

Одним из самых востребованных языков у программистов, используемых для разработки приложений, является язык Python. Его популярность объясняется легкостью в освоении, богатой экосистемой и множеством доступных фреймворков, среди которых можно выделить Flask и Django. Однако перед разработчиком стоит задача — как правильно развернуть и запустить Python проект на виртуальном хостинге. Эта статья поможет вам пошагово пройти все этапы настройки виртуального хостинга для вашего Python проекта.

**Подготовка к развертыванию**

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

  * Активный аккаунт виртуального хостинга (например, VPS).
  * SSH-доступ к серверу.
  * Наличие структуры проекта и наличие его сайта
  * Инсталляция Python, а также зависимостей



Вероятно, у вас на сервере уже может быть установлен Python, однако рекомендуется убедиться в наличии последней версии. У нас уже была подробная статья по установке Python, поэтому на нюансах останавливаться не будем, а для дальнейшей работы стоит выполнить последующие шаги:

## **Проводим проверку инсталлированной версии Python**

Подключитесь к вашему серверу через SSH и выполните команду:
    
    
    python3 --version

Если Python уже установлен, отобразится его версия. Если Python не установлен, следуйте дальнейшим инструкциям по инсталляции.
    
    
    ]

**Инсталляция**

Если на вашем устройстве не установлен Python или его версия не актуальна, вы можете установить его через менеджер пакетов (например, используя apt в системе Ubuntu):
    
    
    sudo apt update
    
    
    sudo apt install python3 python3-pip

  
![Как запустить Python проект на виртуальном хостинге](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_1_q50.jpg)

**Инсталляция требуемых библиотек и пакетов**

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

**Виртуальное окружение: конфигурация**

Для изоляции между различными проектами зависимостей следует обращаться к помощи виртуальной среды (virtual environment).

Виртуальная среда служит для изоляции зависимостей между различными проектами. Для создания виртуальной среды и начала ее использования, совершите дальнейшие действия:

Инсталлируйте
    
    
    virtualenv

:
    
    
    pip install virtualenv

  
![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_2_q50.jpg)

Формирование виртуальной среды:
    
    
    virtualenv venv

Этой командой будет создан каталог venv, содержащий виртуальное окружение.

После создания каталога необходимо активировать окружение:
    
    
    source venv/bin/activate

После выполнения этой команды среда будет активирована и появится возможность устанавливать все пакеты через
    
    
    pip

непосредственно в локальную среду проекта.

**Виртуальный хостинг: конфигурация**

Когда установка Python завершена и виртуальная среда подготовлена, перейдем к настройке виртуального хостинга.

**Доступ к серверу через SSH**

Подключение к вашему серверу через SSH — это первый шаг при настройке хостинга. Для получения защищенного доступа к серверу нужно воспользоваться клиентом SSH. Например:
    
    
    ssh username@hostname

Вы получите возможность подключиться к серверу и начнете выполнять команды для оптимизации вашей среды после удачного SSH-соединения.

## **Как инсталлировать Python на хостинг?**

В случае, если у вашего хостинга отсутствует изначальная поддержка Python, вам потребуется установить его, следуя приведенным ранее инструкциям. Убедитесь в наличии всех необходимых библиотек и пакетов на вашем сервере. Например, pip, для управления зависимостями.

**Развертывание проекта**

Для того, чтобы с помощью виртуального хостинга развернуть проект на Python необходимо совершить следующие шаги: сперва вам необходимо загрузить на сервер файлы и данные проекта, после чего конфигурировать веб-сервер и, наконец, настроить WSGI, чтобы запустить приложение.

**Как загрузить на сервер файлы?**

Воспользовавшись утилитой scp или же чем-то инструментом наподобие FileZilla (также подойдет любой другой FTP-клиент) вы сможете загрузить на сервер проектные файлы. Чтобы передать их с использованием scp необходимо ввести такую команду:
    
    
    scp -r /path/to/your/project username@hostname:/path/to/destination

**Apache и Nginx: конфигурация веб-сервера**

Правильная настройка веб-сервера требуется вам для того, чтобы Python проект успешно функционировал на вашем сервере. Для осуществления работы с приложениями посредством WGSI (Web Server Gateway Interface) вам понадобится обратиться к http-серверам. Как пример возьмём Nginx и Apache. Теперь рассмотрим конфигурацию Nginx:

Инсталляция Nginx:
    
    
    sudo apt install nginx

  
![Как запустить Python проект на виртуальном хостинге-1](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_3_q50.jpg)

Сформируйте для вашего веб-ресурса в директории /etc/nginx/sites-available/ файл настроек и внесите в него следующую информацию:
    
    
    server {
    
    
    listen 80;
    
    
    server_name yourdomain.com
    
    
    location / {
    
    
    proxy_pass http://127.0.0.1:8000

;
    
    
    proxy_set_header Host $host

;
    
    
    proxy_set_header X-Real-IP $remote_addr;
    
    
    }
    
    
    }

Активация конфигурации:

После проведенных манипуляций вам нужно создать ссылку на файл настроек в папке
    
    
     /etc/nginx/sites-enabled/

:
    
    
    sudo ln -s /etc/nginx/sites-available/yourconfig /etc/nginx/sites-enabled/

Теперь, для того, чтобы изменения вступили в силу сделайте рестарт Nginx:
    
    
    sudo systemctl restart nginx

  
![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_4_q50.jpg)

Чтобы запустить проект на Python через http-сервер, требуется конфигурация WSGI. Uwsgi и Gunicorn являются двумя распространенными решениями. Давайте разберемся, как настроить Gunicorn.

Инсталляция:
    
    
    pip install gunicorn

  
![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_5_q50.jpg)

Запуск Gunicorn:

В директории вашего проекта выполните:
    
    
    gunicorn --workers 3 yourproject.wsgi:application

С помощью http-сервера Gunicorn получает возможность будет управлять запросами к вашему приложению.

**Установка Apache**

Давайте также обратим внимание на процесс инсталляции Apache. Сперва в конфигурации веб-сервера необходимо его инсталлировать. Метод, исходя из используемой платформы, будет варьироваться. Рассмотрим, как инсталлировать его на популярных дистрибутивах Linux.

**Инсталляция на платформах Ubuntu/Debian**

Инсталлируйте Apache после обновления репозитории:
    
    
    sudo apt update
    
    
    sudo apt install apache2

  
![Как запустить Python проект на виртуальном хостинге-2](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_6_q50.jpg)

Apache самостоятельно запустится по завершении установки. Чтобы проверить его текущее состояние необходимо руководствоваться командой:
    
    
    sudo systemctl status apache2

  
![Как запустить Python проект на виртуальном хостинге-3](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_7_q50.jpg)

В случае успешного завершения процесса, сервер Apache начнёт свою работу. Вы сможете убедиться в его функционировании, введя в адресной строке браузера URL вашего сервера или хоста (http://localhost или IP-адрес).

**Инсталляция на платформах CentOS/Fedora**

Инсталлируйте Apache (httpd на платформе CentOS) после обновления репозитории:
    
    
    sudo yum update
    
    
    sudo yum install httpd

Далее активируйте Apache, перейдите в настройки и установите автозагрузку при старте системы:
    
    
    sudo systemctl start httpd
    
    
    sudo systemctl enable httpd

Для того чтобы удостовериться в функционировании сервера, запустите веб-браузер и перейдите по серверному IP, также можно использовать localhost.

**Руководство по работе с Apache: ключевые команды**

Для администрирования Apache после его инсталляции вам необходимы определенные команды. 

Запуск:

**Ubuntu и Debian** :
    
    
     sudo systemctl start apache2   

  
![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_8_q50.jpg)

**Fedora и CentOS** :
    
    
    sudo systemctl start httpd     

Остановка:

**Ubuntu и Debian** :
    
    
    sudo systemctl stop apache2

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_9_q50.jpg)

**Fedora и CentOS** :
    
    
    sudo systemctl stop httpd    

Перезапуск (в случаях изменения настроек и т.д.):

**Ubuntu и Debian** :
    
    
    sudo systemctl restart apache2   

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_10_q50.jpg)

**Fedora и CentOS** :
    
    
    sudo systemctl restart httpd    

Команда "перезагрузка без остановки" (reload) позволяет обновить файлы настроек, при этом не нарушая действующие соединения:

**Ubuntu и Debian** :
    
    
    sudo systemctl reload apache2

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_11_q50.jpg)

**Fedora и CentOS** :
    
    
    sudo systemctl reload httpd

Мониторинг состояния:

**Ubuntu и Debian** :
    
    
    sudo systemctl status apache2

**Fedora и CentOS** :
    
    
    sudo systemctl status httpd

**Работа с базой данных**

Если ваше приложение использует хранилище информации, в таком случае вам потребуется наладить серверное подключение к ней.

### **Базы данных: подключение**

Настроить подключение к базе (если такая используется), например MySQL или PostgreSQL возможно следующим способом. 

Пример настройки PostgreSQL:

Установка PostgreSQL:
    
    
    sudo apt install postgresql postgresql-contrib

![Как запустить Python проект на виртуальном хостинге-4](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_12_q50.jpg)

### **Базы данных: конфигурация**

Для приложения необходимо создать юзера и базу данных:
    
    
    sudo -u postgres psql

  
![Как запустить Python проект на виртуальном хостинге-5](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_13_q50.jpg)
    
    
    CREATE DATABASE yourdb

;

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_14_q50.jpg)
    
    
    CREATE USER youruser WITH PASSWORD 'yourpassword

';

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_15_q50.jpg)
    
    
    GRANT ALL PRIVILEGES ON DATABASE yourdb TO youruser

;

![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_16_q50.jpg)

Подключение из приложения:

В настройках вашего проекта добавьте параметры подключения к базе данных:
    
    
    DATABASES = {
    
    
    'default': {
    
    
    'ENGINE': 'django.db.backends.postgresql'
    
    
    'NAME': 'yourdb',
    
    
    'USER': 'youruser',
    
    
    'PASSWORD': 'yourpassword',
    
    
    'HOST': 'localhost',
    
    
    'PORT': '5432',
    
    
    }
    
    
    }

  
![Как запустить Python проект на виртуальном хостинге-6](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_17_q50.jpg)

**Оптимизация и безопасность**

Когда ваш проект развернут, важно настроить безопасность и производительность.

**Настройка SSL**

Для обеспечения безопасности важно использовать SSL-сертификат. Самый простой способ — настроить автоматическое получение сертификатов через Let's Encrypt:

Установка certbot:
    
    
    sudo apt install certbot python3-certbot-nginx

  
![Как запустить Python проект на виртуальном хостинге-7](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_18_q50.jpg)

Получение сертификата:

Выполните команду для автоматической настройки сертификата:
    
    
    sudo certbot --nginx -d yourdomain.com

  
![](https://dx86q6oq7ry0e.cloudfront.net/uploads/blog/seo%40server-panel.net/2024/11/07/screenshot_19_q50.jpg)

**Мониторинг проекта**

После запуска важно следить за состоянием вашего приложения. Используйте инструменты мониторинга, такие как Prometheus, для отслеживания метрик производительности.

**Заключение**

Развертывание Python проекта на виртуальном хостинге может показаться сложным, но пошаговое выполнение всех этапов позволяет упростить этот процесс. Настройка окружения, веб-сервера и баз данных, а также обеспечение безопасности проекта с использованием SSL — все это важные составляющие успешного развертывания.

Похожие статьи

[Разрушители легенд или мифы о Linux](https://zomro.com/rus/blog/articles/43-razrushiteli-legend-ili-mify-o-linux) [Индивидуальный дизайн логотипа: создайте свой уникальный фирменный стиль](https://zomro.com/rus/blog/articles/636-custom-logo-design-create-your-unique-brand-identity) [Как создать сайт адалт (adult) тематики: выбор сервера, домена и защита данных](https://zomro.com/rus/blog/articles/508-how-to-create-an-adult-website) [Ключевые характеристики успешной домашней страницы](https://zomro.com/rus/blog/articles/118-kljuchevye-harakteristiki-uspeshnoj-domashnej-stranicy) [API - Взаимодействие с Boot From ISO](https://zomro.com/rus/blog/articles/484-api-interacting-with-boot-from-iso)

[ Premium Cloud VPS от €7.95/мес ](/rus/vps)
