Difference between revisions of "Mediawiki4Intranet"
(→Установка) |
(→Установка) |
||
Line 54: | Line 54: | ||
= Установка = | = Установка = | ||
− | Если вы хотите быстро попробовать '''MediaWiki4Intranet''' на своей локальной Windows- | + | Если вы хотите быстро попробовать '''MediaWiki4Intranet''' на своей локальной Windows-машине — скачайте [http://wiki.4intra.net/public/mediawiki4intranet-win.7z Windows-сборку] (примерно 200 МБ). Обновляется она достаточно редко (на данный момент версия {{/WindowsBundleVersion}}), настроена кривовато и не очень безопасно (ибо XAMPP), но зато полностью Standalone и включает в себя все необходимые дополнительные программы. Подробнее: [[Windows-сборка Mediawiki4Intranet]]. |
{{warning}} Используйте Windows-сборку '''только локально'''. Подробности в статье [[Windows-сборка Mediawiki4Intranet]]. | {{warning}} Используйте Windows-сборку '''только локально'''. Подробности в статье [[Windows-сборка Mediawiki4Intranet]]. | ||
+ | |||
+ | == Инструкция по установке == | ||
Чтобы установить '''MediaWiki4Intranet''' к себе на сайт, нужно: | Чтобы установить '''MediaWiki4Intranet''' к себе на сайт, нужно: | ||
− | + | === Скачать код === | |
− | + | ||
− | + | Варианты: | |
− | + | ||
− | + | # Можно скачать [http://wiki.4intra.net/public/mediawiki4intranet.7z архив с исходниками] (примерно 13 МБ) | |
− | + | # Можно использовать '''repo.php''' для автоматизированного скачивания с помощью системы контроля версий [[rupedia:Git|Git]] (она должна быть установлена): | |
− | + | #: {{cmd|git clone https://github.com/mediawiki4intranet/configs mediawiki/configs}} | |
− | + | #: {{cmd|cd mediawiki/configs}} | |
− | + | #: {{cmd|php repo.php install mediawiki4intranet}} | |
− | + | # Можно извлечь исходники из Subversion-зеркала: {{cmd|svn co http://wiki.4intra.net/svn/mediawiki4intranet/}} | |
− | + | ||
− | + | === Создать папку images и пустую БД === | |
− | + | ||
− | + | В директории для установки нужно создать папку <tt>images</tt>, читаемую и записываемую веб-сервером. | |
− | + | ||
− | + | Также нужно создать для вики MySQL базу данных и пользователя с полным доступом к ней. | |
− | + | ||
+ | === Инициализировать БД === | ||
+ | |||
+ | Сначала нужно создать структуру БД для "голой" MediaWiki: | ||
+ | |||
+ | # Либо просто накатить дамп <tt>maintenance/tables.sql</tt>: | ||
+ | #* ''Сначала'' создать минимальный конфиг MediaWiki4Intranet (LocalSettings.php, см. ниже) | ||
+ | #* Выполнить команду {{cmd|php maintenance/patchSql.php maintenance/tables.sql}} из директории установки вики. | ||
+ | # Либо запустить вики-установщик из папки <tt>mw-config</tt> — плюс в том, что он ещё проводит дополнительные проверки версии PHP, расширений и т. п.: | ||
+ | #* Зайти на <tt>http://server/wiki/mw-config/</tt>, ответить на вопросы, исправить недоразумения (если таковые возникнут), выбрать базу MySQL, InnoDB, 4.1/5.0 utf8 binary. Установщик создаст пустую БД и конфиг. | ||
+ | #* ''Удалить'' конфиг, сгенерированный установщиком — в нём куча опций, которые все уже прописаны в правильные значения в конфигах MediaWiki4Intranet. | ||
+ | #* ''Потом'' создать минимальный конфиг MediaWiki4Intranet (см. ниже) | ||
+ | |||
+ | Потом нужно дополнить созданную БД таблицами расширений. Для этого нужно: | ||
* Запустить {{cmd|php maintenance/update.php}} из директории установки вики. | * Запустить {{cmd|php maintenance/update.php}} из директории установки вики. | ||
+ | |||
+ | === Создать минимальный конфиг === | ||
Содержимое минимального конфига (LocalSettings.php): | Содержимое минимального конфига (LocalSettings.php): | ||
+ | |||
<code-php> | <code-php> | ||
<?php | <?php | ||
Line 95: | Line 113: | ||
Минимальные требования — на случай, если кто-то забыл про стандартный веб-стек: | Минимальные требования — на случай, если кто-то забыл про стандартный веб-стек: | ||
* PHP версии 5 или выше. | * PHP версии 5 или выше. | ||
− | * <span style="color: red">Примечание: пока что Mediawiki4Intranet может в разных местах ругаться Notice’ами, поэтому пропишите <tt>error_reporting = E_ALL & ~E_NOTICE</tt> в <tt>php.ini</tt>. Да, в MediaWiki так не | + | * <span style="color: red">Примечание: пока что Mediawiki4Intranet может в разных местах ругаться Notice’ами, поэтому пропишите <tt>error_reporting = E_ALL & ~E_NOTICE</tt> в <tt>php.ini</tt>. Да, в MediaWiki так не принято — скоро исправим, будет полная тишина и под E_STRICT’ом.</span> |
* Веб-сервер. Проще всего использовать [http://httpd.apache.org/ Apache], хотя теоретически должны поддерживаться и [http://iis.net/ IIS], и [http://nginx.ru/ nginx] + [http://php-fpm.org/ php_fpm]. | * Веб-сервер. Проще всего использовать [http://httpd.apache.org/ Apache], хотя теоретически должны поддерживаться и [http://iis.net/ IIS], и [http://nginx.ru/ nginx] + [http://php-fpm.org/ php_fpm]. | ||
* СУБД MySQL, желательно, версии 5 или выше. | * СУБД MySQL, желательно, версии 5 или выше. | ||
Line 110: | Line 128: | ||
* Если версия PHP < 5.3: <tt>short_open_tag = Off</tt> | * Если версия PHP < 5.3: <tt>short_open_tag = Off</tt> | ||
* <tt>magic_quotes_gpc = Off</tt> (должно быть вообще на любом себя уважающем сервере) | * <tt>magic_quotes_gpc = Off</tt> (должно быть вообще на любом себя уважающем сервере) | ||
− | * Для загрузки скриншотов через [http://supa.sourceforge.net SUPA]: либо отключённый [http://www.hardened-php.net/suhosin/ Suhosin], либо директивы {{Cmd|1=suhosin.post.max_value_length = 8000000}} и {{Cmd|1=suhosin.request.max_value_length = 8000000}}. | + | * Для загрузки скриншотов через [http://supa.sourceforge.net SUPA]: либо отключённый [http://www.hardened-php.net/suhosin/ Suhosin], либо директивы {{Cmd|1=suhosin.post.max_value_length = 8000000}} и {{Cmd|1=suhosin.request.max_value_length = 8000000}}. 8000000 — как пример, можете установить большее значение. |
Опционально: | Опционально: | ||
* php5-xcache для ускорения работы MediaWiki. | * php5-xcache для ускорения работы MediaWiki. | ||
* [[#php5-fss|php5-fss]] тоже для ускорения, см. подробнее [[#php5-fss]]. | * [[#php5-fss|php5-fss]] тоже для ускорения, см. подробнее [[#php5-fss]]. | ||
− | * Для отправки | + | * Для отправки почты — PEAR-пакеты Mail и Net_SMTP, см. подробнее [[#Отправка E-mail]]. |
− | Дополнительно могут понадобиться сторонние | + | Дополнительно могут понадобиться сторонние программы — их список внушительный, но под дистрибутивами Linux’а многое легко ставится менеджером пакетов, а для Windows есть [[Windows-сборка Mediawiki4Intranet|готовая сборка]]. Здесь представлен общий вид, подробнее — смотрите ниже. |
* Импорт-экспорт в ZIP-архивах: утилиты [http://gnuwin32.sourceforge.net/packages/zip.htm zip] и [http://gnuwin32.sourceforge.net/packages/unzip.htm unzip] (windows). Под UNIX обычно либо уже есть, либо ставится из пакетов. | * Импорт-экспорт в ZIP-архивах: утилиты [http://gnuwin32.sourceforge.net/packages/zip.htm zip] и [http://gnuwin32.sourceforge.net/packages/unzip.htm unzip] (windows). Под UNIX обычно либо уже есть, либо ставится из пакетов. | ||
− | * PDF: [http://pages.cs.wisc.edu/~ghost/ GhostScript], [http://poppler.freedesktop.org/ Poppler] | + | * PDF: [http://pages.cs.wisc.edu/~ghost/ GhostScript], [http://poppler.freedesktop.org/ Poppler] — бывший [http://www.foolabs.com/xpdf/ Xpdf] ([http://gnuwin32.sourceforge.net/packages/xpdf.htm windows)] |
* DJVU: [http://djvu.sourceforge.net/ djvulibre], [http://netpbm.sourceforge.net/ netpbm] ([http://gnuwin32.sourceforge.net/packages/netpbm.htm windows]). | * DJVU: [http://djvu.sourceforge.net/ djvulibre], [http://netpbm.sourceforge.net/ netpbm] ([http://gnuwin32.sourceforge.net/packages/netpbm.htm windows]). | ||
− | * LaTeX (формулы <m>…</m>): любой дистрибутив TeX’а, например, в Debian обычно [http://www.tug.org/texlive/debian.html TeXLive], под | + | * LaTeX (формулы <m>…</m>): любой дистрибутив TeX’а, например, в Debian обычно [http://www.tug.org/texlive/debian.html TeXLive], под Windows — [http://miktex.org/ MiKTeX]; утилита [http://dvisvgm.sourceforge.net/ dvisvgm]. |
* FLV/MP4-видео: [http://www.ffmpeg.org/ ffmpeg] ([http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page для windows]). | * FLV/MP4-видео: [http://www.ffmpeg.org/ ffmpeg] ([http://ffmpeg.arrozcru.org/wiki/index.php?title=Main_Page для windows]). | ||
* [http://www.graphviz.org/ Graphviz] желателен версии не меньше 2.27, так как в предыдущих есть различные мелкие баги. | * [http://www.graphviz.org/ Graphviz] желателен версии не меньше 2.27, так как в предыдущих есть различные мелкие баги. | ||
Line 134: | Line 152: | ||
* По умолчанию отключён Sphinx-поиск | * По умолчанию отключён Sphinx-поиск | ||
* По умолчанию отключена поддержка PDF и Djvu | * По умолчанию отключена поддержка PDF и Djvu | ||
− | * По умолчанию отключено слияние при конфликтах | + | * По умолчанию отключено слияние при конфликтах редактирования — чтобы включить, нужно установить Windows-версию утилиты diff3, и прописать в LocalSettings.php: |
<code-php>$wgDiff3 = 'путь к diff3';</code-php> | <code-php>$wgDiff3 = 'путь к diff3';</code-php> | ||
* [[#php5-fss|php5-fss]] собирать скорее всего задолбаетесь, а готовой виндовой версии нет. | * [[#php5-fss|php5-fss]] собирать скорее всего задолбаетесь, а готовой виндовой версии нет. | ||
− | Теперь для тех, кто считает, что | + | Теперь для тех, кто считает, что MySQL — не база данных: сама-то MediaWiki поддерживает и PostgreSQL, и Sqlite, и Oracle, но, во-первых, не все расширения тоже их поддерживают, а во-вторых, при использовании MediaWiki '''никакого''' смысла в этих СУБД нет, потому что MediaWiki не генерирует сложные запросы. То есть, '''вообще'''. |
== Отправка E-mail == | == Отправка E-mail == | ||
Line 155: | Line 173: | ||
== Короткие URL == | == Короткие URL == | ||
− | Под «короткими URL» в вики понимаются адреса статей без <tt>index.php/</tt> и тем более без <tt>index.php?title=</tt>, например, такой | + | Под «короткими URL» в вики понимаются адреса статей без <tt>index.php/</tt> и тем более без <tt>index.php?title=</tt>, например, такой URL — «короткий»: '''<tt>http://wiki.4intra.net/Mediawiki4Intranet</tt>'''. Настраиваются с помощью конфигурации в '''LocalSettings.php''': |
<code-php> | <code-php> | ||
Line 173: | Line 191: | ||
Всё относительно очевидно, но есть нюансы: | Всё относительно очевидно, но есть нюансы: | ||
− | * Если вы при этом хотите использовать API (<tt>api.php</tt>), то нужно исхитриться следующим образом: {{cmd|1 = $wgUsePathInfo = substr($_SERVER['PHP_SELF'], 0, 10) == '/index.php';}}. Дело в том, что в MediaWiki принято обычно располагать Script Path в месте, отличном от Rewrite Path. То есть, скрипты класть в <tt>yourdomain.com/w/</tt> (index.php, api.php | + | * Если вы при этом хотите использовать API (<tt>api.php</tt>), то нужно исхитриться следующим образом: {{cmd|1 = $wgUsePathInfo = substr($_SERVER['PHP_SELF'], 0, 10) == '/index.php';}}. Дело в том, что в MediaWiki принято обычно располагать Script Path в месте, отличном от Rewrite Path. То есть, скрипты класть в <tt>yourdomain.com/w/</tt> (index.php, api.php и т. п.), а путь для статей делать <tt>yourdomain.com/wiki/</tt>. И API рассчитывает на это, и в итоге переданное значение параметра <tt>title=</tt> в случае равенства путей заменяется на «api.php», что мешает нормально использовать API. |
* В последней строчке обязательно писать именно <tt>index.php?title=$1</tt>, а не <tt>index.php/$1</tt>, так как во втором случае при использовании [B] подстраницы (страницы с / в названии) становятся недоступны. | * В последней строчке обязательно писать именно <tt>index.php?title=$1</tt>, а не <tt>index.php/$1</tt>, так как во втором случае при использовании [B] подстраницы (страницы с / в названии) становятся недоступны. | ||
− | * Флаг [B] в последней строчке важен. Ибо без [B] mod_rewrite при переписи URL разэкранирует и не экранирует обратно спецсимволы (все, кроме латинских букв и цифр), из-за чего статьи с названиями, содержащими процент (%), становятся недоступны, потому что % в URL- | + | * Флаг [B] в последней строчке важен. Ибо без [B] mod_rewrite при переписи URL разэкранирует и не экранирует обратно спецсимволы (все, кроме латинских букв и цифр), из-за чего статьи с названиями, содержащими процент (%), становятся недоступны, потому что % в URL-кодировке — спецсимвол, и обязательно должен быть заменён на %25. |
* Флаг [QSA] тоже нужен, ибо без него к ?title=$1 не дописываются остальные параметры URL. | * Флаг [QSA] тоже нужен, ибо без него к ?title=$1 не дописываются остальные параметры URL. | ||
− | * Первые две строчки нужны, чтобы с адресов, содержащих в себе <tt>index.php/</tt>, перенаправить пользователя на | + | * Первые две строчки нужны, чтобы с адресов, содержащих в себе <tt>index.php/</tt>, перенаправить пользователя на «короткие» — это убирает дублирование страниц, которое не любят поисковики. |
== php5-xcache == | == php5-xcache == | ||
Line 187: | Line 205: | ||
== php5-fss == | == php5-fss == | ||
− | Замечательное расширение для PHP, позволяющее ускорить важнейшую для медиавики | + | Замечательное расширение для PHP, позволяющее ускорить важнейшую для медиавики операцию — замену набора подстрок на набор других подстрок — примерно в 500 раз. «FSS» значит «Fast String Search» на основе алгоритмов Бойера-Мура и Комменца-Вальтера. Посмотреть доклад (мой, ага — [[Участник:VitaliyFilippov|VitaliyFilippov]] 16:21, 30 марта 2011 (MSD)) про это расширение можно здесь: [[lib:PHP-разгон: серебряная пуля из автомата Комменца-Вальтера (Commentz-Walter)]]. |
Реально это ускоряет работу MediaWiki в разы, особенно на больших статьях с большим количеством разметки (например, включений шаблонов, функций парсера…). | Реально это ускоряет работу MediaWiki в разы, особенно на больших статьях с большим количеством разметки (например, включений шаблонов, функций парсера…). | ||
Line 234: | Line 252: | ||
Debian: {{cmd|apt-get install texlive-base djvulibre-bin netpbm ghostscript poppler-utils}} | Debian: {{cmd|apt-get install texlive-base djvulibre-bin netpbm ghostscript poppler-utils}} | ||
− | Ещё один специфический момент: в <tt>poppler-utils</tt> есть | + | Ещё один специфический момент: в <tt>poppler-utils</tt> есть баг — команда <tt>pdfinfo</tt> не учитывает поворот страниц. Это приводит к убогому качеству и/или кривому соотношению сторон у картинок, сгенерированных из ландшафтных PDF’ок. Чтобы сие пофиксить, нужно, к сожалению, патчить pdfinfo: http://wiki.4intra.net/extensions/PdfHandler/poppler-utils.diff. На это нами поставлен [https://bugs.freedesktop.org/show_bug.cgi?id=41867 баг 41867] авторам poppler’а — надеемся, что когда-нибудь поправят / примут патч. |
== Graphviz, GNUplot, UMLGraph, PlantUML, UMLEt == | == Graphviz, GNUplot, UMLGraph, PlantUML, UMLEt == | ||
Line 255: | Line 273: | ||
Во-первых, нужно установить и настроить [http://sphinxsearch.com/ Sphinx]. | Во-первых, нужно установить и настроить [http://sphinxsearch.com/ Sphinx]. | ||
− | Дальше есть два способа (см. ниже) | + | Дальше есть два способа (см. ниже) — Realtime индекс и монолитный индекс. |
Для обоих способов есть авто-конфигуратор <tt>sphinxsearch/configure.sphinx.php</tt>. Использовать так: | Для обоих способов есть авто-конфигуратор <tt>sphinxsearch/configure.sphinx.php</tt>. Использовать так: | ||
Line 271: | Line 289: | ||
</code-php> | </code-php> | ||
* Вызываем <tt>php configure.sphinx.php --hostname HOST --style STYLE</tt>, где STYLE = «rt» (обновляемый индекс) или «local» (обычный индекс). Под UNIX вместо HOST можно использовать имя из <tt>/etc/hostname</tt>, и тогда можно будет держать один конфиг на несколько серверов, и вызывать без опции <tt>--hostname</tt>. | * Вызываем <tt>php configure.sphinx.php --hostname HOST --style STYLE</tt>, где STYLE = «rt» (обновляемый индекс) или «local» (обычный индекс). Под UNIX вместо HOST можно использовать имя из <tt>/etc/hostname</tt>, и тогда можно будет держать один конфиг на несколько серверов, и вызывать без опции <tt>--hostname</tt>. | ||
− | * Будет создан файл '''<tt>sphinx.conf</tt>''', который нужно скормить | + | * Будет создан файл '''<tt>sphinx.conf</tt>''', который нужно скормить Sphinx’у — под UNIX это обычно означает положить его в <tt>/etc/sphinxsearch/</tt>. |
− | * Если конфигуратор предложит инициализировать какие-то индексы и выведет для этого | + | * Если конфигуратор предложит инициализировать какие-то индексы и выведет для этого команды — делайте, что говорит. |
− | * Если конфигуратор предложит что-то добавить в <tt>/etc/crontab</tt> (команды на переиндексацию) | + | * Если конфигуратор предложит что-то добавить в <tt>/etc/crontab</tt> (команды на переиндексацию) — делайте, что говорит. |
{{red|Внимание:}} автогенерённые конфиги, скорее всего, непригодны для использования под виндами. Вообще, мы под виндами сфинкса не используем и гарантировать работу тоже не можем. | {{red|Внимание:}} автогенерённые конфиги, скорее всего, непригодны для использования под виндами. Вообще, мы под виндами сфинкса не используем и гарантировать работу тоже не можем. | ||
Line 284: | Line 302: | ||
* Появляются документы в индексе мгновенно; | * Появляются документы в индексе мгновенно; | ||
* Интерфейс поиска остаётся штатный, только подменяется «движок»; | * Интерфейс поиска остаётся штатный, только подменяется «движок»; | ||
− | * Можно использовать [[#TikaMW|TikaMW]] для индексации содержимого бинарных (офисных | + | * Можно использовать [[#TikaMW|TikaMW]] для индексации содержимого бинарных (офисных и т. п.) документов, загруженных в вики как файлы; |
− | + | Но — индекс именно дополняемый — по факту ничего удалять из индекса Sphinx (2.0.x) '''не умеет!''' | |
− | То есть, он только делает вид, что | + | То есть, он только делает вид, что умеет — на самом деле в индексе старые версии документов остаются, просто прописываются в «Kill-List» — список ID устаревших документов, которые удаляются из результатов поиска. Поэтому при большом количестве обновлений страниц могут пойти тормоза. И хотя сфинкс ''очень'' быстрый и тормоза пойдут не скоро, это всё-таки может случиться, и тогда время от времени всё равно будет нужно делать переиндексацию: |
* Остановить демон сфинкса: {{cmd|/etc/init.d/sphinxsearch stop}} | * Остановить демон сфинкса: {{cmd|/etc/init.d/sphinxsearch stop}} | ||
* Удалить файлы индекса: {{cmd|rm /var/lib/sphinxsearch/data/yourwiki.*}} | * Удалить файлы индекса: {{cmd|rm /var/lib/sphinxsearch/data/yourwiki.*}} | ||
Line 305: | Line 323: | ||
=== Монолитный индекс (немного устаревший вариант) === | === Монолитный индекс (немного устаревший вариант) === | ||
− | Индекс монолитный, то есть, необновляемый. Расширение называется просто [[SphinxSearch]]. Работает так: держим два | + | Индекс монолитный, то есть, необновляемый. Расширение называется просто [[SphinxSearch]]. Работает так: держим два индекса — один полный, другой за последний день. Ночью полная переиндексация, а каждый час/полчаса/5 минут, кому как нравится — переиндексация данных за последний день. |
{{red|Минусы:}} | {{red|Минусы:}} | ||
Line 324: | Line 342: | ||
=== TikaMW === | === TikaMW === | ||
− | [[TikaMW]] | + | [[TikaMW]] — наше расширение MediaWiki, подключающее для индексации загруженных в Wiki файлов библиотеку [http://tika.apache.org/ Apache Tika]. Tika умеет извлекать текст из бинарных документов различных форматов — MS Office, Open Office, PDF и так далее. |
Нужна Java и собственно, сама tika (tika-app.jar). Оную брать лучше тоже у нас, так как в нашей версии поправлен один баг и добавлена возможность слушать порт не на всех интерфейсах, а только на заданном (например, на 127.0.0.1). | Нужна Java и собственно, сама tika (tika-app.jar). Оную брать лучше тоже у нас, так как в нашей версии поправлен один баг и добавлена возможность слушать порт не на всех интерфейсах, а только на заданном (например, на 127.0.0.1). | ||
Line 336: | Line 354: | ||
<pre>java -jar tika-app-1.2-fix-TIKA709-TIKA964.jar -p 127.0.0.1:8072 -t -eutf-8</pre> | <pre>java -jar tika-app-1.2-fix-TIKA709-TIKA964.jar -p 127.0.0.1:8072 -t -eutf-8</pre> | ||
− | Если вы используете наш ServerSettings.php, то прописывать Тику дополнительно не | + | Если вы используете наш ServerSettings.php, то прописывать Тику дополнительно не нужно — она уже там. А под виндами у нас и сфинкс пока отключён :) |
− | Ну и, разумеется, если в вики до этого уже были файлы, а вы по ним хотите | + | Ну и, разумеется, если в вики до этого уже были файлы, а вы по ним хотите искать — индекс нужно будет перестроить с помощью <tt>extensions/SphinxSearchEngine/rebuild-sphinx.php</tt>. |
== Антиспам для публичных Wiki == | == Антиспам для публичных Wiki == | ||
Line 357: | Line 375: | ||
</code-php> | </code-php> | ||
− | У спамеров есть ещё одно | + | У спамеров есть ещё одно свойство — они регистрируются и сразу начинают создавать статьи. Поэтому, можно запретить создавать статьи после регистрации на какой-то период времени (в тяжёлых случаях можно, например, на 4 суток). Для этого нужно прописать следующие директивы в '''LocalSettings.php''': |
<code-php> | <code-php> | ||
Line 380: | Line 398: | ||
== OpenID == | == OpenID == | ||
− | В MediaWiki4Intranet есть поддержка OpenID, хотя и глючная, как и вообще любая реализация OpenID. Это не наша вина, и даже не вина авторов [[mediawikiwiki:Extension:OpenID|расширения OpenID]] | + | В MediaWiki4Intranet есть поддержка OpenID, хотя и глючная, как и вообще любая реализация OpenID. Это не наша вина, и даже не вина авторов [[mediawikiwiki:Extension:OpenID|расширения OpenID]] — виноваты здесь авторы библиотеки [http://www.janrain.com/openid-enabled OpenID для PHP]. |
Чтобы включить её, нужно прописать следующее в <tt>LocalSettings.php</tt>: | Чтобы включить её, нужно прописать следующее в <tt>LocalSettings.php</tt>: | ||
Line 387: | Line 405: | ||
</code-php> | </code-php> | ||
− | Также можно установить PEAR-пакет Auth_OpenID (<tt>apt-get install php-openid</tt> в Debian). Это | + | Также можно установить PEAR-пакет Auth_OpenID (<tt>apt-get install php-openid</tt> в Debian). Это необязательно — MediaWiki4Intranet уже включает копию этой библиотеки. Однако если у вас есть копия новее, чем у нас — ставьте… И удаляйте директорию <tt>extensions/OpenID/Auth</tt>. |
Revision as of 14:49, 25 January 2013
MediaWiki — популярная «вики»-система, написанная на PHP и изначально создававшаяся в качестве «движка» Википедии. Отличается отличной расширяемостью — существует более 1700 расширений к ней.
Mediawiki4Intranet — сборка MediaWiki, содержащая в себе довольно большой набор расширений, полезных для внутрикорпоративной среды и, что очень важно, исправленных и «подруженных» между собой — большая часть ошибок, возникающих при интеграции, исправлена.
Об установке см. #Установка.
Contents
- 1 Содержимое
- 2 Установка
Содержимое
Сборка состоит из:
- Доработанного ядра MediaWiki (оригинал + набор патчей).
- Расширений MediaWiki:
- Оригинальных, то есть, нетронутых.
- Доработанных незначительно, в виде «оригинал + набор патчей» для каждого.
- Форкнутых, то есть, доработанных значительно, в простом виде гитхаб-репозитория.
- Новых, созданных нами.
- Скрипта установки «repo.php».
- Нескольких готовых конфигураций типа LocalSettings.php для быстрой установки.
- Нескольких дополнительных утилит обслуживания.
Лицензия распространения большинства этого добра: GPLv2, как и у самой MediaWiki. /* Надеемся, что тивоизация нам всё-таки не грозит :) */ Но кое-где и GPLv3.
MediaWiki
Код доработанного ядра и расширений MediaWiki, а также расширений, созданных нами, живёт на Github у организации «mediawiki4intranet»: https://github.com/mediawiki4intranet/. Там есть репозиторий с ядром MediaWiki, репозиторий с конфигурациями и скриптами деплоя и обслуживания, а также по репозиторию на каждое расширение и тему оформления MediaWiki.
Код оригинальной MediaWiki, кстати, раньше жил в Subversion, а теперь живёт в rupedia:Git-репозиториях Wikimedia, по адресам вида:
- Ядро: https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/core.git
- Расширение XXX: https://gerrit.wikimedia.org/r/gitweb?p=mediawiki/extensions/XXX.git
Версия Mediawiki4Intranet несколько отстаёт от наиболее свежей стабильной, ибо внешние различия между версиями MediaWiki не так уж и велики, но при этом в новых могут вылезать баги (вроде Bug 37209), и на обновление всех доработок сборки приходится тратить некоторое время.
Историй версий MediaWiki в основе Mediawiki4Intranet:
- 2012-11-20 → текущая: 1.18.5.
- 2012-02-22 → 2012-11-20: 1.18.1.
- 2011-02-08 → 2012-02-22: 1.16.2.
- 2010-10-09 → 2011-02-08: 1.14.1.
- → 2010-10-09: 1.13.1 (в репозиториях отсутствует).
Патчи
В виде патчей оформляются либо мелкие доработки расширений, либо любые доработки ядра MediaWiki. Сами патчи хранятся в Git-репозитории в виде обычных коммитов, организованных в серию, по принципу 1 коммит = 1 патч.
При внесении изменений в уже существующий патч вместо добавления новых коммитов происходит переписывание истории! Это приводит к некоторым неудобствам при обновлении веток (нужно руками делать git reset), но зато, по крайней мере, каждый патч достаточно легко выделить и отправить авторам.
Описание всех патчей, входящих в сборку MediaWiki4Intranet, читайте на странице: Mediawiki4Intranet/Патчи.
Расширения
Отличная расширяемость без использования патчей — важнейшая фишка MediaWiki. Расширения используют заранее заданные в коде точки интеграции («Hooks») и добавляют в MediaWiki новый функционал без необходимости вносить изменения в ядро.
Описание всех расширений, входящих в сборку MediaWiki4Intranet, читайте на странице: Mediawiki4Intranet/Расширения.
Установка
Если вы хотите быстро попробовать MediaWiki4Intranet на своей локальной Windows-машине — скачайте Windows-сборку (примерно 200 МБ). Обновляется она достаточно редко (на данный момент версия 2015-09-04), настроена кривовато и не очень безопасно (ибо XAMPP), но зато полностью Standalone и включает в себя все необходимые дополнительные программы. Подробнее: Windows-сборка Mediawiki4Intranet.
Используйте Windows-сборку только локально. Подробности в статье Windows-сборка Mediawiki4Intranet.
Инструкция по установке
Чтобы установить MediaWiki4Intranet к себе на сайт, нужно:
Скачать код
Варианты:
- Можно скачать архив с исходниками (примерно 13 МБ)
- Можно использовать repo.php для автоматизированного скачивания с помощью системы контроля версий Git (она должна быть установлена):
- git clone https://github.com/mediawiki4intranet/configs mediawiki/configs
- cd mediawiki/configs
- php repo.php install mediawiki4intranet
- Можно извлечь исходники из Subversion-зеркала: svn co http://wiki.4intra.net/svn/mediawiki4intranet/
Создать папку images и пустую БД
В директории для установки нужно создать папку images, читаемую и записываемую веб-сервером.
Также нужно создать для вики MySQL базу данных и пользователя с полным доступом к ней.
Инициализировать БД
Сначала нужно создать структуру БД для "голой" MediaWiki:
- Либо просто накатить дамп maintenance/tables.sql:
- Сначала создать минимальный конфиг MediaWiki4Intranet (LocalSettings.php, см. ниже)
- Выполнить команду php maintenance/patchSql.php maintenance/tables.sql из директории установки вики.
- Либо запустить вики-установщик из папки mw-config — плюс в том, что он ещё проводит дополнительные проверки версии PHP, расширений и т. п.:
- Зайти на http://server/wiki/mw-config/, ответить на вопросы, исправить недоразумения (если таковые возникнут), выбрать базу MySQL, InnoDB, 4.1/5.0 utf8 binary. Установщик создаст пустую БД и конфиг.
- Удалить конфиг, сгенерированный установщиком — в нём куча опций, которые все уже прописаны в правильные значения в конфигах MediaWiki4Intranet.
- Потом создать минимальный конфиг MediaWiki4Intranet (см. ниже)
Потом нужно дополнить созданную БД таблицами расширений. Для этого нужно:
- Запустить php maintenance/update.php из директории установки вики.
Создать минимальный конфиг
Содержимое минимального конфига (LocalSettings.php):
<?php require_once 'custisinstall/ServerSettings.php'; # это под UNIX, либо BaseSettings.php для винды $wgDBname = 'wiki'; # имя БД $wgDBuser = ''; # логин и пароль с полным доступом к этой БД $wgDBpassword = ''; $wgDBadminuser = $wgDBuser; $wgDBadminpassword = $wgDBpassword; $wgScriptPath = '/wiki';
Системные требования
Минимальные требования — на случай, если кто-то забыл про стандартный веб-стек:
- PHP версии 5 или выше.
- Примечание: пока что Mediawiki4Intranet может в разных местах ругаться Notice’ами, поэтому пропишите error_reporting = E_ALL & ~E_NOTICE в php.ini. Да, в MediaWiki так не принято — скоро исправим, будет полная тишина и под E_STRICT’ом.
- Веб-сервер. Проще всего использовать Apache, хотя теоретически должны поддерживаться и IIS, и nginx + php_fpm.
- СУБД MySQL, желательно, версии 5 или выше.
- Желательна UNIX-система.
Также нужны следующие расширения PHP:
- php5-mysql обязательно! :-)
- Также обязательно наличие DOM. Расширение весьма базовое и обычно встроено в PHP, но в Некоторых Дистрибутивах выделено в отдельный пакет типа php-dom.
- php5-gd для обработки картинок.
- php5-curl для загрузки файлов по URL.
Требования конфигурации PHP (директивы php.ini):
- Пока что error_reporting = E_ALL & ~E_NOTICE
- Если версия PHP < 5.3: short_open_tag = Off
- magic_quotes_gpc = Off (должно быть вообще на любом себя уважающем сервере)
- Для загрузки скриншотов через SUPA: либо отключённый Suhosin, либо директивы suhosin.post.max_value_length = 8000000 и suhosin.request.max_value_length = 8000000. 8000000 — как пример, можете установить большее значение.
Опционально:
- php5-xcache для ускорения работы MediaWiki.
- php5-fss тоже для ускорения, см. подробнее #php5-fss.
- Для отправки почты — PEAR-пакеты Mail и Net_SMTP, см. подробнее #Отправка E-mail.
Дополнительно могут понадобиться сторонние программы — их список внушительный, но под дистрибутивами Linux’а многое легко ставится менеджером пакетов, а для Windows есть готовая сборка. Здесь представлен общий вид, подробнее — смотрите ниже.
- Импорт-экспорт в ZIP-архивах: утилиты zip и unzip (windows). Под UNIX обычно либо уже есть, либо ставится из пакетов.
- PDF: GhostScript, Poppler — бывший Xpdf (windows)
- DJVU: djvulibre, netpbm (windows).
- LaTeX (формулы <m>…</m>): любой дистрибутив TeX’а, например, в Debian обычно TeXLive, под Windows — MiKTeX; утилита dvisvgm.
- FLV/MP4-видео: ffmpeg (для windows).
- Graphviz желателен версии не меньше 2.27, так как в предыдущих есть различные мелкие баги.
- GNUPlot.
- UMLGraph.
- UMLet.
- UMLGraph, UMLet, PlantUML требуют наличия Java.
- Sphinx-поиск по вики: Sphinx.
Под Windows не работает следующий функционал MediaWiki4Intranet:
- Отправка почты в формате HTML
- По умолчанию отключён Sphinx-поиск
- По умолчанию отключена поддержка PDF и Djvu
- По умолчанию отключено слияние при конфликтах редактирования — чтобы включить, нужно установить Windows-версию утилиты diff3, и прописать в LocalSettings.php:
$wgDiff3 = 'путь к diff3';
- php5-fss собирать скорее всего задолбаетесь, а готовой виндовой версии нет.
Теперь для тех, кто считает, что MySQL — не база данных: сама-то MediaWiki поддерживает и PostgreSQL, и Sqlite, и Oracle, но, во-первых, не все расширения тоже их поддерживают, а во-вторых, при использовании MediaWiki никакого смысла в этих СУБД нет, потому что MediaWiki не генерирует сложные запросы. То есть, вообще.
Отправка E-mail
По умолчанию она включается только под UNIX’ами, потому что под виндой sendmail’а обычно нет. Однако когда включается, нужно поменять две следующие переменные в LocalSettings.php, иначе почта из вики так и будет приходить от Стаса Фомина:
$wgEmergencyContact = 'admin@your.wiki'; # e-mail $wgPasswordSender = $wgEmergencyContact;
Также, для отправки почты в формате HTML (а не plaintext) нужны PEAR-пакеты Mail и Net_SMTP:
- pear install Mail; pear install Net_SMTP, либо
- apt-get install php-mail php-net-smtp (Debian, Ubuntu).
Короткие URL
Под «короткими URL» в вики понимаются адреса статей без index.php/ и тем более без index.php?title=, например, такой URL — «короткий»: http://wiki.4intra.net/Mediawiki4Intranet. Настраиваются с помощью конфигурации в LocalSettings.php:
$wgUsePathInfo = true; $wgArticlePath = '/$1';
И дополнительно — директив mod_rewrite:
RewriteCond %{THE_REQUEST} ^\S+\s*/*index.php/ RewriteRule ^index.php/(.*)$ /$1 [R=301,L,NE] RewriteCond %{REQUEST_FILENAME} !-f RewriteCond %{REQUEST_FILENAME} !-d RewriteRule ^(.*)$ index.php?title=$1 [L,B,QSA]
Всё относительно очевидно, но есть нюансы:
- Если вы при этом хотите использовать API (api.php), то нужно исхитриться следующим образом: $wgUsePathInfo = substr($_SERVER['PHP_SELF'], 0, 10) == '/index.php';. Дело в том, что в MediaWiki принято обычно располагать Script Path в месте, отличном от Rewrite Path. То есть, скрипты класть в yourdomain.com/w/ (index.php, api.php и т. п.), а путь для статей делать yourdomain.com/wiki/. И API рассчитывает на это, и в итоге переданное значение параметра title= в случае равенства путей заменяется на «api.php», что мешает нормально использовать API.
- В последней строчке обязательно писать именно index.php?title=$1, а не index.php/$1, так как во втором случае при использовании [B] подстраницы (страницы с / в названии) становятся недоступны.
- Флаг [B] в последней строчке важен. Ибо без [B] mod_rewrite при переписи URL разэкранирует и не экранирует обратно спецсимволы (все, кроме латинских букв и цифр), из-за чего статьи с названиями, содержащими процент (%), становятся недоступны, потому что % в URL-кодировке — спецсимвол, и обязательно должен быть заменён на %25.
- Флаг [QSA] тоже нужен, ибо без него к ?title=$1 не дописываются остальные параметры URL.
- Первые две строчки нужны, чтобы с адресов, содержащих в себе index.php/, перенаправить пользователя на «короткие» — это убирает дублирование страниц, которое не любят поисковики.
php5-xcache
Рекомендуется установить и настроить XCache для PHP5. Это весьма неплохо ускоряет работу MediaWiki.
Ещё можно поругать авторов XCache в баге http://xcache.lighttpd.net/ticket/228 за некорректные сообщения об ошибках при запуске php со включённым xcache в CLI режиме :) на функционал не влияет, просто смущает. Обычно конфигурацию модулей для командной строки и апача прописывают общую, а XCache, типа, не работает под CLI, но сообщает об этом кучей предупреждений «PHP Warning: xcache_isset(): xcache.var_size is either 0 or too small to enable var data caching».
php5-fss
Замечательное расширение для PHP, позволяющее ускорить важнейшую для медиавики операцию — замену набора подстрок на набор других подстрок — примерно в 500 раз. «FSS» значит «Fast String Search» на основе алгоритмов Бойера-Мура и Комменца-Вальтера. Посмотреть доклад (мой, ага — VitaliyFilippov 16:21, 30 марта 2011 (MSD)) про это расширение можно здесь: lib:PHP-разгон: серебряная пуля из автомата Комменца-Вальтера (Commentz-Walter).
Реально это ускоряет работу MediaWiki в разы, особенно на больших статьях с большим количеством разметки (например, включений шаблонов, функций парсера…).
На зеркалах дебиана его нет, однако можно собрать из исходников вот отсюда:
Из исходников собирать нужно потому, что пакетов под i386 там нет, только под amd64. Сборка описана для тех, у кого есть под рукой Debian/Ubuntu.
Нужно скачать файлы:
- http://apt.wikimedia.org/wikimedia/pool/main/p/php5-fss/php5-fss_0.0.1.orig.tar.gz
- http://apt.wikimedia.org/wikimedia/pool/main/p/php5-fss/php5-fss_0.0.1-3.dsc
- http://apt.wikimedia.org/wikimedia/pool/main/p/php5-fss/php5-fss_0.0.1-3.diff.gz
Если нет пакетов php5-dev, debhelper, то поставить:
sudo apt-get install php5-dev sudo apt-get install debhelper
И далее сказать:
dpkg-source -x php5-fss_0.0.1-3.dsc cd php5-fss-0.0.1 debian/rules binary dpkg -i ../php5-fss_0.0.1-3_i386.deb
Либо можно добавить в /etc/apt/sources.list зеркало http://apt.wikimedia.org/wikimedia/ (обязательно с deb-src), и дальше apt-get update; apt-get source php5-fss и дальше всё то же самое.
Для версий PHP >= 5.3 в коде расширения(fss.c, строка 243) также следует изменить строчку
ZVAL_ADDREF(*value);
На строчку
Z_ADDREF_P(*value);
PDF, DJVU, LaTeX
Поддержка постраничного просмотра PDF и DJVU по умолчанию включается только под UNIX-ами. Если вы хотите включить её под Windows, есть большая вероятность, что вы считаете свой Windows почти UNIX’ом — тогда просто используйте ServerSettings.php вместо BaseSettings.php + добавьте
- PDF: GhostScript, Poppler — бывший Xpdf (windows)
- DJVU: djvulibre, netpbm (windows).
- LaTeX (формулы <m>…</m>): любой дистрибутив TeX’а, например, в Debian обычно TeXLive, под Windows — MiKTeX. Новая фича: векторный рендеринг формул. Для неё нужна также утилита dvisvgm. В пакетах Debian'а её, к сожалению, нет, придётся ставить ручками. В Windows-сборку она включена и так.
Всё это должно быть прописано в системные пути.
Debian: apt-get install texlive-base djvulibre-bin netpbm ghostscript poppler-utils
Ещё один специфический момент: в poppler-utils есть баг — команда pdfinfo не учитывает поворот страниц. Это приводит к убогому качеству и/или кривому соотношению сторон у картинок, сгенерированных из ландшафтных PDF’ок. Чтобы сие пофиксить, нужно, к сожалению, патчить pdfinfo: http://wiki.4intra.net/extensions/PdfHandler/poppler-utils.diff. На это нами поставлен баг 41867 авторам poppler’а — надеемся, что когда-нибудь поправят / примут патч.
Graphviz, GNUplot, UMLGraph, PlantUML, UMLEt
- Graphviz желателен версии не меньше 2.27, так как в предыдущих есть различные мелкие баги.
- GNUPlot.
- UMLGraph.
- UMLet.
- PlantUML ставить необязательно, он есть в составе MediaWiki4Intranet.
- UMLGraph, UMLet, PlantUML требуют наличия Java.
Всё это, опять-таки, должно быть в путях.
Поддержка MP4/FLV видео
Здесь требуется ffmpeg (для windows), прописанный в пути.
Sphinx-поиск по вики
Во-первых, нужно установить и настроить Sphinx.
Дальше есть два способа (см. ниже) — Realtime индекс и монолитный индекс.
Для обоих способов есть авто-конфигуратор sphinxsearch/configure.sphinx.php. Использовать так:
- Создаём рядом с ним файл sphinx.wikis.php, в который прописываем что-то вроде:
$wikis = array('HOST' => array( array( 'name' => 'wiki', // имя индекса - должны быть разные для сожительствующих в одном sphinx'е вик 'user' => '', // имя пользователя БД 'pass' => '', // пароль к БД 'db' => '', // имя БД ), ));
- Вызываем php configure.sphinx.php --hostname HOST --style STYLE, где STYLE = «rt» (обновляемый индекс) или «local» (обычный индекс). Под UNIX вместо HOST можно использовать имя из /etc/hostname, и тогда можно будет держать один конфиг на несколько серверов, и вызывать без опции --hostname.
- Будет создан файл sphinx.conf, который нужно скормить Sphinx’у — под UNIX это обычно означает положить его в /etc/sphinxsearch/.
- Если конфигуратор предложит инициализировать какие-то индексы и выведет для этого команды — делайте, что говорит.
- Если конфигуратор предложит что-то добавить в /etc/crontab (команды на переиндексацию) — делайте, что говорит.
Внимание: автогенерённые конфиги, скорее всего, непригодны для использования под виндами. Вообще, мы под виндами сфинкса не используем и гарантировать работу тоже не можем.
Realtime индекс
Обновляемый дополняемый индекс. Расширение SphinxSearchEngine.
Плюсы:
- Появляются документы в индексе мгновенно;
- Интерфейс поиска остаётся штатный, только подменяется «движок»;
- Можно использовать TikaMW для индексации содержимого бинарных (офисных и т. п.) документов, загруженных в вики как файлы;
Но — индекс именно дополняемый — по факту ничего удалять из индекса Sphinx (2.0.x) не умеет!
То есть, он только делает вид, что умеет — на самом деле в индексе старые версии документов остаются, просто прописываются в «Kill-List» — список ID устаревших документов, которые удаляются из результатов поиска. Поэтому при большом количестве обновлений страниц могут пойти тормоза. И хотя сфинкс очень быстрый и тормоза пойдут не скоро, это всё-таки может случиться, и тогда время от времени всё равно будет нужно делать переиндексацию:
- Остановить демон сфинкса: /etc/init.d/sphinxsearch stop
- Удалить файлы индекса: rm /var/lib/sphinxsearch/data/yourwiki.*
- Запустить демон обратно: /etc/init.d/sphinxsearch start
- Запустить php extensions/SphinxSearchEngine/rebuild-sphinx.php
LocalSettings.php (раскомментируйте и подставьте адрес и порт, если у вас он в итоге отличается):
require_once "$IP/extensions/SphinxSearch/SphinxSearch.php"; $wgSphinxQL_index = 'wiki'; //$wgSphinxQL_host = ''; //$wgSphinxQL_port = '/var/run/searchd.sock'; // UNIX сокет, либо номер TCP-порта SphinxQL
Монолитный индекс (немного устаревший вариант)
Индекс монолитный, то есть, необновляемый. Расширение называется просто SphinxSearch. Работает так: держим два индекса — один полный, другой за последний день. Ночью полная переиндексация, а каждый час/полчаса/5 минут, кому как нравится — переиндексация данных за последний день.
Минусы:
- Не используется штатный интерфейс поиска MediaWiki;
- Данные появляются в поиске не мгновенно;
- Ночная переиндексация может занимать приличное время, если данных много;
- С таким поиском не получится использовать TikaMW.
LocalSettings.php (раскомментируйте и подставьте адрес и порт, если у вас он в итоге отличается):
require_once "$IP/extensions/SphinxSearch/SphinxSearch.php"; $wgSphinxSearch_index = 'main_wiki, inc_wiki'; //$wgSphinxSearch_host = 'localhost'; //$wgSphinxSearch_port = 3112;
TikaMW
TikaMW — наше расширение MediaWiki, подключающее для индексации загруженных в Wiki файлов библиотеку Apache Tika. Tika умеет извлекать текст из бинарных документов различных форматов — MS Office, Open Office, PDF и так далее.
Нужна Java и собственно, сама tika (tika-app.jar). Оную брать лучше тоже у нас, так как в нашей версии поправлен один баг и добавлена возможность слушать порт не на всех интерфейсах, а только на заданном (например, на 127.0.0.1).
- Брать тут: http://code.google.com/p/mediawiki4intranet/downloads/detail?name=tika-app-1.2-fix-TIKA709-TIKA964.jar
- Или тут: http://wiki.4intra.net/public/tika-app-1.2-fix-TIKA709-TIKA964.jar
Ссылки на баги, поставленные в апстрим по Тике: TIKA-709, TIKA-964.
Тику нужно прописать в автозапуск на сервере как-то так:
java -jar tika-app-1.2-fix-TIKA709-TIKA964.jar -p 127.0.0.1:8072 -t -eutf-8
Если вы используете наш ServerSettings.php, то прописывать Тику дополнительно не нужно — она уже там. А под виндами у нас и сфинкс пока отключён :)
Ну и, разумеется, если в вики до этого уже были файлы, а вы по ним хотите искать — индекс нужно будет перестроить с помощью extensions/SphinxSearchEngine/rebuild-sphinx.php.
Антиспам для публичных Wiki
В публичных Wiki имеют свойство заводиться спамеры, потому что можно легко зарегистрироваться и создать статью.
Поэтому желательно включить расширение reCAPTCHA, распространяемое вместе с MediaWiki4Intranet, получить ключи для своего домена на http://recaptcha.net/api/getkey, и прописать это всё в LocalSettings.php:
require_once('extensions/ConfirmEdit/ConfirmEdit.php'); require_once('extensions/ConfirmEdit/ReCaptcha.php'); // Sign up for these at http://recaptcha.net/api/getkey $recaptcha_public_key = ''; $recaptcha_private_key = ''; // Требовать подтверждение email-адреса для редактирования $wgEmailConfirmToEdit = true;
У спамеров есть ещё одно свойство — они регистрируются и сразу начинают создавать статьи. Поэтому, можно запретить создавать статьи после регистрации на какой-то период времени (в тяжёлых случаях можно, например, на 4 суток). Для этого нужно прописать следующие директивы в LocalSettings.php:
// Время, в течение которого запрещено создавать статьи (например, 4 суток * 86400 секунд в сутках) $wgAutoConfirmAge = 86400 * 4; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['delete'] = false; $wgGroupPermissions['*']['undelete'] = false; $wgGroupPermissions['*']['createpage'] = false; $wgGroupPermissions['*']['createtalk'] = false; $wgGroupPermissions['user']['createpage'] = false; $wgGroupPermissions['user']['createtalk'] = false; $wgGroupPermissions['autoconfirmed']['createpage'] = true; $wgGroupPermissions['autoconfirmed']['createtalk'] = true; $wgGroupPermissions['sysop']['createpage'] = true; $wgGroupPermissions['sysop']['createtalk'] = true; $wgGroupPermissions['bureaucrat']['createpage'] = true; $wgGroupPermissions['bureaucrat']['createtalk'] = true;
OpenID
В MediaWiki4Intranet есть поддержка OpenID, хотя и глючная, как и вообще любая реализация OpenID. Это не наша вина, и даже не вина авторов расширения OpenID — виноваты здесь авторы библиотеки OpenID для PHP.
Чтобы включить её, нужно прописать следующее в LocalSettings.php:
require_once("$IP/extensions/OpenID/OpenID.setup.php");
Также можно установить PEAR-пакет Auth_OpenID (apt-get install php-openid в Debian). Это необязательно — MediaWiki4Intranet уже включает копию этой библиотеки. Однако если у вас есть копия новее, чем у нас — ставьте… И удаляйте директорию extensions/OpenID/Auth.