Russian

Last modified by Thomas Mortagne on 2011/02/22 09:06

Вступление

Данная инструкция содержит последовательное описание процесса первоначальной установки и оптимальной настройки XWiki Enterprise в варианте под Windows + GlassFish + OracleXE.

Исходным материалом послужили инструкции по инсталляции с сайта xwiki.org. Однако они являются более абстрактными и часто не учитывают специфики настроек под русские условия. Именно это и послужило стимулом к написанию данной инструкции.

Инструкция делалась "под себя" - для обеспечения простой возможности повторить быстрое развертывание системы (в т.ч. другими администраторами). Инструкция составлена не по принципу "если - то" (как например, составлены инструкции по инсталляции на xwiki.org), а более жестко - "делать так" - поэтому многие вещи указываются без подробных объяснений, почему именно так.

Имеется старая версия данной инструкции, которая начинала писаться еще когда XWiki была версией 2.0 или 2.1 и под Jetty, потом туда добавился GlassFish. Но все равно там осталось много не используемого сейчас. Новый вариант инструкции писался под версию XWiki - 2.7, 3.0.

Из нового варианта инструкции убрано много лишнего, в 1-ую очередь - все что касается Jetty. Изначально я пытался развертывать XWiki в варианте Windows + Jetty + OracleXE, но потом понял, что Jetty не годится для рабочей эксплуатации. Из принципиальных минусов - зависания сервиса и медленная скорость работы с аттачами.

Потом стал искать что-то вместо Jetty - и остановился на GlassFish. Понравилось - web-интерфейс настройки, то что не надо так сильно тюннить его как Jetty, ну и конечно скорость - файлы аттачились почти со скоростью, как если бы они копировались в локалке (jetty раз в 10 хуже)!

Новый вариант инструкции пока не полный. Еще будут добавляться разделы касаемо настройки LDAP, настройки соединения со сторонней базой Oracle и пр. Также планируется перевод на английский и румынский языки.

ПО, необходимое для загрузки

  • XWiki Enterprise:
    • берем war-файл - собственно само приложение,
    • и также xar-файл - содержит начальные настройки и базовые страницы wiki.
  • Для работы приложения "импорт офисных документов" требуется:
  • В случае, если СУБД Oracle будет устанавливаться локально, то также будет необходимо Oracle Database Express Edition.
    Следует закачивать т.н. Universal-версию OracleXE для обеспечения поддержки UTF-8 (мультиязычности) на уровне БД.

Установка базового набора приложений

OracleXE (если будем использовать локальную БД).

  • просто инсталлируем через Setup.
    В OracleXE, при инсталляции, отсутствуют возможности настройки языковых параметров БД. А для XWiki, для обеспечения мультиязычности, нужно чтобы они были настроены в UTF8 (например, NLS_CHARACTERSET должен быть AL32UTF8). Для этого необходимо чтобы OracleXE устанавливалась на версию Windows, где изначально все языковые настройки были сделаны в English. При этом недостаточно, чтобы эти настройки были настроены перед установкой OracleXE - они должны быть изначально такими именно при инсталляции Windows. Попытки настройки "по ходу дела" не дали результата.

Java Development Kit (JDK)

  • Запускаем installer
  • JavaDB можно отключить
  • дальше все автоматически

GlassFish application server

  • запускаем installer 
  • должен найти установленную версию JDK
  • дополнительный компонент Update Tool выбираем
  • меняем порт по умолчанию, т.к. он пересекается с портом web-консоли Oracle (8080). Ставим, например - 8008.
  • дальше все автоматически

Установка XWiki Enterprise

Установка XWiki в GlassFish

  • запускаем GlassFish командой C:\glassfishv3\bin\asadmin start-domain (останавливать командой stop-domain).
  • В браузере набираем http://localhost:4848 и заходим в админ-консоль GlassFIsh (имя и пароль задаются при инсталляции, например, как в XWiki - Admin/admin).
  • Выбираем в дереве слева Applications а в правой части - Deploy.
  • Открываем с диска war-файл XWiki.
  • Устанавливаем: Type = Web Application, Context Root = xwiki, Application name = xwiki.
  • Остальные параметры можно не менять и жмем OK.

