Настройка вики-фермы с помощью виртуальных хостов (Apache)

#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: или другой информации, содержащейся в запросе.

Чтобы использовать этот метод, вы должны сделать что-то вроде этого:

  1. Загрузите файлы MediaWiki в веб-папку на веб-сервере (например /var/www/html/ ). Это уже было сделано в исходном вопросе.
  2. Настройте начальную вики-страницу как обычно. Подробности см. в руководстве: Руководство по установке на mediawiki.org . Это тоже уже было сделано в исходном вопросе.
  3. После успешной установки переименуйте созданный LocalSettings.php чтобы упростить отслеживание того, с какой вики она идет (например LocalSettings_en_example_com.php )
  4. Повторите шаги два и три выше для каждой вики, которую вы хотите создать, создав новую LocalSettings.php файл для каждой вики с последующим его переименованием для отслеживания того, какую вики он настраивает ( LocalSettings_de_example_com.php и т.д.)
  5. Создайте пользовательский 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 );
    }
      
  6. Наконец, настройте свой веб-сервер на несколько виртуальных хостов, по одному для каждой вики, используя тот же /var/www/html каталог, что и корневой каталог документа для каждого виртуального хоста.