Установка и настройка XWiki - Windows+Oracle+Glassfish
Вступление
Данная инструкция содержит последовательное описание процесса первоначальной установки и оптимальной настройки 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.
- Java Development Kit (JDK) - необходимо для работы сервера приложений.
- Glassfish Application Server - сервер приложений.
- Oracle JDBC Drivers - оптимальный выбор ojdbc5.jar от Oracle 11G.
- Для работы приложения "импорт офисных документов" требуется:
- OpenOffice - офисный пакет, используемый для конвертации.
- windows server 2003 resource kit - позволяет создать сервис.
- В случае, если СУБД Oracle будет устанавливаться локально, то также будет необходимо Oracle Database Express Edition.
Установка базового набора приложений
OracleXE (если будем использовать локальную БД).
- просто инсталлируем через Setup.
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;
- Копируем файл JDBC-драйвера (ojdbc5.jar) в \xwiki\WEB-INF\lib (подпапка в папке приложений GlassFish для домена1).
- Редактируем файл настроек соединения XWiki с БД \xwiki\WEB-INF\hibernate.cfg:
- Закомментировать строки не относящиеся к Oracle (general database).
- Разкомментировать ту часть, где касается Oracle.
- Указываем параметры коннекта к базе (SID и host).
- Возможно еще следует включить 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
- В дереве слева выбираем 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.
- И запустить GlassFish через стандартную оснастку windows - управление сервисами.
- Пробуем открыть xwiki: http://localhost:8008/xwiki. Если все нормально, то откроется начальная страница xwiki.
Добавление начального набора страниц XWiki и начальные настройки
Импорт xar-файла
- На открывшейся после установки XWiki Enterprise странице, вверху, выбираем меню Wiki, а затем Administration.
- Откроется страница Import, с возможностью выбора файла с диска. Выбираем с диска xar-файл от xwiki и нажимаем Upload.
- Ваш xar-пакет с начальными страницами XWiki появиться в списке Available packages. Кликаем на него.
- После клика, через некоторое время, в правой части будет открыт список страниц, содержащихся внутри xar-пакета, а внизу него кнопка Import. Жмем на нее.
- После завершения импорта начального xar-файла следует залогиниться для продолжения работы.
Начальные настройки
- Для группы, куда входит юзер Admin (это группа XWikiAdminGroup) следует дать права на programming (в разделе Administration, Rights)
- Также следует настроить XWiki на работу в MultiLanguage режиме.
- Выберите раздел Administration, General
- На открывшейся странице установите true для опции Multilingual
- В поле languages установите перечень желаемых языков через запятую, например en,ru,ro
Установка и настройка сервера OpenOffice.org
Установка 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, добавить строку:
- Для того, чтобы вывести все иконки на тулбар в wysiwyg-редакторе необходимо:
- открываем templates\macros.vm
- находим строку plugins: '$xwiki.getXWikiPreference("wysiwyg.plugins", - в этой строке указываются те плагины, которые будут подгружаться, но сам вид тулбаров настраивается ниже.
- в найденную строку добавляем через пробелы (место не имеет значения) - color font justify - только этих трех плагинов нету в варианте по умолчанию.
- Теперь в строке toolbar: '$xwiki.getXWikiPreference("wysiwyg.toolbar" добавляем сами иконки. Вот полный вариант:
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">) добавить:
#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.
- Ограничение в 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)