Настройка соединения с Oracle

  • создаем схему для XWiki:
    • подключаемся к Oracle dba-юзером
    • создаем схему create user xwiki identified by xwiki;
    • назначаем привелегии grant all privileges to xwiki;
      Можно не назначать полные привилегии, а оставить по умолчанию. Полные привилегии могут потребоваться для режима multi-wiki (когда устанавливается XEM) (пока в точности не известно).
  • Копируем файл JDBC-драйвера (ojdbc5.jar) в \xwiki\WEB-INF\lib (подпапка в папке приложений GlassFish для домена1).
  • Редактируем файл настроек соединения XWiki с БД \xwiki\WEB-INF\hibernate.cfg:
    • Закомментировать строки не относящиеся к Oracle (general database).
    • Разкомментировать ту часть, где касается Oracle.
    • Указываем параметры коннекта к базе (SID и host).
      Если локально установлен OracleXE можно ничего не менять - а только разкомментировать и закомментировать соответствующие места.
  • Возможно еще следует включить UTF-8 для Oracle (точно не известно насколько это нужно или нет)
    • Открываем файл настроек соединения XWiki с БД \xwiki\WEB-INF\hibernate.cfg
    • перед строкой <mapping resource="xwiki.oracle.hbm.xml"/> добавляем 2 строки:
      <property name="connection.useUnicode">true</property>
      <property name="connection.characterEncoding">UTF-8</property>
  • Перезапускаем GlassFish командами stop-domain и start-domain.

Дополнительная настройка GlassFish и запуск его как windows-сервиса

Дополнительная настройка GlassFish

  • Следует добавить дополнительную опцию для JVM -Xrs
    Данная настройка необходима, т.к. в противном случае, GlassFish windows-сервис будет завершаться всегда при logout пользователя на сервере.
    • Заходим в админ-консоль GlassFish
    • В дереве слева выбираем Configuration, JVM Settings
    • На открывшейся страничке выбираем закладку вверху JVM Options
    • Откроется страница с параметрами JVM. Нажимаем кнопку вверху списка параметров Add JVM Options
    • В добавленном поле пишем -Xrs и нажимаем на Save
  • Еще одна необходимая вещь - настройка UTF-8 в GlassFish
    • Также из admin-консоли, в дереве слева выбираем Enterprise Server
    • На открывшейся странице выбираем закладку вверху Advanced, a потом подзакладку Domain attributes
    • В поле Locale пишем en_US.UTF-8

Установка GlassFish как windows-сервиса

  • Останавливаем GlassFish командой stop-domain
  • Затем установить GlassFish как windows-сервис командой asadmin create-service.
    Для выполнения этой команды на компьютере должен быть установлен Net Framework v.2. 
  • И запустить GlassFish через стандартную оснастку windows - управление сервисами.
    Помимо windows-оснастки, управление сервисом можно осуществлять из командной строки, следующими командами:
    Start Command:  C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe  start
    Stop Command:   C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe  stop
    Uninstall Command:  C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe  uninstall
    Install Command:  C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe  install
  • Пробуем открыть xwiki: http://localhost:8008/xwiki.  Если все нормально, то откроется начальная страница xwiki.
    - GlassFish в реальности запускается не сразу после старта windows-сервиса - следует подождать еще 2-5 минут.
    - Если вместо начальной страницы XWiki открылась страница с сообщениями об ошибках - то следует устранить ошибку и обязательно перезапустить GlassFish.
    - Из типовых проблем можно выделить: а) забыли jdbc-драйвер Oracle; b) неправильно отредактировали файл настроек соединения с БД; c) не так как нужно для XWiki настроены языковые параметры (NLS) Oracle (см. комменты по этому поводу выше).
     

Добавление начального набора страниц XWiki и начальные настройки
Импорт xar-файла

  • На открывшейся после установки XWiki Enterprise странице, вверху, выбираем меню Wiki, а затем Administration
  • Откроется страница Import, с возможностью выбора файла с диска. Выбираем с диска xar-файл от xwiki и нажимаем Upload.
  • Ваш xar-пакет с начальными страницами XWiki появиться в списке Available packages. Кликаем на него.
  • После клика, через некоторое время, в правой части будет открыт список страниц, содержащихся внутри xar-пакета, а внизу него кнопка Import. Жмем на нее.
  • После завершения импорта начального xar-файла следует залогиниться для продолжения работы.
    первоначально логиниться следует под пользователем Admin, а пароль admin.

Начальные настройки

  • Для группы, куда входит юзер Admin (это группа XWikiAdminGroup) следует дать права на programming (в разделе Administration, Rights)
  • Также следует настроить XWiki на работу в MultiLanguage режиме.
    • Выберите раздел Administration, General
    • На открывшейся странице установите true для опции Multilingual
    • В поле languages установите перечень желаемых языков через запятую, например en,ru,ro

Установка и настройка сервера OpenOffice.org

XWiki поддерживает работу с версиями OpenOffice.org 3.0x, 3.1x, 3.2x. Версия 3.3 на текущий момент не поддерживается.

Установка OpenOffice.org и настройка на работу с XWiki возможна 2 способами:

  • internal - XWiki непосредственно работает с установленной версией OpenOffice.org
  • external - OpenOffice.org запускается как windows-сервис, а XWiki работает уже с ним

Далее каждый из этих способов будет рассмотрен отдельно. Нами будет рассматриваться internal-вариант, как более простой.

