#apache #mediawiki #virtualhost
#apache #mediawiki #virtualhost
Вопрос:
В настоящее время я запускаю Mediawiki в своей стандартной папке Apache, то есть /var /www / html. Теперь мне было поручено сделать Mediawiki многоязычной, чего я могу достичь, создав вики-ферму путем настройки технически отдельных вики-сайтов на разных поддоменах с помощью виртуальных хостов, а затем подключив их с помощью расширений Mediawiki.
Недавно я пробовал экспериментировать с виртуальными хостами, хотя у меня получилось только до некоторой степени. То есть я настроил и включил оба VH через SSH, но загрузив de.example.com и en.example.com Я только что получил два 404-х файла.
Итак, прежде чем что-то рушить, я просто хотел спросить вас о моей конкретной проблеме:
Я хочу переместить текущую установку Mediawiki, расположенную по адресу /var/www/html/
в /var/www/html/de/
, а также скопировать ту же самую установку в /var/www/html/en/
(для последующего редактирования, просто чтобы не пришлось переустанавливать ее снова).
И, впоследствии, я хочу de.example.com указать на /var/www/html/de/
и en.example.com в /var/www/html/en/
.
Кроме того, example.com
следует ссылаться на de.example.com
.
Поскольку в настоящее время я немного запутался в том, как правильно этого добиться, я был бы очень признателен за краткое конкретное руководство по этой конкретной проблеме (то есть такое, которое в некотором смысле просто возвращает меня в нужное русло?).
Заранее благодарю вас!
Ответ №1:
Не существует «единственно верного способа» настроить вики-ферму с помощью MediaWiki. Однако существует множество различных решений, описанных на https://www.mediawiki.org/wiki/Manual:Wiki_family.
Для небольшой вики-фермы разумным началом является что-то вроде «Инструкции Giant switch» из Manual:Wiki_family. Этот метод использует преимущество того факта, что MediaWiki обрабатывает LocalSettings.php
файл, найденный в корне каталога MediaWiki deploy, на самом раннем этапе обработки каждого запроса, и этот файл может изменять настройки на основе заголовка Host: или другой информации, содержащейся в запросе.
Чтобы использовать этот метод, вы должны сделать что-то вроде этого:
- Загрузите файлы MediaWiki в веб-папку на веб-сервере (например
/var/www/html/
). Это уже было сделано в исходном вопросе. - Настройте начальную вики-страницу как обычно. Подробности см. в руководстве: Руководство по установке на mediawiki.org . Это тоже уже было сделано в исходном вопросе.
- После успешной установки переименуйте созданный LocalSettings.php чтобы упростить отслеживание того, с какой вики она идет (например
LocalSettings_en_example_com.php
) - Повторите шаги два и три выше для каждой вики, которую вы хотите создать, создав новую LocalSettings.php файл для каждой вики с последующим его переименованием для отслеживания того, какую вики он настраивает (
LocalSettings_de_example_com.php
и т.д.) -
Создайте пользовательский
LocalSettings.php
файл для выбора правильногоLocalSettings_*.php
на основе содержимого заголовка Host каждого запроса:<?php // Include common settings to all wikis before this line (eg. database configuration) switch ( $_SERVER['SERVER_NAME'] ) { case 'en.example.com': require_once 'LocalSettings_en_example_com.php'; break; case 'de.example.com': require_once 'LocalSettings_de_example.com.php'; break; default: header( 'HTTP/1.1 404 Not Found' ); echo 'This wiki is not available. Check configuration.'; exit( 0 ); }
-
Наконец, настройте свой веб-сервер на несколько виртуальных хостов, по одному для каждой вики, используя тот же
/var/www/html
каталог, что и корневой каталог документа для каждого виртуального хоста.