Установка и запуск Mezzanine CMS на сервере Ubuntu
Linux, Python, Ubuntu, VPS | Комментировать запись
Вступление
Система управления контентом (content management system, или CMS) – приложение, которое позволяет публиковать содержимое сайта. С ростом спроса большинство приложений CMS стали более сложными в использовании, чем даже разработка собственной системы на основе фреймфорка.
К счастью, из этого правила есть исключения, и Mezzanine CMS – одно из них.
Основанная на очень мощном и расширяемом веб-фреймворке Django система Mezzanine помогает веб-разработчикам постепенно усложнять проект с самого его старта, а также использует интуитивно понятный подход к разработке сайтов.
Данная статья охватывает подготовку облачного сервера Ubuntu 13 к установке и развертыванию веб-сайта на основе Mezzanine CMS, а также начало работы с библиотекой и публикацию контента.
Кратко о Django
Django – это фреймворк веб-разработки, основанный на языке программирования Python. Будучи широкомасштабным проектом и библиотекой, он упаковывает и поставляет огромнейшее количество инструментов и приложений для быстрого и продуктивного старта. Django – отличное решение для тех, кто готов потратить некоторое время на ознакомление с фреймворком для более эффективного его использования в дальнейшем.
С целью решить некоторые проблемы разработки мощные фреймворки способны создавать не только пользовательские приложения или API, но и пакеты программного обеспечения. Mezzanine CMS – пример разработанного подобным образом пользовательского программного обеспечения на базе Django.
Mezzanine CMS
Как уже было сказано, Mezzanine – это система управления контентом, разработанная в популярном фреймворке Django. Хотя она требует некоторых знаний языка программирования Python и определенных навыков использования Django, начать разработку сайта в Mezzanine намного проще, чем в других библиотеках и приложениях управления контентом (особенно это касается разработанных в других языках приложений).
Функциональные возможности
Как CMS, Mezzanine поставляется с огромным количеством полезных функций, удовлетворяющих основные потребности веб-разработчиков. Поскольку Django легко расширяется, Mezzanine также имеет множество дополнительных сторонних пакетов, которые обеспечивают гибкость процесса разработки. По сути, сама система Mezzanine является расширением (или приложением) Django.
Основные функции Mezzanine CMS
- Возможность планирования публикаций;
- Упорядочение страниц по принципу Drag-and-Drop;
- Наличие рынка тем и готового дизайна;
- Управление учетной записью и проверка электронной почты;
- Простое распространение контента;
- Удобный интерфейс для мобильных телефонов ( а также смартфонов, планшетов и т.д.);
- Фильтрация спама;
- Сокращение URL;
- Интеграция Disqus и Gravatar;
- Автоматическое развертывание;
- Встроенный механизм для ведения блогов;
- Редактирование визуального контента;
- Добавление тегов;
- Настройка индивидуальных типов контента и их стилей;
- Легкие миграции;
и многое другое.
Сторонние пакеты
Благодаря возможностям расширения Django система Mezzanine поддерживает множество дополнительных библиотек и модулей, которые способны удовлетворить различные потребности разработчиков.
Вот список некоторых популярных сторонних модулей:
- mdown: виджеты и фильтры для создания и публикации контента с использованием Markdown.
- Themes: коллекция тем для Django и Mezzanine.
- Captcha: автоматическая поддержка капчи для Mezzanine.
- Slides: возможность прокрутки экрана.
- Calendar: календарь для Mezzanine.
- Podcasts: менеджер подкастов.
- Pageimages: добавление индивидуальных фоновых изображений для страниц Mezzanine.
- Recipes: плагин публикации набора команд.
Полные модули приложений
Некоторые модули Mezzanine позволяют создавать полные веб-приложения с уникальными функциональными возможностями (например, торговые и коммерческие сайты).
Некоторые из этих модулей:
- Cartridge: модуль для онлайн-покупок и электронной торговли;
- Bookmarks: многопользовательское приложение закладок;
- Polls: приложение для проведения опросов;
- Careers: приложение для публикации вакансий
- Wiki: приложение wiki.
Начало работы: подготовка Ubuntu VPS
Mezzanine является проектом Python, потому систему нужно подготовить к запуску приложения, чтобы сайт работал без сбоев и ошибок.
Чтобы сделать это, следуйте инструкциям статьи:
- Настройка облачного сервера Ubuntu для работы веб-приложений Python
А затем перейдите к установке Mezzanine.
Установка Mezzanine
Для установки Mezzanine и ее зависимостей можно использовать очень удобный инструмент Python под названием virtualenv. Потому данный раздел начинается с создания среды.
Виртуальная среда Python (virtual environment) для Mezzanine
Создайте виртуальную среду (если пока что таковой нет):
virtualenv mezzanine_env
cd mezzanine_env
Или активируйте ее:
source bin/activate
Установка Mezzanine и зависимостей
Подготовив среду, используйте менеджер пакетов pip, чтобы скачать и установить Mezzanine и все необходимые зависимости.
Запустите следующую команду:
pip install mezzanine
Возможно, также понадобится установить pillow:
pip install pillow
Работа с Mezzanine
Как инструмент, основанный на Django, Mezzanine поставляется с Django-подобными функциями. Одной из них является mezzanine-project, которая используется для решения административных задач.
Итак, начнем работать с Mezzanine.
Создание проекта
Создание веб-сайта с помощью Mezzanine настолько простое, что требует запуска всего одной команды:
# Синтаксис: mezzanine-project [имя проекта]
# Пример: mezzanine-project mezzanine_app
# Перейдите в каталог приложения:
cd mezzanine_app
Инициализация базы данных
Mezzanine поставляется с дополнениями к manage.py (стандартному инструменту управления Django), например, с инструментом created.
Запустите следующую команду, чтобы создать и инициировать базу данных:
python manage.py createdb
После выполнения данной команды появится ряд вопросов:
# You just installed Django's auth system,
# which means you don't have any superusers defined.
# Would you like to create one now? (yes/no):
yes
# ^^ Create an admin account by answering the questions.
# Please enter the domain and optional port in
# the format 'domain:port'.
# For example 'localhost:8000' or 'www.example.com'.
# Hit enter to use the default (127.0.0.1:8000):
www.example.com:80
# ^^ Enter your domain name.
# Would you like to install some initial demo pages?
# Eg: About us, Contact form, Gallery. (yes/no):
yes
# ^^ Create sample data.
Ответив на вопросы, переходите к работе с приложением.
Основные конфигурации
Чтобы избежать ошибок, нужно выполнить определенные конфигурации.
Отредактируйте файл settings.py с помощью текстового редактора nano:
nano settings.py
В данном файле найдите ALLOWED_HOSTS:
ALLOWED_HOSTS = []
Замените на:
# ALLOWED_HOSTS = [] # раскомментируйте
# Пример (из документации Django):
ALLOWED_HOSTS = [
'.example.com', # Разрешить домен и поддомены
'.example.com.', # Разрешить FQDN и поддомены
]
# Замените example.com своим собственным доменным именем.
Затем найдите:
TIME_ZONE =
Внесите сюда свой часовой пояс:
TIME_ZONE = 'Europe/Amsterdam'
Сохраните изменения и выйдите, нажав CTRL+X и Y для подтверждения.
Тестирование приложения
Используйте следующую команду, чтобы запустить образец сервера приложений и протестировать новое приложение Mezzanine:
python manage.py runserver 0.0.0.0:8000
Чтобы проверить инсталляцию, откройте сервер через порт 8000:
http://[IP сервера]:8000
Примечание: чтобы закрыть тестовый сервер, нажмите CTRL+C.
Создание контента
Опубликуйте новый контент сайта, что в Mezzanine сделать очень просто.
Перейдите к разделу администратора:
http://[IP сервера]:8000/admin
Введите учетные данные администратора и нажмите “Log In”.
Это откроет инструментальную панель (Dashboard). С ее помощью можно быстро публиковать информацию в блоге; кроме того, наведя курсор на раскрывающееся меню Content, можно выбрать любой элемент, который следует изменить, например:
Pages:
http://[IP сервера]:8000/admin/pages/page/
Подготовка к производству
Не стоит полностью полагаться на тестовый сервер, который поставляется вместе с приложением.
Для развертывания сайта нужно использовать полноценный сервер веб-приложений (например, Unicorn), желательно на основе инвертированного прокси, что будет выполнять начальную обработку запросов и и распределение статических файлов (например, изображений).
Чтобы быстро ознакомиться с переходом к стадии производства, прочтите раздел “Подготовка к производству” статьи “Настройка облачного сервера Ubuntu для работы веб-приложений Python”.
Конспект команд
Ниже приведен полный конспект инструкций данного руководства:
# Подготовьте систему и установите инструменты Python:
aptitude update
aptitude -y upgrade
aptitude install -y build-essential
aptitude install -y cvs subversion git-core mercurial
aptitude install python-setuptools python-dev python2.7-dev python-software-properties libpq-dev
aptitude install libtiff4-dev libjpeg8-dev zlib1g-dev libfreetype6-dev liblcms2-dev libwebp-dev tcl8.5-dev tk8.5-dev
curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -
curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -
export PATH="/usr/local/bin:$PATH"
pip install virtualenv
# Создайте виртуальную среду:
virtualenv mezzanine_env
cd mezzanine_env
source bin/activate
pip install mezzanine
# Создайте проект Mezzanine:
mezzanine-project mezzanine_app
cd mezzanine_app
python manage.py createdb --noinput
# Запустите тестовый сервер:
python manage.py runserver 0.0.0.0:8000
Примечание: последняя команда created с флагом –noinput позволяет обойти вопросы при инициализации базы данных. Имя администратора будет admin, а пароль – default. После этого можно продолжить устанавливать конфигурации и проводить тестирование приложения.
Tags: Django, Linux, Mezzanine CMS, pillow, Python, Ubuntu, Ubuntu 13, virtualenv, VPS