Fornex
Европейский
хостинг

Для добавления приложения нам потребуется в первую очередь добавить домен, на котором оно будет работать, в cPanel.
Это необходимо сделать через меню Дополнительные домены.

file

После добавления домена можно разместить существующее приложение используя git или загрузив его при помощи FTP-клиента в папку добавленного домена.

Создание нового приложения.

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

Открываем меню Настройка Python приложений и создаем приложение с нужной нам версией python, при создании указываем путь к каталогу созданного ранее сайта в поле App Directory.

file

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

file

Перед установкой необходимых модулей для django мы подключем уже установленные модули для работы с БД MySQL.

Добавление в виртуальное окружение модуля mysqlclient

Обратите внимание на то, что некоторые модули нет возможности установить самостоятельно на виртуальном хостинге так как доступ к компиляторам необходимый для этого ограничен. Для решения проблемы Вам необходимо будет сделать симлинк в папке виртуального окружения на модуль

В данном случае мы сделаем симлинк на модули mysqlclient и MySQLdb - рекомендуемые для подключения к mysql в Django.

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

file

В каталоге виртуального окружения создаем симлинк на модуль MySQLdb командой.

ln -s /opt/alt/python35/lib64/python3.5/site-packages/MySQLdb ./lib/python3.5/site-packages/

Для модуля mysqlclient команда соответственно будет такой.

ln -s /opt/alt/python35/lib64/python3.5/site-packages/mysqlclient-* ./lib/python3.5/site-packages/

file

**Для другой версии python, к примеру, для версии 3.7 симлинк нужно делать с другой папки.

/opt/alt/python37/lib64/python3.7/site-packages/

Добавление в виртуальное окружение модуля django-admin

Далее добавляем модуль django-admin и остальные зависмости - screen, pytz, xlwt, django-six, django-excel-response2

ln -s /opt/alt/python35/lib64/python3.5/site-packages/screen* ./lib/python3.5/site-packages/  
ln -s /opt/alt/python35/lib/python3.5/site-packages/django_* ./lib/python3.5/site-packages/  
ln -s /opt/alt/python35/lib/python3.5/site-packages/xlwt* ./lib/python3.5/site-packages/  
ln -s /opt/alt/python35/lib/python3.5/site-packages/pytz* ./lib/python3.5/site-packages/  

file

После добавления модулей установливаем модуль django, используем для установки команду pip install django
file

После завершения установки модулей мы можем посмотреть версии установленных в окружении модулей при помощи команды pip list или в cPanel во вкладке modules.

file

Далее создаем наше приложение при помощи команды django-admin startproject django_test ., замените название проекта(django_test) на желаемое. Точка в конце команды указывает на то, что проект должен быть создан в текущей папке.

После выполнения команды будет добавлен каталог приложения в текущей папке, название папки проекта соотсветсвует имени проекта, в нашем случае - django_test, и файл manage.py.

file

Для выхода из виртуального окружения используйте команду deactivate.

Настройка работы django c mysql

Далее настроим подключение к БД mysql, для этого редактируем настройки приложения в файле название_проекта/settings.py, и вместо sqlite указываем подключение к БД MySQL.

Необходимо заменить указанную ниже часть файла settings.py.

DATABASES = {  
    'default': {
        'ENGINE': 'django.db.backends.sqlite3',
        'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
    }
}

На такие значения

DATABASES = {  
    'default': {
        'ENGINE': 'django.db.backends.mysql',
        'NAME': 'database',
        'USER': 'database_user',
        'PASSWORD': 'password',
        'HOST': 'localhost',
        'PORT': '3306',
        'OPTIONS': {
            'init_command': 'SET default_storage_engine=INNODB',
        }
    }
}

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

После обновления данных в настройках запускаем миграцию данных в корневом каталоге сайта.

python manage.py migrate

Результат запуска команды в консоли будет выглядеть следующим образом.
file

Важно: не забудьте указать название Вашего домена в файле название_проекта/settings.py, для корректной работы приложения.

Пример для домена django-test.com выглядит следующим образом.

file

После изменения параметров необходимо перезапустить приложение, для этого в параметрах приложения в cPanel нажимаем кнопку Restart.

file

Далее в панели указываем путь к файлу wsgi, вводить требуется полный путь, а не относительный. Для нашего проекта путь будет следующим.

/home/user/public_html/django-test.com/django_test/wsgi.py

Так же обазтельно необходимо указать тип приложения через двоеточие после указания полного пути, для Django необходимо указать application.

file
После указания необходимых данных нажимаем Update. Будет автоматически создан файл passenger_wsgi.py в котором будет указан путь к файлу wsgi.py в каталоге приложения, этот файл нужен для корректного запуска приложения.

Если ошибок при обновлении приложения не возникло - настройка завершена. Вы можете перейти на Ваш сайт в браузере и проверить его работу.

file