Установка и запуск Mezzanine CMS на сервере Ubuntu

Published by Leave your thoughts

Вступление

Система управления контентом (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: , , , , , , , ,

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *


*

Можно использовать следующие HTML-теги и атрибуты: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>