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