Установка OpenOffice.org и настройка для XWiki в варианте internal

  • Запускаем инсталлятор, отвечаем на вопросы, путь по умолчанию лучше не менять.
  • После завершения запускаем Openoffice хотя бы один раз, чтобы выполнился мастер регистрации.
  • Заходим в опции OpenOffice.org, раздел Open/Save, дальше HTML Compatibility
  • Устанавливаем параметр Character set в UTF-8 и сохраняем
  • Открываем файл \xwiki\WEB-INF\xwiki.properties, разкоментируем и меняем в нем следующие переменные:
    • переменную openoffice.autoStart=true
    • а также openoffice.profilePath=C:/Documents and Settings/Administrator/Application Data/OpenOffice.org/3 - это путь куда пишутся настройки для текущего пользователя - именно они и будут использоваться в дальнейшем.
  • Теперь надо перезапустить GlassFish и в XWiki, Administration открыть раздел OpenOffice Server. Если все нормально - в поле server state будет стоять Connected.

Дополнительный тюннинг XWiki

  • Если требуется чтобы имена прикрепленных файлов показывались полностью (по умолчанию показывается только 1-ые 25 символов), следует в attachmentsinline.vm в папке templates добавить первую строку #set($maxnamelength = 256)
  • Для того, чтобы в Print preview показывалось только собственно содержимое страницы и ничего более следует открыть файл print.css в папке с используемым скином и в раздел /* Hide unneeded stuff */, после строки #globallinks, #footerglobal, добавить строку:
#headerglobal, #hierarchy, #document-title, #document-info, #xdocFooter, #docextrapanes,
  • Для того, чтобы вывести все иконки на тулбар в wysiwyg-редакторе необходимо:
    • открываем templates\macros.vm
    • находим строку plugins: '$xwiki.getXWikiPreference("wysiwyg.plugins", - в этой строке указываются те плагины, которые будут подгружаться, но сам вид тулбаров настраивается ниже.
    • в найденную строку добавляем через пробелы (место не имеет значения) - color font justify - только этих трех плагинов нету в варианте по умолчанию.
    • Теперь в строке toolbar: '$xwiki.getXWikiPreference("wysiwyg.toolbar" добавляем сами иконки. Вот полный вариант:
bold italic underline strikethrough teletype | subscript superscript | justifyleft justifycenter justifyright justifyfull | unorderedlist orderedlist |
outdent indent | undo redo | format | fontname fontsize forecolor backcolor | hr removeformat symbol | paste

- символ "|" означает строчный разделитель, символ "/" - разбивает тулбар на несколько строк.

  • Для того, чтобы обеспечить сортировку прикрепленных файлов по дате изменения, следует в файле attachmentsinline.vm в папке templates после строки #set($attachments = $doc.attachmentList) (и соответственно перед <div id="attachmentscontent" class="xwikiintracontent">) добавить:
#set($attachmentsMap = $util.hashMap)
#foreach($a in $attachments)
  #if(!$attachmentsMap.containsKey($a.date))
    #set($discard = $attachmentsMap.put($a.date, $util.arrayList))
  #end
  #set($discard = $attachmentsMap.get($a.date).add($a))
#end
#set($dates = $util.arrayList)
#foreach($date in $attachmentsMap.keySet())
  #set($discard = $dates.add($date))
#end
#set($dates = $util.sort($dates))
#set($dates = $util.reverseList($dates))
#set($attachments = $util.arrayList)
#foreach($date in $dates)
  #set($discard = $attachments.addAll($attachmentsMap.get($date)))
#end 
  • Аттачи-файлы MS Office 2007 и OpenOffice в IE сохраняются как zip-архивы (с расширением zip). Проблема имеет место только в IE. Решение такое - в файл web.xml, который лежит в папке WEB-INF приложения добавить в соответствующем месте (поискать по mime) содержимое из приложенного текстового файла. В XWiki последних версий в файле web.xml уже вставлены MIME-типы под некоторые форматы файлов, но далеко не под все.
  • Проблемы с импортом xar-файлов, проявляющиеся на версиях XWiki 2.3, 2.4 на Glassfish v.3 (выдается ошибка: number 0 in 11: Uncaught exception Wrapped Exception: org.apache.commons.codec.binary.Base64), связаны с тем, что Glassfish и XWiki имеют разные версии одной и той же библиотеки. Для решения проблемы следует скопировать файл commons-codec-1.4.jar из \xwiki\WEB-INF\lib в папку \glassfishv3\glassfish\modules а оттуда удалить commons-codec-repackaged.jar.
    В версии XWiki 3.0 данной проблемы уже не возникло.
  • Ограничение в 10MB для upload-а. В XWiki имеется ограничение на upload. Для его регулирования следует:
    • edit the XWiki.XWikiPreferences class and add a NumberProperty field of type long, named upload_maxsize; if the field already exists, you can skip this step
    • edit the XWiki.XWikiPreferences object and specify the desired maximum attachment size (in bytes)