Django CMS - это бесплатная система управления контентом с открытым исходным кодом, основанная на веб-инфраструктуре Django. Она помогает упростить процесс создания сложных веб-сайтов благодаря понятному и простому в освоении интерфейсу. CMS достаточно мощная и гибкая, и может удовлетворить потребности самых требовательных создателей веб-сайтов.
Ниже мы рассмотрим шаги, необходимые для автоматической или ручной установки Django CMS в облако.
Автоматическая установка Django CMS
Это быстрый и простой способ за несколько минут получить готовый к работе контейнер Django CMS.
1. Найдите приложение DjangoCMS в Магазине приложений
Для этого войдите в свою учетную запись Virtuozzo PaaS, и откройте Магазин приложений:
Воспользуйтесь поиском и нажмите «Установить»
2. Выберите название окружения и приложения
Нажмите кнопку «Установить».
3. Дождитесь установки приложения
Как только оно будет установлено система покажет вам всплывающее окно с данными для доступа к домашней странице и панели администратора Django CMS:
Ручная установка Django CMS
Вы можете развернуть Django CMS вручную с помощью пошаговой инструкции, чтобы более тщательно контролировать процесс.
1. Создайте новое python-окружение и определите его параметры
Перейдите во вкладку Python. Сервер Apache будет выбран автоматически. Укажите лимиты ресурсов и введит имя вашего окружения (например, django-cms).
Примечание:
Для Django CMS требуется база данных. По умолчанию в качестве БД можно используется SQLite. Эта база развертывается прямо в контейнере apache и не требует никаких дополнительных настроек. Это решение подходит для тестовой среды и для очень простых проектов. Также можно добавить отдельную ноду БД (например MySQL или PostgreSQL)
Далее, нажмите кнопку «Создать» в правом нижнем углу рамки.
2. Через минуту ваше окружение появится в дэшборде
Теперь вы можете установить Django CMS с нуля или развернуть существующее приложение в окружении. Разберём оба этих варианта.
Установка с нуля
1. Подключитесь к ноде по Web SSH:
2. Создайте изолированное виртуальное окружение Python
Это позволить управлять зависимостями проектов без прав администратора. Для этого введите команду:
virtualenv virtenv
3. Активируйте и переключитесь на созданное виртуальное окружение
source virtenv/bin/activate
4. Установите инсталлятор Django CMS с помощью менеджера пакетов pip
pip install djangocms-installer
Подождите минуту для завершения операции.
5. Затем удалите предустановленное приложение и создайте приложение Django CMS:
rm -rf ROOT
djangocms -p . ROOT -s
6. Отредактируйте модуль mod_wsgi (файл /var/www/webroot/ROOT/wsgi.py ), заменив его содержимое следующими строками:
import os,sys
virtenv = os.path.expanduser('~') + '/virtenv/'
virtualenv = os.path.join(virtenv, 'bin/activate_this.py')
try:
if sys.version.split(' ')[0].split('.')[0] == '3':
exec(compile(open(virtualenv, "rb").read(), virtualenv, 'exec'), dict(__file__=virtualenv))
else:
execfile(virtualenv, dict(__file__=virtualenv))
except IOError:
pass
sys.path.append(os.path.expanduser('~'))
sys.path.append(os.path.expanduser('~') + '/ROOT/')
os.environ['DJANGO_SETTINGS_MODULE'] = 'ROOT.settings'
from django.core.wsgi import get_wsgi_application
application = get_wsgi_application()
Сохраните изменения.
7. Также настройте следующие параметры в файле конфигурации /var/www/webroot/ROOT/settings.py:
ALLOWED_HOSTS = ["{envDomain}"]
MEDIA_ROOT = os.path.join(DATA_DIR, 'ROOT', 'media')
STATIC_ROOT = os.path.join(DATA_DIR, 'ROOT', 'static')
STATICFILES_DIRS = (
os.path.join(BASE_DIR, 'ROOT', 'static_local'),
)
Примечание
Параметр ALLOWED_HOSTS содержит список строк c доменными именами, на запросы к которым Django будет отвечать (в нашем случае djangocms.jcloud.kz). Чтобы разрешить ответ на любой запрос используйте символ *. Если используется внешняя БД, данные для подключения к ней должны быть указаны в разделе DATABASES, где:
- в ENGINE надо изменить тип базы данных (django.db.backends.mysql для MySQL или django.db.backends.postgresql_psycopg2 для PostgreSQL)
- в NAME, USER, PASSWORD указать имя БД, ее пользователя и ее пароль
- в HOST указать значение из письма, которое Вы получили при создании ноды БД
- в PORT указать 3306 для MySQL или 5432 для PostgreSQL
Не забудьте сохранить изменения.
8. Создайте новые подкаталоги для статического / мультимедийного контента и запустите синхронизацию ресурсов:
mkdir ROOT/static_local
mkdir ROOT/media
python manage.py collectstatic
9. После внесения этих изменений, перезагрузите ноду веб-сервера
10. Проверьте работу приложения
Оно перенаправит Вас на страницу входа в админ-панель. Для входа в нее воспользуйтесь логином и паролем
admin/admin.
Теперь Ваше окружение Django CMS готово к работе!
Развернуть существующее приложение Django
Если у вас уже есть заранее подготовленное приложение Django, процедуру развёртывания можно выполнить всего за несколько шагов.
Примечание
Если вы используете собственный архив для развёртывания, убедитесь, что в вашем пакете Django находятся следующие файлы:
- Файл needs.txt с именами всех модулей Python, которые требуются вашему приложению, он будет использован при автоматической установке перечисленных модулей через менеджер pip
- файл wsgi.py со скриптом для запуска приложения в окружении с использованием mod_wsgi для Apache
1. Загрузите свое приложение в менеджер деплоя
Для примера возьмем архив с приложением, доступный по ссылке
https://download.jelastic.com/public.php?service=files&t=37fb2dedbc72453fe73fbe2e890a10f2&download
2. Задеплойте архив в ноду Apache Python
3. Как только деплой будет загружен проверьте работу окружения
Приложение перенаправит вас в админ-панель Django CMS. Если вы использовали наш архив для деплоя, то для входа введите логин и пароль
jelastic/jelastic.