Manual:Wiki family/ru
| Язык: | English • Deutsch • español • français • 日本語 • 한국어 • русский |
|---|
| Some or all of the information on this page is inconsistent, irrelevant or confusing. Please help clean it up if you are able. |
- Требуется помощь с переводом и правка, ибо справка на английском Manual:Wiki family не является достаточной.
This page is in progress of translating to Russian. You can help translating it or go to another language version that follows:
Эта страница в процессе перевода на русский язык. Вы можете помочь в переводе или перейти на другие языковые версии, указанные ниже:
| Язык: | English • Deutsch • español • français • 日本語 • 한국어 • русский |
|---|
Эта страница описывает установку и настройку малых wiki-сайтов.
Сценарий 1: Использование "виртуальных каталогов" на виртуальном хостинге для отображения нескольких вики. [edit]
Этот метод использует преимущества символических ссылок ОС семейства Unix. Этот метод можно реализовать и в Windows, установив программное обеспечение, реализующее символические ссылки.
Как заставить работать несколько вики на одном сервере, используя тот же исходный код (т.е. один набор файлов MediaWiki), ту же базу данных, на виртуальном хостинге под ОС семейства Unix при помощи "виртуальных каталогов":
См. руководство, включающее подробные пошаговые инструкции: http://www.steverumberg.com/wiki/WikiHelp_-_Method_One
Заметим, что возможность создания поддоменов как в wikipedia.org (en.example.com, fr.example.com итд.) позволяет вам использовать Метод 2, обеспечивающий простую дифференциацию нескольких вики при помощи виртуальных хостов (VirtualHosts).
Сценарий 2: Быстрая установка [edit]
Вы хотите установить несколько вики на один сервер, используя тот же исходный код (т.е. один набор файлов MediaWiki) и одну базу данных?
-
Замечание: Во избежание путаницы папками называются фактические каталоги в файловой системе сервера, а директориями - виртуальные каталоги, отображаемые в url.
- Проверьте требования.
- Загрузите файлы MediaWiki в папку на веб-сервере.
- Откройте директорию с вики в браузере (например, если ваш веб-сервер доступен по адресу
http://localhostи файлы MediaWiki загружены в папку/testwiki/, тогда ссылка на вики будет выглядеть так:http://localhost/testwiki) вы попадете на страницу со ссылкой Please set up the wiki first. Нажмите на ссылку, заполните необходимые поля и установите первую вики (например, MyWiki). Более подробную информацию смотрите на Manual:Config script. - После успешной установки переместите LocalSettings.php в корневую папку вашей вики и переименуйте его таким образом, чтобы вы легко смогли понять к какой из вики относится данный конфигурационный файл (например, myWikiLocalSettings.php)
- Повторите шаги 3 и 4, создавая и переименовывая файл
LocalSettings.phpдля каждой вики (например, anotherWikiLocalSettings.php, итд.) - Если две или более ранее установленных отдельно вики должны быть объединены (должны использовать тот же исходный код, т.е. один набор файлов MediaWiki), то после переименования и перемещения каждого файла
LocalSettings.phpв корневую папку вики, измените переменную $wgScriptPath в каждом файлеLocalSettings.php, указав текущую корневую папку вики. - Создайте файл LocalSettings.php, в котором будут храниться глобальные настройки. Далее возможны два варианта:
- Вариант 1: Различные вики используют различные поддомены и одну директорию. Например,
en.wikipedia.org/wiki,de.wikipedia.org/wiki,ru.wikipedia.org/wiki - Вариант 2: Различные вики используют один поддомен и разные директории. Например,
yourdomain.com/wiki1,yourdomain.com/wiki2
- Вариант 1: Различные вики используют различные поддомены и одну директорию. Например,
- Вариант 1: Если у вас разные домены/поддомены, которые ссылаются на одну и ту же директорию на вашем сервере:
Замечание: Чтобы разные поддомены ссылались на одну директорию на сервере вам необходимо отредакировать конфигурационный файл вашего сервера (.htaccesssне достаточно, попробуйте изменитьhttpd-vhosts.txts), или если ваш сайт имеет собственный ip-адрес, изменить конфигурацию DNS для вашего сайта.
Содержимое LocalSettings.php:
<?php switch ($_SERVER["SERVER_NAME"]) { case "shoopz.com": require_once "LocalSettings_shoopz_com_.php"; break; case "help.shoopz.com": require_once "LocalSettings_help_shoopz_com_.php"; break; case "wiki.shoopz.net": require_once "LocalSettings_wiki_shoopz_net.php"; break; default: echo "This wiki is not available. Check configuration."; exit(0); } ?>
- Вариант 2: Если ваши вики находятся в разных директориях (например,
yourdomain.com/wiki1,yourdomain.com/wiki2итд.) и ссылаются на главную директорию вики на вашем сервере (скажем,yourdomain.com/w), используйте следующий метод:
-
Замечание: Если функция strpos() найдет искомую строку в начале $callingurl, то функция вернет результат 0 (т.е. искомая строка начинается с позиции 0). Например, если мы обращаемся к адресу yourdomain.com/wiki2, переменная $callingurl будет содержать строку/wiki2. Если искомой строкой будет/wiki2, вместо приведенной в примереwiki2, то strpos() вернет 0. В таком случае вы должны изменитьif(strpos($callingurl,'wikiN'))наif(strpos($callingurl,'wikiN') !== FALSE).
<?php $callingurl = strtolower($_SERVER['REQUEST_URI']); //получаем запрошенный url if ( strpos( $callingurl, 'wiki1', 0) ) { require_once( 'LocalSettings_wiki1.php' ); } else if ( strpos( $callingurl, 'wiki2', 0) ) { require_once( 'LocalSettings_wiki2.php' ); } . . . else if ( strpos( $callingurl, 'wikiN', 0) ) { require_once( 'LocalSettings_wikiN.php' ); } else { echo "This wiki (in ". $callingurl . ") is not available. Check configuration."; exit(0); } ?>
-
Замечание: Если вы используете Short URL с Вариантом 2, то вы должны проверять две директории: strpos( $callingurl, 'wiki1', 0) || strpos( $callingurl, 'w1/', 0), для проверки обращений напрямую к папке (w1 -> w), и адаптации$wgScriptPath.
Вы можете использовать разные базы MySQL для каждой вики (смотрите $wgDBname) ИЛИ вы можете использовать разные префиксы таблиц для каждой вики (для Postgresql вы можете достичь аналогичного эффекта с помощью различных схем) (смотрите $wgDBprefix).
Также этот может быть полезен для перенаправления с несуществующих вики на главную вики, вместо дешевой надписи "Эта вики (бла-бла) недоступна. Проверьте конфигурацию."
Обновление вики-хостинга (wikifarm) из командной строки [edit]
Этот метод требует установки переменной $_SERVER["SERVER_NAME"] для запуска maintenance/update.php, что, конечно же, невозможно сделать из командной строки. Это ограничение обходится путем создания простого сценария PHP update_subdomain.php (Все операции проделываются в корневом каталоге MediaWiki):
<?php $sub = $argv[1]; // получаем аргументы командной строки из $argv // устанавливаем доменное имя $_SERVER['SERVER_NAME'] = $sub . '.domain.org'; echo '-------------------------------------- Running update.php for ' . $sub . '.domain.org -------------------------------------- '; include("maintenance/update.php"); ?>
Теперь вы можете запустить обновление:
php update_subdomain.php subdomain_prefix
-
Замечание: Кажется невозможным многократный запуск скрипта обновления из этого php скрипта, так как после первого запуска мы не сможем распознать изменившуюся переменную $_SERVER["SERVER_NAME"]. (Может быть попробовать установить переменные (домены) напрямую в скрипте, как это сделано в #Итоговое минималистское решение?) Это ограничение обходится путем создания bash скрипта для многоразового запуска нашего php скрипта (назовем скрипт "update_wikifarm.sh"):
#!/bin/bash # устанавливаем поддомены для обновления subdomains=( meta en fr de es pl pt ja nl it sv ru zh ) # запускаем цикл for sub in ${subdomains[@]} do php update_subdomain.php $sub done
Измените префиксы поддеменов на префиксы вашего вики-хостинга, сделайте ваш скрипт исполняемым и запустите его:
chmod ug+x update_wikifarm.sh ./update_wikifarm.sh
Сценарий 3: Drupal-стиль сайтов [edit]
Как и ранее, этот сценарий позволяет установить несколько вики на один сервер, используя тот же исходный код (т.е. один набор файлов MediaWiki) и одну базу данных. Преимущества этого метода в том, что он полностью прозрачен для пользователей и достаточно безопасен с точки зрения каталога изображений.
- Создайте корневую папку, в которой будут располагаться все файлы MediaWiki. Например,
mkdir /home/web/mediawiki. - Установите MediaWiki и дополнительные расширения в подпапку с указанием версии движка (Например,
/home/web/mediawiki/mediawiki-1.10.0). - Создайте симлинк на эту директорию. Например,
ln -s /home/web/mediawiki/mediawiki-1.10.0 /home/web/mediawiki/code - Создайте папку sites для хранения конфигураций и рисунков:
mkdir /home/web/mediawiki/sites - Установите вики из папки /code.
- После успешной установки переместите
LocalSettings.phpв необходимую папку. Например, для сайта http://mysite.com/mywiki, создайте папку mysite.com.mywiki. Например,mkdir /home/web/mediawiki/sites/mysite.com.mywiki. Более подробную информацию смотрите в описании файла settings.php Drupal'а. - Если вы собираетесь загружать медиафайлы, создайте для них подпапку в папке вашего сайта. Например,
mkdir /home/web/mediawiki/sites/mysite.com.wiki/images. Пользователь, под которым работает Apache, должен иметь права на запись в эту папку. - Поместите файл Drupal-style LocalSettings.php в корневую папку вашей вики:
cp DrupalLocalSettings.php /home/web/mediawiki/code/LocalSettings.php - Модифицируйте LocalSettings.php для каждого сайта так, чтобы он указывал на правильное место:
- Сначала закомментируйте, касающиеся переменной
$IP, (строки 16-20 в 1.15.3), эта переменная будет установлена в файломindex.phpи будет содержать путь к папке code. - Вставьте следующие строки для возможности загрузки и отображения изображений, например:
$wgUploadDirectory = "/home/web/mediawiki/sites/wiki.mysite.com/images";and$wgUploadPath = "/images";. Их нужно добавить после вызова файлаDefaultSettings.php(строка 25 в 1.15.3), иначе эти переменные будут сброшены в значения по умолчанию. - Сделать дополнительные изменения по необходимости.
- Сначала закомментируйте, касающиеся переменной
- Подготовка Apache 2. Пример приведен для сайта wiki.mysite.com
- Создайте линк на папку code, если это необходимо. Например,
ln -s /home/web/mediawiki/code /home/web/wiki.mysite.com - Создайте конфигурацию для виртуального хоста:
- Создайте линк на папку code, если это необходимо. Например,
<VirtualHost *:80>
ServerAdmin postmaster@mysite.com
DocumentRoot /home/web/wiki.mysite.com
ServerName wiki.mysite.com
CustomLog /var/log/apache2/wiki.mysite.log common
# Алиас для доступности сайта
Alias /mediawiki/code /home/web/mediawiki/code
# Алиас для папки с изображениями
Alias /images /home/web/mediawiki/sites/wiki.mysite.com/images
# Если вы хотите защитить паролем ваш сайт
# <Directory /home/web/wiki.mysite.com>
# AuthType Basic
# AuthName "My protected Wiki"
# AuthUserFile /etc/apache2/htpasswd/users-mywiki
# require valid-user
# </Directory>
</VirtualHost>
- Если вы настраивали сайт локально, обновите ваш файл
hostsвписав имена сайтов.
Теперь ваш сайт должен работать. В моем случае, я сделал еще одну копию кода, из которой я устанавливал и обновлял LocalSettings.php и базы данных.
Учтите, что используемая Drupal'ом переменная $_SERVER['HTTP_HOST'] не будет установлена, если скрипты обслуживания запущены из командной строки, поэтому данное решение не позволит вам использовать скрипты обслуживания без некоторых модификаций.
Сценарий 4: Распределение общих ресурсов между несколькими вики [edit]
You want to have some wikis in different languages, sharing the same media-files in another, single wiki.
For example:
- en.yourwiki.org - English language
- fr.yourwiki.org - French language
- de.yourwiki.org - German language
- pool.yourwiki.org - media-files for all of these wikis (like Commons).
- As there is already an Interwikilink named commons for Wikimedia Commons, we name our media-files-wiki "pool".
- Think before being creative; if you call your media-files-wiki something like "media" (e.g. media.example.com), it might collide with internal namespaces and nomenclature for embedded media files ([[media:file.ext]]).
Установка Install [edit]
On your filesystem, create a folder for each wiki. Run the install script for each wiki.
(This solution duplicates source code. You may wish to replace the include, skin, language and extension directories for non-pool installations with symbolic links to the pool's directories [rm -r include && ln -s pooldir/include etc.] to improve cache performance.)
Настройка [edit]
Интервики Interwiki [edit]
Now you have to set Interwikilinks between all wikis, by editing their MySQL-Databases (if you prefer, install and use Extension:Interwiki)
- Table Interwiki
- iw_prefix - enter the language-code of the wikis, "de" for German, "en" for English, "fr" for French and "pool" for the mediapoolwiki
- iw_url - this is the place for the complete URL to the wikis, e.g. "http://de.yourwiki.org/index.php/$1" for the German wiki (don't forget the "$1" !).
Now you can link an article to the same in another languages. Adding [[de:Hauptseite]] on your English Main_Page will create a link "Deutsch" (under the Navigation bar) which leads to the Main_Page of the German wiki (Hauptseite). For further information visit Help:Interwiki linking
Загрузка [edit]
Make sure that folder "images" of the pool-wiki is writable.
It is useful to change the "Upload file"-Link of the language-wikis to point to poolwiki's upload-site. Open the "LocalSettings.php" of each language-wiki and add:
$wgUploadNavigationUrl = "http://pool.yourwiki.org/index.php/Special:Upload";
Использование общих файлов [edit]
To use poolwiki's files in the languagewikis, open "LocalSettings.php" for each languagewiki and add:
$wgUseSharedUploads = true; $wgSharedUploadPath = 'http://pool.yourwiki.org/images'; $wgSharedUploadDirectory = '/(LOCALPATH)/POOL-FOLDER/images/'; $wgHashedSharedUploadDirectory = true;
Now you can integrate pool's files with (e.g.) [[Image:MyLogo.png]] in the languagewikis.
Описание изображения [edit]
In each languagewiki, open (as an admin) the message MediaWiki:Sharedupload.
Change the text to something like:
This file is stored in our data-pool. For information and description, please visit the
[[:pool:Image:{{PAGENAME}}|description there]].
(And note the ':' at the beginning of the line, which stops 'pool' from being included in the interwiki list at the left of the page.)
If you want to output the media-description, stored in the PoolWiki, too, add to the "LocalSettings.php" of the languagewikis:
$wgFetchCommonsDescriptions = true; $wgSharedUploadDBname = 'pool'; # DB-Name of PoolWiki $wgSharedUploadDBprefix = 'wiki_'; # Table name prefix for PoolWiki $wgRepositoryBaseUrl = "http://pool.yourwiki.org/index.php/Image:";
Общие настройки [edit]
If you have multiple wikis, you'll probably want to share similar settings across them all. Here is how to do that. We recommend that you separate your Extension settings into a different file than your other settings, as detailed below. They can be all put into one large file, but it's not as flexible depending upon your specific needs.
Here is an example directory structure if you do all of the following:
en/ es/ pl/ ja/ pool/ ExtensionSettings.php WikiFamilySettings.php SharedMediaSettings.php
Extension Settings [edit]
- Step 1
- Create a file called ExtensionSettings.php with the following contents, and place it in a location similar to the example above.
<?php ##### ##### Extension Directory Variables ##### ## ## These variables allow you to specify a single, shared directory for each grouping of extensions. ## If the directory ever needs to be changed, it can be changed here rather than on every ## item below. DO NOT include a trailing "/". ## ## Extensions from svn.wikimedia.org # $wgWikimediaExtensions = "/var/www/wikimediaextensions"; ## ## Any third-party extensions # $wgOtherExtensions = "/var/www/extensions"; ##### ##### ### Add globalized extension settings below #require_once( "$wgWikimediaExtensions/ReallyCoolExtension/ReallyCoolExtension.php" ); #An example Wikimedia Subversion extension entry #require_once( "$wgOtherExtensions/ReallyCoolExtension/ReallyCoolExtension.php" ); #An example third-party extension entry
- Step 2
- Edit the LocalSettings.php file of each wiki that you want to use the shared settings, and add the following.
require_once( "/absolute/path/to/ExtensionSettings.php" );
- Step 3
- Now just add all the references to your various extensions
Wiki Family Settings [edit]
These are settings that you want to apply to the entire wiki family. For example, maybe you want to be able to easily put all the wikis into read-only mode at the same time. You can also store the username/password for the database(s), if they are all the same. Additionally, you could control user permissions across your entire wiki from this one file.
Note: If you use a Images/Media commons or pool, we recommend that you not put these settings in the WikiFamilySettings.php file. That information only applies to every wiki in your wiki family other than your repository. We recommend putting it in a separate file.
[edit]
See Manual:Shared database for instructions on setting up shared database tables.
Сценарий 5: Несколько проектов Вики посредством Правил Подстановки [edit]
Этот подход основан на работе Мизэнура Рахмана (Mizanur Rahman) (см. Boolean Dreams Article и также есть элементы, указанные выше в #Scenario_2:_Quick_set-up. Следуйте за шагами 1-5 в #Scenario_2:_Quick_set-up чтобы установить отдельный Вики-проект. Затем модифицируйте файл LocalSettings.php для каждого Вики-проекта, внеся примерно следующие строки:
Wiki 1 Local Settings File:
$wgArticlePath = "/wiki1/$1"; // Gives us Wikipedia style urls for articles. $wgScriptPath = "/srcwiki1"; // Makes non-article urls unique for this wiki.
Similarly for Wiki 2 Local Settings File:
$wgArticlePath = "/wiki2/$1"; // Gives us Wikipedia style urls for articles. $wgScriptPath = "/srcwiki2"; // Makes non-article urls unique for this wiki.
Необходимо также создать главный файл настроек, с примерным содержанием, описанным в шаге 7 в #Scenario 3: Quick set-up, чтобы выбрать соответствующий файл локальных настроек (local settings file) для wiki1 или wiki2 лежащий в основе URL.
Наконец, в файл .htaccess необходимо внести Правило Подстановки (RewriteRules), чтобы URL статей отображались в виде стандартных URL Вики, а нестатейные URL указывали на директорию, с исходниками Вики. Если предположить, что исходники Вики физически установлены на сервере в директорию '/w/', то файл .htaccess должен содержать примерно следующие строки:
RewriteEngine On RewriteRule ^wiki1/(.*)$ /w/index.php?title=$1 [PT,L,QSA] RewriteRule ^wiki1/*$ wiki1/ [L,QSA] RewriteRule ^wiki2/(.*)$ /w/index.php?title=$1 [PT,L,QSA] RewriteRule ^wiki2/*$ wiki2/ [L,QSA] RewriteRule ^srcwiki1/(.*)$ /w/$1 [PT,L,QSA] RewriteRule ^srcwiki2/(.*)$ /w/$1 [PT,L,QSA]
Fix для скриптов обслуживания [edit]
Скрипты обслуживания работают напрямую, не через URL, таким образом Правила Подстановки не будут обеспечивать соответствующий URL для главного файла настроек LocalSettings.php в $_SERVER["SERVER_NAME"] или $_SERVER['REQUEST_URI']. Чтобы работало окружение, используйте отдельную глобальную переменную, чтобы предложить альтернативный метод выбора (или выбор метода) и задать переменную после командной строки, вызывающей скрипты обслуживания. Правильный главный файл настроек LocalSettings.php должен выглядеть примерно так:
<?php if (isset($gWikiSelect)) { if ($gWikiSelect == 'wiki1') { require_once('Local_Wiki1_Settings.php'); require_once('Admin_Wiki1_Settings.php'); } else if ($gWikiSelect == 'wiki2') { require_once('Local_Wiki2_Settings.php'); require_once('Admin_Wiki2_Settings.php'); } } else { $callingUrl = strtolower($_SERVER['REQUEST_URI']); if (strpos($callingUrl, wiki1)) { require_once('Local_Wiki1_Settings.php'); } else if (strpos($callingUrl, 'wiki2')) { require_once('Local_Wiki2_Settings.php'); } } ?>
Затем, из командной строки запускается скрипт обслуживания, такой как importImages.php:
php -d auto_prepend_file=SelectWiki1.php importImages.php c:\myimages
В данном случае параметр -d модифицирует настройку auto_prepend_file в php.ini, чтобы выполнить файл перед скриптом importImages.php. Этот файл задает глобальную переменную для выбора Вики-проекта:
<?php $gWikiSelect='wiki1'; ?>
Другими словами мы можем определить, какой Вики-проект мы обслуживаем, и выделяем необходимый файл AdminSettings.php . Можем радоваться (танец с бубном закончен)...
Итоговое минималистское решение [edit]
Итоговое минималистское решение состоит из символьных ссылок,
$ ls -og lrwxrwxrwx 1 16 2008-11-03 06:29 aaa.example.org -> mediawiki lrwxrwxrwx 1 16 2008-11-03 06:29 bbb.example.org -> mediawiki lrwxrwxrwx 1 16 2008-11-03 06:29 ccc.example.org -> mediawiki
Посмотрим реальный пример mediawiki/LocalSettings.php. В реальной ситуации у вас будут, вероятно, незначительные отличия в именах сайтов и баз данных, которыми Вы управляете.
$wgSitename=0; $mysites=array(array('台掃','radioscanningtw.jidanni.org','radioscanningtw'), array('中公','taizhongbus.jidanni.org','taizhongbus'), array('蝶園','transgender-taiwan.org','transgender'), array('ABJ', 'abj.jidanni.org','mwabj')); foreach($mysites as $site){ if(strpos($_SERVER['SCRIPT_FILENAME'],$site[1])!==false){$wgSitename=$site[0];$wgDBname=$site[2];break;}} if(!$wgSitename && $wgCommandLineMode) { foreach($mysites as $site){ if(strpos($_SERVER['PWD'],$site[1])!==false){$wgSitename=$site[0];$wgDBname=$site[2];break;}}} if(!$wgSitename){trigger_error('請告訴我積丹尼 Please tell me. TEL+886-4-25854780',E_USER_ERROR);} #for maintenance scripts here on our Wiki Family https://bugzilla.wikimedia.org/show_bug.cgi?id=19593 : if($wgServer=='http://localhost'){$wgServer=$wgInternalServer=$wgProto.'://'.$site[1];} $wgUsePathInfo=false;$wgScriptPath='';$wgDBserver='mysql.transgender-taiwan.org'; $wgLogo="/images/$wgDBname/$wgDBname.png"; switch($wgSitename){... #any per-wiki customizations
Примечательно, что мы и поныне отдельно подготавливаем задачи, связанные с базой данных, например php update.php. (Вышеуказанный код должен определить к каким вики-проектам обращается update.php.) Обновление просто, если Вы используете SVN (download from SVN). (Надеюсь нет больше кода (code), который предполагает, что есть только один Вики-проект на диске...)
Изображения [edit]
Если вы не позволяете загрузку или позволяете только для вашего пула wiki, Вы должны создать отдельные каталоги изображений и указать их псевдонимы в вашей vhost конфигурации: for i in aaa bbb ccc; do mkdir -p /home/user/images/$i; done, а также в aaa.example.org's vhost: Alias /w/images /home/user/images/aaa. Таким же образом для bbb и ccc.
Однако вместо этого можно предпочесть альтернативную простую установку Manual:Image Administration#Alternative simple setup, где *.example.org/images/ только указывает на ту же самую директорию. В качестве примера: *.example.org/$wgDBname/images/.
Добавление новых вики [edit]
Добавление новых wiki к существующему семейству wiki
- добавьте конфигурацию в свой web сервер
- временно закомментируйте
file_exists("../LocalSettings.php")проверьте наличие config/index.php и затем выполните его - merge the config/LocalSettings.php produced into LocalSettings.php
- add some pages
Удаление старых вики [edit]
Удаление wiki из семейства wiki-проектов
- удалите его конфигурацию из
- web server
- LocalSettings.php
- DROP DATABASE
Wiki использование расширений (Farmer Extension) [edit]
см. Extension:Farmer
Метод, используемый фондом Wikimedia [edit]
Еще возможно использовать метод, который использует фонд Wikimedia. Ниже упоминаются приблизительные шаги. Этот метод не для слабонервных, но он дает довольно хорошие результаты. Фонд Wikimedia добился успеха при использовании этого метода :-)
- Сконфигурируйте шаблонную копию MediaWiki через онлайн мастер конфигурации. Отредактируйте Заглавную страницу если Вы хотите Заглавную страницу, которая будет использоваться по умолчанию, создать на своей ферме.
- После этого, экспортируйте свою базу данных с
mysqldump, phpMyAdmin, и т.д. Сохраните это на своем сервере в maintenance/ directory примерно как наподобиеtemplate.sql. - Теперь, напишите несколько быстрых сценариев, чтобы создать новую wiki. В сущности, Вы должны добавить это в список wiki-проектов, который может быть на основе простого неструктурированного файла или на базе MySQL/SQLite, затем импортировать дамп базы данных об эталонах назад в базу данных под именем новой wiki. Используйте стандартную приставку после нового имени базы данных (то есть, если wiki-проект называется например meta.yourdomain.net, то Вы могли бы выбрать metawiki в качестве имени базы данных).
- В Вашем файле конфигурации, добавьте что-то вроде нижеследующего, устанавливая префикс базы данных и Ваш домен в случае необходимости:
if ( preg_match( '/^(.*)\.yourdomain.net$/', $server, $matches ) ) { $wikiname = $matches[1]; } else { die( "Invalid host name, can't determine wiki name" ); // You could also redirect to a nicer "No such wiki" page. } if( $wikiname == "www" ) { // Change this to your "main" wiki. $wikiname = "meta"; } $wgDBname = $wikiname . "wiki";
- Сконфигурируйте свой DNS с подстановочным знаком А запись, и apache с псевдонимом сервера (like
ServerAlias *.yourdomain.net), и можете вести бизнес. Configure your DNS with a wildcard A record, and apache with a server alias (likeServerAlias *.yourdomain.net) and you should be in business.
Скрипт maintenance/update.php может быть запущен из другого php скрипта, например update_farm.php, и этот внешний скрипт установит различные параметры сервера, которые необходимы вашему LocalSettings.php чтобы установить корректный $wgDBname:
<?php # update_farm.php script $_SERVER['SERVER_NAME'] = $argv[1]; $_SERVER['DOCUMENT_ROOT']= $argv[2]; #optional include("maintenance/update.php")
и, чтобы обновить meta.yourdomain.net, запустите из вашего уникального mediawiki каталога следующую командную строку:
php update_farm.php meta.yourdomain.net
Ваш уникальный LocalSettings.php (который обычно состоит из нескольких строк, включающий в себя CommonSettings.php, не непосредственно доступный с сервера) декодирует переменную meta и установит $wgDBname в соответствии с этим.
The DOCUMENT ROOT directory (аналогичный набору значений в вашем httpd.conf) может также использоваться в вашем CommonSettings.php, чтобы иметь больше приспособляемости при использовании тестового сервера.
Вы должны также указать местоположение каталогов загрузки, если вы хотите (не хотите), чтобы каждая wiki использовала те же самые файлы. Как сказано выше, это - вероятно, один из самых трудных методов в выполнении и он требует большего технического опыта, но он может дать действительно хорошие, чистые результаты.
Пошаговая инструкция [edit]
На Сисадминвики есть несколько пошаговых инструкций по созданию и настройке вики фермы (семьи).
См. также [edit]
| Язык: | English • Deutsch • español • français • 日本語 • 한국어 • русский |
|---|
