Last modified by Eugen Colesnicov on 2011/02/21 21:13

Show last authors
1 {{warning}}
2 **Это старый вариант инструкции, который сейчас уже не обновляется. [[Новый вариант доступен здесь>>UNA.XWikiInstalation]]**
3 {{/warning}}
4
5 {{box cssClass="floatinginfobox" title="**Содержание**"}}
6 {{toc start="2"/}}
7 {{/box}}
8
9 == ПО, необходимое для загрузки ==
10
11 === С сайта [[XWiki>>http://www.xwiki.org/xwiki/bin/view/Main/Download]] ===
12
13 * Базовый продукт [[XWiki Enterprise>>http://www.xwiki.org/xwiki/bin/view/Main/Download#HXWikiEnterprise]]:
14 ** берем war-файл - собственно само приложение,
15 ** и также xar-файл - содержит начальные настройки и базовые страницы wiki.
16
17 * Для установки "поверх" XWiki Enterprise Manager (обеспечит режим multiwiki):
18 ** нужен [[Application Manager plugin>>http://code.xwiki.org/xwiki/bin/view/Plugins/ApplicationManagerPluginDownloads]] и [[Application Manager application>>http://code.xwiki.org/xwiki/bin/view/Applications/ApplicationManagerApplicationDownloads]]
19 ** а также [[Wiki Manager plugin>>http://code.xwiki.org/xwiki/bin/view/Plugins/WikiManagerPluginDownloads]] и [[Wiki Manager application>>http://code.xwiki.org/xwiki/bin/view/Applications/WikiManagerApplicationDownloads]]
20 ** еще может понадобиться [[xar-файл от XEM application>>http://www.xwiki.org/xwiki/bin/view/Main/Download#HXWikiEnterpriseManager]] (необязательно) - содержит начальные настройки и домашнюю страницу. Брать следует xar-файл, специально предназначенный для установки поверх существующей XWiki Enterprise.
21
22 * Также доступны для скачивания множественные дополнительные плагины и приложения, которые будут рассмотрены отдельно.
23
24 === Другое ПО ===
25
26 * Вам нужен Application Server / Servlet Container и адекватная версия Java к нему. Имеются разные варианты, в т.ч.:
27 ** [[Jetty>>http://docs.codehaus.org/display/JETTY/Downloading+Jetty]]. И для Jetty достаточно [[Java JRE>>http://www.java.com/ru/download/manual.jsp]]
28 ** [[GlassFish>>http://docs.codehaus.org/display/JETTY/Downloading+Jetty]] Для GlassFish нужен вариант [[Java JDK>>http://java.sun.com/javase/downloads/widget/jdk6.jsp]], который включает в себя JRE.
29
30 * Вам нужны [[Oracle 10g JDBC Drivers>>http://www.oracle.com/technology/software/tech/java/sqlj_jdbc/index.html]], версию брать в зависимости от версии Oracle и проблем с nls (о проблемах с nls - см. ниже). Для Oracle 10G предлагается //ojdbc14.jar//, а для Oracle 11G - //ojdbc5.jar//, или //ojdbc6.jar//. Эти файлы бывают разных версий в зависимости от редакций Oracle. В реальности ojdbc6.jar работает и с Oracle 10G.
31 \\//Примечание. В некоторых случаях версия jdbc-драйвера может быть актуальна. Например, с OracleXE есть проблема связанная с тем, что JDBC Drivers от текущей версии XE 10.2.0.1 не совсем подходят - в них имеются проблемы с nls (языковыми настройками). С XE 10.2.0.1 корректно работают jdbc-драйвера от 10.1.0.2 (почему-то). Ситуация возникала с XWiki 2.0 M3 - с учетом, что это был предварительный релиз 2.0 - возможно проблема именно в этом.//
32
33 * Для работы приложения "импорт офисных документов" требуется:
34 ** [[OpenOffice>>http://download.openoffice.org/index.html]]
35 ** [[windows server 2003 resource kit>>http://go.microsoft.com/fwlink/?LinkId=4544]]
36
37 * В случае, если СУБД Oracle будет устанавливаться локально, то Вам нужна база данных Oracle, например [[10g Express Edition>>http://www.oracle.com/technology/software/products/database/xe/index.html]].
38
39 * В процессе настройки LDAP идентификации, Вам могут потребоваться программы-утилиты:
40 ** [[LDAP Explorer Tool>>http://ldaptool.sourceforge.net/]] - этой утилиты в принципе может быть достаточно
41 ** [[LDAP Browser/Editor>>http://www.novell.com/coolsolutions/tools/13765.html]]
42 ** [[Windows Server 2003 Administration Tools>>http://www.microsoft.com/downloads/details.aspx?familyid=86B71A4F-4122-44AF-BE79-3F101E533D95&displaylang=en]] - набор средств, для администрирования Active Directory. Бывает разных версий, в зависимости от версии Service Pack для Windows 2003 (без SP, SP1, SP2). На компьютерах с Win2003 этот набор имеется в ##C:\Windows\System32\adminpak.msi##. Для установки в Windows XP также может потребоваться [[соответствующий патч>>http://www.microsoft.com/downloads/details.aspx?familyid=6E5DA79C-5C38-4445-B039-E3F3AA5E5B25&displaylang=en]].
43 ** [[Softerra LDAP Browser 2.6>>http://www.ldapadministrator.com/download.htm]] - имеет смысл юзать при возникновении проблем
44 ** [[Wireshark>>http://www.wireshark.org/download.html]] - можно брать portable-вариант, имеет смысл юзать при возникновении проблем
45
46 == Установка XWiki Enterprise ==
47
48 * Сначала устанавливаем Java (JRE или JDK). Запускаем installer и дальше все автоматически.
49
50 * Далее устанавливаем Application Server / Servlet Container:
51 ** Для Jetty просто распаковываем zip файл с jetty в ##C:\Jetty##.
52 ** Для GlassFish - запускаем installer и отвечаем на вопросы (Java DB можно не ставить, Update Tool - надо ставить).
53
54 * Теперь надо установить XWiki в Application Server:
55 ** Для Jetty - распаковываем war-файл Xwiki в ##C:\Jetty\Webapps\Xwiki## (winrar-ом например).
56 ** Для GlassFish все чуток сложнее:
57 *** запускаем GlassFish командой ##C:\glassfishv3\bin\asadmin start-domain## (останавливать - командой ##stop-domain##).
58 *** В браузере набираем http://localhost:4848 и заходим в админ-консоль (имя и пароль задаются при инсталляции, удобнее всего как в XWiki - Admin, admin).
59 *** Выбираем в дереве слева ##Applications## а в правой части - ##Deploy##.
60 *** Открываем с диска war-файл XWiki.
61 *** Устанавливаем: ##Type = Web Application, Context Root = xwiki, Application name = xwiki##. Остальные параметры можно не менять.
62
63 * Копируем файл JDBC-драйвера (##ojdbc14.jar / ojdbc5.jar / ojdbc6.jar##) в ##\xwiki\WEB-INF\lib##.
64
65 * В случае необходимости (если будем использовать локальную БД), следует установить OracleXE:
66 ** Собственно инсталляция Oracle через setup.
67 ** После установки заходим через web-доступ в консоль управления Oracle. Если не зайти хотя-бы один раз то база потом почему-то будет недоступна через другие средства (toad), возможно это глюк версии XE 10.2.0.1.
68 ** Меняем порт для HTTP-доступа Oracle на 8088 (т.к. 8080 стоит по умолчанию на web-консоли XE и совпадает с портом у Jetty / GlassFish). Для этого надо:
69 *** подключиться к Oracle под юзером DBA System: ##connect system;##
70 *** выполнить команду ##EXEC DBMS_XDB.SETHTTPPORT(8088);## Делать надо через sqlplus или Toad, т.к. встроенная web-консоль не допускает выполнение этой команды.
71 *** Для Glassgish возможен обратный вариант, когда устанавливаем порт для Glassfish, например в 80. Причем если OracleXE установлен и запущен, Glassfish автоматически определит это прямо при инсталляции и предложит другой порт.
72
73 * Следующий шаг - создание БД:
74 ** подключаемся к Oracle dba-юзером
75 ** и создаем схему ##create user xwiki identified by xwiki;##
76 ** Назначаем привелегии ##grant all privileges to xwiki;##
77 \\//Примечание. Можно не назначать полные привелегии, а оставить "по умолчанию". Полные привелегии могут потребоваться для режима multi-wiki (пока в точности не известно).//
78
79 * Далее занимаемся редактированием файла конфигурации соединения с БД ##\Xwiki\WEB-INF\hibernate.cfg##. В данном файле приведены варианты настройки соединений под основные распространенные СУБД. Следует:
80 ** Закомментировать строки не относящиеся к Oracle.
81 ** Разкомментировать ту часть, где касается Oracle.
82 ** Указываем параметры коннекта к базе (SID и host).
83 \\//Примечание. Причем если база стоит локально, можно оставить localhost.//
84
85 * Пробуем запускать Jetty / GlassFish (и XWiki соответственно):
86 ** Запуск Jetty:
87 *** Это можно сделать вручную из командной строки. Для этого запускаем dos-консоль в папке с jetty и выполняем: ##java -jar start.jar etc/jetty.xml##
88 *** Через какое-то время можно протестить в браузере: ##{{{http://localhost:8080}}}##. Должна открыться тестовая страничка jetty. Для остановки выполнения из командной строки следует использовать ##ctrl+c##.
89 *** Лучше установить jetty как сервис windows. Для этого следует в папке ##C:\Jetty\Bin## выполнить команду: ##{{{Jetty-Service.exe --install jetty-service.conf}}}## - в списке виндовых сервисов появиться jetty. Дальше запускаем и останавливаем через консоль управления сервисами windows. Для деинсталяции выполнить: ##{{{Jetty-Service.exe --remove jetty-service.conf}}}##.
90 ** GlassFish запустился сразу выполнения команды ##start-domain##, а XWiki также стартовала, при операции Deploy.
91 *** Соответственно, сейчас требуется просто сделать ##Restart## XWiki в админ-консоли GlassFish.
92 *** Если устанавливать GlassFish как windows-service, то следует остановить GlassFish командой asadmin stop-domain, а потом установить сервис командой asadmin create-service. Помимо windows-оснастки, управление сервисом можно осуществлять из командной строки, следующими командами:
93
94 {{code language="none"}}
95 Start Command: C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe start
96 Stop Command: C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe stop
97 Uninstall Command: C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe uninstall
98 Install Command: C:\glassfishv3\glassfish\domains\domain1\bin\domain1Service.exe install
99 {{/code}}
100
101 * Теперь пробуем открыть xwiki: ##{{{http://localhost:8080/xwiki}}}##. Если все нормально, то откроется начальная страница xwiki.
102
103 * Далее следует установить начальные настройки xwiki (xar-файл). Для этого на начальной странице xwiki находим и выбираем ##Administration##. Откроется страничка, на которой будет возможность выбора файла с диска. Выбираем с диска xar-файл от xwiki. После выбора нажимаем ##attach this file## (левая нижняя кнопка из имеющихся).
104
105 * После "аттача" в списке чуть выше появится строка таблицы с указанием xar-файла. Кликаем на нее. Через несколько секунд ниже или справа строки таблицы появится список всех обектов xwiki, предназначенных для импорта с возможностью отключения/включения каждого (галочками). По умолчанию все включено. Внизу списка есть отдельная невыбранная опция ##with history## - ее не надо выбирать (так по умолчанию и есть). Чуть ниже кнопка ##Import## - нажимаем. Через некоторое время откроется начальная страница xwiki для логина. Значит процесс успешно завершен, база успешно создана и настройки xwiki по умолчанию загружены.
106
107 * Первоначально логиниться следует под пользователем ##Admin##, а пароль ##admin##. Все администрирование осуществляется через Administration раздел (кнопка в правом верхнем углу).
108
109 == Настройка многоязычной поддержки ==
110
111 //Многоязычная поддержка обеспечивается тем, требуется все базовые элементы, которые так или иначе используются настроить на UTF-8. Это касается собственно XWiki, Jetty, Oracle и OS. После настройки следует включить многоязычность в XWiki и указать доступные языки.//
112
113 === Включение поддержки UTF-8 ===
114
115 * Для самой XWiki, версии более 1.9 - не требуется!
116
117 * Включение UTF-8 для Jetty.
118 ** Если jetty запускаем из командной строки, то следует создать bat-файл ##start_jetty.bat## со следующим содержанием:
119
120 {{code language="none"}}
121 echo off
122 rem set LANG=fr_FR.ISO8859-1
123 set LANG=en_US.UTF-8
124 set JETTY_PORT=8080
125 set JETTY_HOME=.
126 java %JAVA_OPTS% -Djetty.port=%JETTY_PORT% -Djetty.home=%JETTY_HOME% -Dfile.encoding=UTF-8 -jar %JETTY_HOME%/start.jar
127 {{/code}}
128
129 *
130 ** Если же используется запуск Jetty через windows-сервис, то в файл ##C:\jetty\bin\jetty-service.conf## после строки ##wrapper.java.additional.2## следует добавить строку:
131
132 {{code language="none"}}
133 wrapper.java.additional.3=-Dfile.encoding=UTF-8## после строки ##wrapper.java.additional.2
134 {{/code}}
135
136 * Включение UTF-8 для Oracle
137 ** Следует добавить в файл ##C:\jetty\webapps\xwiki\WEB-INF\hibernate.cfg.xml## перед строкой ##<mapping resource="xwiki.oracle.hbm.xml"/>## 2 строки:
138
139 {{code language="none"}}
140 <property name="connection.useUnicode">true</property>
141 <property name="connection.characterEncoding">UTF-8</property>
142 {{/code}}
143
144 *
145 ** //Также в документации сказано, что следует устанавливать Oracle в варианте UTF-8. Однако в реальности пробовалась работа с уже установленным и сконфигурированным Oracle, где при инсталляции выбиралось Win1251 - и ни каких проблем не было - и русские символы и румынские сохранялись и отображались правильно. На самом деле это не всегда так в отношении румынских символов (с русскими проблем нет). Румынские символы вроде бы сохраняются, потом странички показываются с диакритикой, но в какой-то момент они все корректно заменяются аналогичные символы без диакритики. Таки по всей видимости следует использовать Oracle ТОЛЬКО в варианте UTF-8 (задавать при инсталяции).//
146
147 * Для включения UTF-8 для Windows В переменные окружения ОС следует добавить переменную ##LANG## со значением ##en_US.UTF-8##.
148
149 === Многоязычность в XWiki ===
150
151 * Поддержка нескольких языков в XWiki включается в web-конфигураторе Xwiki, в разделе General. Следует включить режим многоязычности и перечислить, через запятую, языки, которые будут доступны пользователям. Переключатель языков появляется в правом верхнем углу XWiki.
152
153 * В текущих версиях XWiki невозможно настроить язык интерфейса системы отдельно от языка пользовательской страницы. Соответственно, чтобы появилась возможность переключения языков, следует перевести содержимое страницы на заданные в настройках языки. При включенном режиме поддержки нескольких языков, в режиме редактирования страницы, появляется специальное меню, позволяющее добавлять переводы к данной странице.
154
155 == Установка Сервера OpenOffice ==
156
157 //Установка сервера OpenOffice необходима для обеспечения функциональности импорта и вставки из буфера обмена офисных документов.//
158
159 * Устанавливаем OpenOffice.
160
161 * Запускаем его один раз, чтобы выполнился мастер регистрации.
162
163 * Устанавливаем Windows Server 2003 Resource Kit - это необходимо, т.к. в составе Resource Kit имеется утилита для создания сервиса из обычного exe-файла.
164
165 * Выполняем в командной строке для добавления сервиса команду:
166
167 {{code language="none"}}
168 "C:\Program Files\Windows Resource Kits\Tools\INSTSRV.EXE" OpenOfficeUnoServer "C:\Program Files\Windows Resource Kits\Tools\SRVANY.EXE"
169 {{/code}}
170
171 * Запускаем из Run ##Regedit##, находим раздел ##[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\OpenOfficeUnoServer## и встаем на него
172
173 * Добавляем подраздел (key) ##Parameters## и встаем на него.
174
175 * Добавляем строковый параметр (string value) ##Application## со значением ##C:\Program Files\OpenOffice.org 3\program\soffice.exe##.
176
177 * Добавляем строковый параметр (string value) ##AppParameters## со значением ##-headless -accept=socket,port=8100;urp;##
178
179 * Открываем файл ##C:\Program Files\OpenOffice.org 3\Basis\share\registry\data\org\openoffice\Setup.xcu##. Находим в нем текст:
180
181 {{code language="none"}}
182 <prop oor:name="ooSetupInstCompleted">
183 <value>false</value>
184 </prop>
185 <prop oor:name="ooSetupShowIntro">
186 <value>true</value>
187 </prop>
188 {{/code}}
189
190 и заменяем его на:
191
192 {{code language="none"}}
193 <prop oor:name="ooSetupInstCompleted" oor:type="xs:boolean">
194 <value>true</value>
195 </prop>
196 <prop oor:name="LicenseAcceptDate" oor:type="xs:string">
197 <value>2006-07-25T17:34:04</value>
198 </prop>
199 <prop oor:name="FirstStartWizardCompleted" oor:type="xs:boolean">
200 <value>true</value>
201 </prop>
202 {{/code}}
203
204 при этом дату и время указываем свое, больше даты установки OpenOffice.
205
206 * Идем в оснаску ##Services## и запускаем сервис ##OpenOfficeUnoServer##.
207
208 * Открываем файл ##\xwiki\WEB-INF\xwiki.properties##, разкоментируем и меняем в нем следующие стринги:
209 ** ##openoffice.serverType=1## (для версии выше 1.9)
210 ** и ##openoffice.autoStart=true## (для версии выше 1.9)
211 ** и еще ##openoffice.homePath=C:/Program Files/OpenOffice.org 3##
212 ** а также ##openoffice.profilePath=C:/Documents and Settings/LocalService/Application Data/OpenOffice.org/3##
213
214 * Перезапускаем jetty или glassfish, открываем xwiki, идем в Administration, OpenOffice Server - поле Status должно показывать "running" если все нормально.
215
216 == Решение проблем и тюннинг ==
217
218 * Для решения **проблемы с аттачами в Jetty** (атачи не прикладываются или же при добавлнении или удалении аттача выдается ошибка) следует увеличить память выделяемую для java.
219 ** В случае если запуск jetty осуществляется через bat-файл, то в основной строке вызова следует стринг ##%JAVA_OPTS%## заменить на ##-Xmx1024m##.
220 ** Если вызов происходит через windows-сервис, то в файле ##C:\jetty\bin\jetty-service.conf## для параметра ##wrapper.java.maxmemory## следует установить значение ##1024##.
221
222 * Для версий XWiki ниже 2.0 имеет смысл **переключить синтакс по умолчанию**. Для этого надо открыть ##C:\jetty\webapps\xwiki\WEB-INF\xwiki.properties## и в соответствующем месте указать ##core.defaultDocumentSyntax = xwiki/2.0##.
223
224 * При использовании Jetty, если **при вставке большого объема текста в вики-страничку происходит при сохранении ошибка: Form too large,** то следует в настройках jetty добавить:
225 ** В случае, если вызов идет через bat-файл, то добавляем в него ##-Dorg.mortbay.jetty.maxFormContentSize=1000000##
226 ** Если вызов jetty происходит через windows-сервис, то следует добавить строку: ##wrapper.java.additional.4=-Dorg.mortbay.jetty.Request.maxFormContentSize=1000000##
227
228 * Если требуется чтобы **имена прикрепленных файлов показывались полностью** (по умолчанию показывается только 1-ые 25 символов), следует в attachmentsinline.vm в папке templates добавить первую строку ###set($maxnamelength = 256)##
229
230 * **Проблемы windows-сервиса jetty**.
231 ** Иногда windows-сервис jetty не запускается. В таком случае его следует запустить через bat-файл start_jetty.bat или из командной строки. Обычно потом (после остановки командной строки) windows-сервис уже запускается.
232 ** Еще один способ чтобы победить упрямый windows-сервис jetty, который частенько не хочет стартовать. В настройках сервиса есть специальная закладка, где можно настроить действия в случае неуспешного старта сервиса. Как вариант, можно поставить: 1) для первого раза - перезапустить 2) для 2-го раза - вместо сервиса запустить батник ##start_jetty.bat##.
233
234 * Для того, **чтобы в Print preview показывалось только собственно содержимое страницы** и ничего более следует открыть файл ##print.css## в папке с используемым скином и в раздел ##/* Hide unneeded stuff */##, после строки ###globallinks, #footerglobal,## добавить строку:
235
236 {{code language="none"}}
237 #headerglobal, #hierarchy, #document-title, #document-info, #xdocFooter, #docextrapanes,
238 {{/code}}
239
240 * Для того, **чтобы вывести все иконки на тулбар в wysiwyg-редакторе** необходимо:
241 ** открываем ##templates\macros.vm##
242 ** находим строку ##plugins: '$xwiki.getXWikiPreference("wysiwyg.plugins",## - в этой строке указываются те плагины, которые будут подгружаться, но сам вид тулбаров настраивается ниже.
243 ** в найденную строку добавляем через пробелы (место не имеет значения) - ##color font justify## - только этих трех плагинов нету в варианте по умолчанию.
244 ** Теперь в строке ##toolbar: '$xwiki.getXWikiPreference("wysiwyg.toolbar"## добавляем сами иконки. Вот полный вариант:
245
246 {{code language="none"}}
247 bold italic underline strikethrough teletype | subscript superscript | justifyleft justifycenter justifyright justifyfull | unorderedlist orderedlist |
248 outdent indent | undo redo | format | fontname fontsize forecolor backcolor | hr removeformat symbol | paste
249 {{/code}}
250
251 - символ "|" означает строчный разделитель, символ "/" - разбивает тулбар на несколько строк.
252
253 * Для того, **чтобы обеспечить сортировку прикрепленных файлов по дате изменения**, следует в файле attachmentsinline.vm в папке templates после строки ###set($attachments = $doc.attachmentList)## (и соответственно перед ##<div id="attachmentscontent" class="xwikiintracontent">##) добавить:
254
255 {{code language="none"}}
256 #set($attachmentsMap = $util.hashMap)
257 #foreach($a in $attachments)
258 #if(!$attachmentsMap.containsKey($a.date))
259 #set($discard = $attachmentsMap.put($a.date, $util.arrayList))
260 #end
261 #set($discard = $attachmentsMap.get($a.date).add($a))
262 #end
263 #set($dates = $util.arrayList)
264 #foreach($date in $attachmentsMap.keySet())
265 #set($discard = $dates.add($date))
266 #end
267 #set($dates = $util.sort($dates))
268 #set($dates = $util.reverseList($dates))
269 #set($attachments = $util.arrayList)
270 #foreach($date in $dates)
271 #set($discard = $attachments.addAll($attachmentsMap.get($date)))
272 #end
273 {{/code}}
274
275 * В некоторых случаях, некорректная работа appache приводит к тому, что функция getURL возвращает полный путь к ресурсу, и как следствие, часть функционала портится. Например, такая ситуация наблюдается для XWiki, установленной на ресурсе UNA.MD, в частности нарушается визуальное отображение страницы ##Main.Spaces##. При этом, если открывать эту страницу из локальной сети - то все в порядке. Проблема имеет место только в случае адресации через внешний сайт UNA.MD (т.е. внешний appache). Проблема именно в appache, однако путем переписывания кода страницы можно исправить ситуацию (следует исключить getURL). См. исправленный код страницы ##Main.Spaces##:
276
277 {{spoiler title="Кликните здесь, чтобы просмотреть полный текст"}}
278
279 {{code language="none"}}
280 {{velocity}}
281 ##
282 ## List spaces within the wiki.
283 ##
284 $xwiki.ssx.use("Main.Spaces")##
285 ##
286 ## List of spaces in this wiki.
287 ## This page allow to display spaces within this wiki and to delete any space.
288 ## Only wiki administrators are allowed to delete spaces.
289 ##
290 ## Optional HTTP parameter :
291 ## deleteSpace name of a space to delete.
292 ##
293 ## Delete space if requested.
294 ##
295 #set($spaceToDelete = "$!request.getParameter('deleteSpace')")
296 #if("$!spaceToDelete" != '' && $xwiki.hasAdminRights())
297 #foreach ($page in $xwiki.getSpaceDocsName($spaceToDelete))
298 #set($discard = $xwiki.getDocument("${spaceToDelete}.${page}").delete())
299 #end
300 {{info}}Space &rdquo;${spaceToDelete}&ldquo; deleted.{{/info}}
301 #set($xredirect = "$!request.getParameter('xredirect')")
302 ## Redirect to the previous page if requested.
303 #if("$!xredirect" != '')
304 $response.sendRedirect($xredirect)
305 #end
306 #end
307 #set($spaceList = $xwiki.getSpaces())
308 ## Get this very doc, useful when it is included from another one.
309 #set($spaceListDoc = $xwiki.getDocument('Main.Spaces'))
310 {{html wiki="false"}}
311 <ul class="xlist">
312 ##
313 ## List spaces.
314 ##
315 #foreach($space in $spaceList)
316 ## Display space only if the user has view right on space home and if the space is not blacklisted.
317 ## $blacklistedSpaces is set in xwikivars.vm
318 #if($xwiki.hasAccessLevel('view', "${space}.WebHome") && !$blacklistedSpaces.contains($space))
319 #set($whurl=$xwiki.getURL("${space}.WebHome"))
320 <li class="xitem xunderline xhighlight space">
321 <div class="xitemcontainer">
322 <div class="spSpaceName">
323 <a href="${whurl}">${space}
324 </a>
325 </div>
326 #set($sps = "space=${space}")
327 #set($msiurl = $xwiki.getURL('Main.SpaceIndex', 'view', "$sps"))
328 #set($msi2 = '~')
329 #set($tit = "$msg.get('xe.spaces.action.index')")
330 #set($skif = "$xwiki.getSkinFile('icons/silk/book_open.gif')")
331 <div class="xshowonhover spSpaceActions">
332 ## Link to the space index.
333 <a href="${msiurl}" title="{$tit}">
334 <img src="${skif}" alt="{Space index icon}">
335 </img>
336 </a>
337 ## If the user has admin right on the space display links to administration and delete.
338 #if($xwiki.hasAccessLevel('admin', "${space}.XWikiPreferences"))
339 <a href="$xwiki.getURL("${space}.WebPreferences", 'admin')" title="$msg.get('xe.spaces.action.admin')">
340 <img src="$xwiki.getSkinFile('icons/silk/cog.gif')" alt="Administrate space icon">
341 </img>
342 </a>
343 ## <a href="#" onclick="confirm('ALL THE PAGES WITHIN THE SPACE &ldquo;${space}&rdquo; WILL BE DELETED, are you sure that you want to continue ?'); this.href='$spaceListDoc.getURL('view', "deleteSpace=${space}&amp;xredirect=$doc.getExternalURL()")'" title="$msg.get('xe.spaces.action.delete')">
344 ## <img src="$xwiki.getSkinFile('icons/silk/cross.gif')" alt="Delete space icon">
345 ## </img>
346 ##</a>
347 #end
348 </div>
349 <div class="xspacer">&nbsp;</div>
350 </div>
351 </li>
352 #end
353 #end
354 ##
355 ## Space creation.
356 ##
357 #if($xwiki.hasAdminRights())
358 <li id="spSpaceCreateItem" class="xitem space">
359 <div class="xitemcontainer">
360 <div id="spSpaceCreateLabel" class="spSpaceName"><a href="$xwiki.getURL('XWiki.CreatePage', 'view', 'tocreate=space')" onclick="toggleClass($('spSpaceCreateForm'), 'hidden'); return false;">$msg.get('xe.spaces.createspace')</a></div>
361 <div class="spacer">&nbsp;</div>
362 <div id="spSpaceCreateForm" class="hidden">
363 <form method="post" action="$doc.getURL('view', 'xpage=create')">
364 <div>
365 <input name="tocreate" type="hidden" value="space" />
366 #set($newSpaceName = $msg.get('xe.spaces.createspace.defaultname'))
367 <label class="hidden" for="spSpaceCreateTextInput">$newSpaceName</label>
368 <input id="spSpaceCreateTextInput" type="text" name="title" value="$newSpaceName" class="panelinput" onfocus="if(this.value=='$newSpaceName') this.value=''" onblur="if(this.value=='') this.value='$newSpaceName'" />
369 <input type="submit" value="$msg.get('xe.spaces.createspace.submit')" />
370 </div>
371 </form>
372 </div>
373 <div class="spacer">&nbsp;</div>
374 </div>
375 </li>
376 #end
377 </ul>
378 {{/html}}
379 {{/velocity}}
380 {{/code}}
381
382 {{/spoiler}}
383
384 * **Для решения проблемы (oracle-related) с показом аттачей в Document Index (страница Main.AllDocs)** на закладке files (Файлы) следует на странице ##XWiki.AllAttachmentsResults## поменять:
385 #else #set($sql = "and lower(doc.fullName) <> ’’ ") #end
386 на
387 #else #set($sql = "and lower(doc.fullName) is not NULL") #end
388
389 * **Аттачи-файлы MS Office 2007 и OpenOffice в IE сохраняются как zip-архивы (с расширением zip).** Проблема имеет место только в IE. Решение такое - в файл web.xml, который лежит в папке WEB-INF приложения добавить в соответствующем месте (поискать по ##mime##):
390
391 {{spoiler title="Кликните здесь, чтобы просмотреть полный текст"}}
392 {{code language="none"}}
393 <!-- Added mime-types for MS Office 2007 and OpenOffice formats because IE have bug and without these additional params saves files as zip -->
394
395 <mime-mapping>
396 <extension>docm</extension>
397 <mime-type>application/vnd.ms-word.document.macroEnabled.12</mime-type>
398 </mime-mapping>
399
400 <mime-mapping>
401 <extension>docx</extension>
402 <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.document</mime-type>
403 </mime-mapping>
404
405 <mime-mapping>
406 <extension>dotm</extension>
407 <mime-type>application/vnd.ms-word.template.macroEnabled.12</mime-type>
408 </mime-mapping>
409
410 <mime-mapping>
411 <extension>dotx</extension>
412 <mime-type>application/vnd.openxmlformats-officedocument.wordprocessingml.template</mime-type>
413 </mime-mapping>
414
415 <mime-mapping>
416 <extension>ppsm</extension>
417 <mime-type>application/vnd.ms-powerpoint.slideshow.macroEnabled.12</mime-type>
418 </mime-mapping>
419
420
421 <mime-mapping>
422 <extension>ppsx</extension>
423 <mime-type>application/vnd.openxmlformats-officedocument.presentationml.slideshow</mime-type>
424 </mime-mapping>
425
426
427 <mime-mapping>
428 <extension>pptm</extension>
429 <mime-type>application/vnd.ms-powerpoint.presentation.macroEnabled.12</mime-type>
430 </mime-mapping>
431
432
433 <mime-mapping>
434 <extension>pptx</extension>
435 <mime-type>application/vnd.openxmlformats-officedocument.presentationml.presentation</mime-type>
436 </mime-mapping>
437
438
439 <mime-mapping>
440 <extension>xlsb</extension>
441 <mime-type>application/vnd.ms-excel.sheet.binary.macroEnabled.12</mime-type>
442 </mime-mapping>
443
444
445 <mime-mapping>
446 <extension>xlsm</extension>
447 <mime-type>application/vnd.ms-excel.sheet.macroEnabled.12</mime-type>
448 </mime-mapping>
449
450
451 <mime-mapping>
452 <extension>xlsx</extension>
453 <mime-type>application/vnd.openxmlformats-officedocument.spreadsheetml.sheet</mime-type>
454 </mime-mapping>
455
456
457 <mime-mapping>
458 <extension>xps</extension>
459 <mime-type>application/vnd.ms-xpsdocument</mime-type>
460 </mime-mapping>
461
462
463 <mime-mapping>
464 <extension>odt</extension>
465 <mime-type>application/vnd.oasis.opendocument.text</mime-type>
466 </mime-mapping>
467
468
469 <mime-mapping>
470 <extension>ott</extension>
471 <mime-type>application/vnd.oasis.opendocument.text-template</mime-type>
472 </mime-mapping>
473
474
475 <mime-mapping>
476 <extension>odg</extension>
477 <mime-type>application/vnd.oasis.opendocument.graphics</mime-type>
478 </mime-mapping>
479
480
481 <mime-mapping>
482 <extension>otg</extension>
483 <mime-type>application/vnd.oasis.opendocument.graphics-template</mime-type>
484 </mime-mapping>
485
486
487 <mime-mapping>
488 <extension>odp</extension>
489 <mime-type>application/vnd.oasis.opendocument.presentation</mime-type>
490 </mime-mapping>
491
492
493 <mime-mapping>
494 <extension>otp</extension>
495 <mime-type>application/vnd.oasis.opendocument.presentation-template</mime-type>
496 </mime-mapping>
497
498
499 <mime-mapping>
500 <extension>ods</extension>
501 <mime-type>application/vnd.oasis.opendocument.spreadsheet</mime-type>
502 </mime-mapping>
503
504
505 <mime-mapping>
506 <extension>ots</extension>
507 <mime-type>application/vnd.oasis.opendocument.spreadsheet-template</mime-type>
508 </mime-mapping>
509
510
511 <mime-mapping>
512 <extension>odc</extension>
513 <mime-type>application/vnd.oasis.opendocument.chart</mime-type>
514 </mime-mapping>
515
516
517 <mime-mapping>
518 <extension>otc</extension>
519 <mime-type>application/vnd.oasis.opendocument.chart-template</mime-type>
520 </mime-mapping>
521
522
523 <mime-mapping>
524 <extension>odi</extension>
525 <mime-type>application/vnd.oasis.opendocument.image</mime-type>
526 </mime-mapping>
527
528
529 <mime-mapping>
530 <extension>oti</extension>
531 <mime-type>application/vnd.oasis.opendocument.image-template</mime-type>
532 </mime-mapping>
533
534
535 <mime-mapping>
536 <extension>odf</extension>
537 <mime-type>application/vnd.oasis.opendocument.formula</mime-type>
538 </mime-mapping>
539
540
541 <mime-mapping>
542 <extension>otf</extension>
543 <mime-type>application/vnd.oasis.opendocument.formula-template</mime-type>
544 </mime-mapping>
545
546
547 <mime-mapping>
548 <extension>odm</extension>
549 <mime-type>application/vnd.oasis.opendocument.text-master</mime-type>
550 </mime-mapping>
551
552 <mime-mapping>
553 <extension>oth</extension>
554 <mime-type>application/vnd.oasis.opendocument.text-web</mime-type>
555 </mime-mapping>
556 {{/code}}
557 {{/spoiler}}
558
559 * **Проблемы с импортом 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 2.5 и замены библиотеки не потребуется.//
560
561 * **Ограничение в 10MB для upload-а**. В XWiki имеется ограничение на upload. Для его регулирования следует:
562 ** 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
563 ** edit the XWiki.XWikiPreferences object and specify the desired maximum attachment size (in bytes)
564
565 == Настройка LDAP-идентификации ==
566
567 //Включение LDAP-идентификации в XWIki обеспечивает идентификацию пользователей через внешние системы идентификации, например Windows Active Directory. В данном примере рассмотрен самый простой случай, когда все пользователи домена получают возможность стать пользователями XWiki. В процессе настройки требуются дополнительные LDAP-утилиты, а сама же настройка выполняется путем редактирования параметров ##xwiki.cfg##.//
568
569 === LDAP-утилиты ===
570
571 * **LDAP Explorer Tool** - этой утилиты в принципе будет достаточно.
572 ** Утилита, устанавливаемая в Windows стандартным образом. После инсталляции запускаем иконку приложения. Откроется окно программы. Для использования - необходимо выполнить настройку подключения к серверу LDAP.
573 ** Для этого открываем меню ##File## и дальше ##Configurations##, ##New##.
574 ** На закладке ##Configuration## даем какое-нибудь имя данной конфигурации, т.к. программа позволяет хранить несколько конфигураций подключения.
575 ** На следующей закладке ##Server##, в поле ##Server Name## указываем имя домен-контроллера Active Directory. Параметры ##Server port##, ##Server SSL port## и ##Version## оставляем без изменений. Нажимаем ##Test## для проверки.
576 ** Далее переходим на закладку ##Connection##. Т.к. у Active Directory запрещен анонимный доступ, то ввводим ##User DN## - это может быть обычный domain user. Нажимаем галочку ##Store password## и в поле ##Password## вносим пароль этого пользователя. Параметры ##Use SSL port## и ##Use TLS## - не меняем. Ключевое поле - Base DN. Сюда следует заполнить полное имя вашего домена в транскрипции LDAP. Там есть кнопка ##Guess value##, которая пытается сама заполнить это поле, но делает это направильно. Пример правильной записи: для домена ##internal.moldtelecom.md## - ##DC=internal,DC=moldtelecom,DC=md##. После заполнения этого поля жмем Test Connection. На этом создание новой конфигурации закончено - остальные закладки трогать не требуется. В отдельном окне выбора конфигураций выбираем из списка созданную нами конфигурацию и жмем ##Open##. Утилита готова к работе.
577 //Плюс утилиты в простоте, минус в том, что значения из нее не копируются в буфер обмена.//
578
579 * **LDAP Browser/Editor** - утилита примерно по функциональности соответствует LDAP Explorer Tool, однако это java-аплет, соответственно установки нет - просто распаковываем. Необходимо также откорректировать bat-файл, указав точный путь к JAVA_HOME (куда установлена java). Запускать через этот-же bat-файл.
580 //Утилита более сложна, больше настроек, они более напонятны. Зато возможен не только просмотр LDAP но и редактирование (если соответствующие права есть), а также выгрузка информации в файлы и в буфер обмена.//
581
582 * **Windows Server 2003 Administration Tools** - предоставляет ряд административных windows-аплетов для работы с Active Directory. LDAP-структуру (т.е. структуру Active Directory) можно просматривать через ##Active Directory Users and Computers##.
583 //Красиво все видно, но не показывает имена узлов LDAP-directory в полной транскрипции. С этой точки зрения безполезна.//
584
585 * **Softerra LDAP Browser 2.6** - приложение, аналогично LDAP Explorer Tool, позволяющее осуществлять коннект, просмотр и выгрузку LDAP-директории. Очень мощный интерфейс (пожалуй самый развитый из всех утилит), удобные возможности по выгрузке информации.
586
587 * **Wireshark** - Собственно говоря, не LDAP утилита, а снифер сетевых пакетов. Может понадобиться в случае, если возникли проблемы с коннектом к LDAP из XWiki, позволяет точно отследить, что передается и что получается в ответ (используя фильтр по протоколу LDAP).
588
589 === Установка LDAP-параметров ===
590
591 * Открываем WEB-INF\xwiki.cfg и находим в нем раздел LDAP, в котором сосредоточены все параметры, которые нам требуется заполнить.
592
593 * Сначала включаем LDAP-идентификацию: ##xwiki.authentication.ldap=1##.
594
595 * Далее фиксируем IP-адрес сервера LDAP и TCP/IP порт. Адрес сервера LDAP узнайте заранее - для Active Directory это адрес Domain Controller и порт по умолчанию - 389. Адрес определяется через параметр ##xwiki.authentication.ldap.server=##, а порт - ##xwiki.authentication.ldap.port=389##.
596
597 * Затем нужно записать пользователя и пароль, посредством которого XWiki будет делать запросы к LDAP-серверу, т.к. обычно в Active Directory анонимный доступ закрыт. Имя пользователя определяется через параметр ##xwiki.authentication.ldap.bind_DN=##, а пароль - ##xwiki.authentication.ldap.bind_pass=##.
598 Однако записывается не просто имя пользователя, а соответствующая полная //транскрипция// имени в рамках LDAP. Поэтому находим этого пользователя в директории LDAP посредством утилиты LDAPExplorerTool (например), встаем в левой части окна на данного пользователя, а в правой части - видим его полное имя в транскрипции LDAP. Должно быть что-то вроде ##CN=Unisim,OU=Users TEMP,DC=internal,DC=moldtelecom,DC=md##. Но вообще правильнее передавать не фиксированное имя (чтобы не писать личный пароль), а передавать логин и пароль текущего пользователя, который пытается войти в систему. Для этого следует записать (замените ##internal## на название вашего домена):
599
600 {{code language="none"}}
601 xwiki.authentication.ldap.bind_DN=internal\\{0}
602 xwiki.authentication.ldap.bind_pass={1}
603 {{/code}}
604
605 * Необязательно. Для следующего параметра ##xwiki.authentication.ldap.validate_password=## устанавливаем значение ##1##.
606
607 * Далее 2 параметра ##xwiki.authentication.ldap.user_group=## и ##xwiki.authentication.ldap.exclude_group=## можно пропустить, т.к. мы не будем устанавливать ограничений по LDAP-группам.
608
609 * Затем следует указать базовый домен для поиска. Это устанавливается параметром ##xwiki.authentication.ldap.base_DN=##. Аналогично имени пользователя, имя домена должно быть записано через полную транскрипцию LDAP. Находим это имя в утилите LDAPExplorerTool (например), встав на самый верхний уровень дерева в левой части окна утилиты - в правой части видим полное имя домена. Должно получиться что-то вроде ##DC=internal,DC=moldtelecom,DC=md##.
610
611 * Следующий важный параметр ##xwiki.authentication.ldap.UID_attr=##, который означает - какое свойство LDAP-директории будет браться в качестве имени пользователя в XWiki. Обычно это ##CN##, но для Active Directory следует брать свойство ##sAMAccountName##. На этом настройку LDAP в XWiki можно считать завершенной.
612
613 //Примечания~://
614
615 * //XWiki поддерживает также множество других интересных и в некоторых случаях нужных опций при работе с LDAP. Например, опция, определяющая какую информацию брать из LDAP (по умолчанию имя, фамилия и e-mail), или опция, позволяющая установить или снять возможность обновления информации о пользователе в xwiki из LDAP и другие. Однако, по умолчанию, данные настройки можно не менять. Все и так работает.//
616 * //Следует быть внимательными к параметрам пользователя (имени, фамилии, e-mail). Так как теперь эта информация будет браться и обновляться из LDAP (т.е. из Active Directory) надо быть уверенным, что в Active Directory все прописано правильно (особенно актуально для e-mail - а то не будут приходить настроенные уведомления по списку слежения xwiki).//
617 * //В самой XWiki возможность изменения e-mail через редактирование профиля отсутствует (до версии 2.4). Для того чтобы это все-таки сделать, следует страницу пользователя именно открыть, а не нажимать на ##Edit##, и далее выбрать ##Object Editor##, дальше выбрать объект с типом XWiki.XWikiUsers и уже его редактировать. Откроется страница с перечнем полных параметров пользователя, в т.ч. e-mail.//