четверг, 6 февраля 2014 г.

Сайт на Orchard CMS. Первые шаги и развертывание

Задача:
Создать сайт на OrchardCMS для размещения статей, т.е. блог.

Требования:
  1. Трехуровневое меню
  2. Простой готовый шаблон

План:
  1. Установить OrchardCMS на свою машину в версии для разработчиков (на случай, если понадобятся доработки) 
  2. Русифицировать
  3. Настроить меню
  4. Развернуть на сервере



Введение:

OrchardCMS - CMS,   разработанная на ASP.NET  MVC разработчиками Microsoft.

Есть сайт проекта http://orchardproject.net/ на английском. Там в общем-то все основы написаны и даже есть видео. Так же про Orchard писал Владимир Юнев, сотрудник Microsoft - http://technet.microsoft.com/ru-ru/subscriptions/hh335092.aspx

А здесь  хорошо написано про организацию контента.

Еще есть канал Рона Петерсона на ютубе, где он дают краткие видео-руководства.

Имеет интересную идеологию, к которой надо немного привыкнуть. К примеру мне, мыслящей ядром и модулями, было ново начать мыслить другими единицами, типа виджетов, контентных типов и полей.

При установке имеет три готовых "рецепта": по-умолчанию, ядро и блог.

Текущая версия - 1.7.2
Скачать можно по ссылке

Выполнение:

Пункт 1.
  1. Скачиваем http://orchardproject.net/download последнюю версию CMS, выбрав исходники
  2. Распаковываем
  3. В получившейся папке открываем папку src, далее запускаем файл Orchard.sln.
  4. Он открывается в Visual Studio. 
  5. Запускаем - F5. После долго построения открывается сайт и предлагает ввести параметры для установки: название сайта и т.д.
  6. В качестве рецепта выбираем блог
  7. Готово. Дело за настройкой и развертывании на сервере
Пункт 2.
 
Про локализацию написано тут:
http://docs.orchardproject.net/Documentation/Creating-global-ready-applications

Я выбрала первый вариант:
  1. Скачала файл русификации отсюда:                                                                      http://orchardproject.net/localize/ru-RU
  2. Распаковала в папку [папка проекта]\src\Orchard.Web\
  3. Файлы, предлагаемые для замены, заменила.
  4. Идем в Settings в админке (справа), в General Settings под выпадающим списком "Default Site Culture" жмем "Add or remove supported cultures for the site." и в выпадающем списке выбираем ru-RU, жмем "Add"
  5. Возвращаемся на предыдущую страницу и в выпадающем списке "Default Site Culture" выбираем ru-RU и жмем "Save".
  6. Готово
Пункт 3.
По умолчанию  в Orchard Blog имеется Главное меню. Вообще, система меню в Orchard очень гибкая - можно создать множество собственных меню. Это делается вручную и очень удобно и гибко.
Здесь написано про работу с навигацией и меню:
http://docs.orchardproject.net/Documentation/Navigation-and-menus

Вот часть статьи, относящаяся к созданию подменю:

"Creating a submenu is very easy: Navigate to the Navigation section. If you hover over an already added Menu Item with your mouse, you'll see that you can drag and drop the Menu Item. The trick is to simply drag the Menu Item a bit to the right until it snaps to a sub container. Now you can visually create your navigation hierarchy without having to configure anything. A simple mouse touch is enough."

Пункт 4.

В инете есть статьи и развертывании с помощью WebMatrix. Например, здесь в конце статьи http://technet.microsoft.com/ru-ru/subscriptions/hh335094.aspx Как правильно развернуть из Visual Studio, не нашла, а интуитивно не понятно, т.е. папок у проекта много.

Так же есть статья на официальном сайте Orchard на английском:
http://docs.orchardproject.net/Documentation/Building-and-deploying-Orchard-from-a-source-code-drop
Тоже безуспешно.

Оказывается, то ли я плохо читаю по-английски, то ли там правда не очень понятно написано.

Мне был не понятен пункт 3:
Open a Visual Studio command prompt or a .NET SDK command prompt at the location of your enlistment and run build Precompiled. This will build the application into a "build" subdirectory.

Оказалось, в папке с исходниками есть файл build.cmd, который в общем-то и надо запустить с параметром Precompiled. Т.е., если попорядку, то надо сделать так:
  1. Скачать исходники.
  2. Открыть командную строку Visual Studio и перейти в ней в папку с файлом build.cmd. У меня этот файл лежит в корне папки с исходниками:
    cd [папка с файлом build.cmd]
  3. В командной строке набрать команду build Precompiled
  4. После завершения компиляции перейти в папку build\Precompiled, которая образуется в корне папки с проектом и скопировать оттуда файлы в каталог сайта, который указан в IIS
  5. Дать права папкам App_Data и Media, как написано в статье. Видимо, надо давать полный доступ и перезапускать сайт в IIS (иначе не работало. А может, косяк был и не в этом)
  6. Если система 64-битная, то, как написано в статье, в настройках пула приложений разрешить запуск 34-битных приложений
НО!!! Когда у меня все успешно запустилось, то открылась страница установки сайта. А у меня уже есть готовый сайт, который надо просто перенести на рабочий сервер.  Косяк!

Почитала книжку "Orchard CMS: Up and Running" John Zablocki и сделала примерно так, как там описано обновление версии orchard:
  1. Сделала пакет, как описано выше, скопировала его на сервер
  2. НЕ стала запускат ьмастер установки, а скопировала туда папки Themes, Media, App_Data, модули, которые устанавливала, а в папке рецепта, которая лежит в App_Data проверила строку подключения в файле Settings.txt.
  3. Запустила сайт с сервера - работает.
Еще есть описание установки без инсталляции http://stackoverflow.com/questions/6404330/how-to-deploy-an-orchard-cms-site-including-all-settings-and-content-from-devel Вроде там примерно так же описано, но я делала не по этому руководству.

НО!!! Работает только локально. На веб-сервере - нифига. Сравнила настройки пула и права - сходятся.

Ошибка такая:

Ошибка HTTP 500.19 - Internal Server Error
Запрашиваемая страница не доступна из-за неверной конфигурации данных для этой страницы.

Номер ошибки: 0x80070021
Текст: Данный раздел конфигурации не может использоваться на этом пути. Это происходит, когда раздел блокирован на родительском уровне. Блокировка происходит либо по умолчанию (overrideModeDefault="Deny"), либо устанавливается непосредственно при помощи тега расположения с overrideMode="Deny" или наследуемым свойством allowOverride="false". 

И по поводу того, где надо производить установку модулей, локально или на рабочем сервере:

http://stackoverflow.com/questions/15207606/orchard-cms-how-to-sync-production-and-local-dashboard-project-changes 

2 комментария:

  1. Получаю ту же ошибку что и вы

    ОтветитьУдалить
  2. только ошибка 0x8007000d.

    По поводу вашей ошибки на сайте поддержки Microsofta нашёл след. заметку.
    "Чтобы устранить эту проблему, разблокируйте указанный раздел или не используйте его на этом уровне. Дополнительные сведения о блокировке конфигурации как использование блокировки в конфигурации IIS 7.0см."
    Вот тут https://support.microsoft.com/ru-ru/kb/942055 ищите по номеру вашей ошибки.

    ОтветитьУдалить