• Immutable Page
  • Info
  • Attachments

Как интегрировать вашу wiki с существующей установкой Apache

Сейчас существуют 5 возможностей запустить wiki MoinMoin: CGI, FastCGI, Mod Python, Standalone-сервер или Twisted-сервер. Лучшие результаты дают FastCGI или Mod Python, но они не доступны для всех платформ и нуждаются в сложной настройке. Далее идёт использование серверов twisted или standalone, которые намного быстрее и легче в настройке, чем CGI-вариант.

Однако, много людей уже запустили веб-сервера и обслуживают статические страницы или другие приложения, и хотят добавить wiki к имеющейся установке. Лучший вариант для этого, это запустить MoinMoin как Standalone- или Twisted-сервер, связанный с вашим существующим веб-сервером через прокси. В версии 1.5 это работает без сложных настроек.

В приведённом ниже примере мы интегрируем wiki MoinMoin в наш сайт http://www.example.com/exwiki/.

  • (!) New in release 1.5

Требования

  1. Установите Standalone- или Twisted-сервер, как описано в КакУстанавливать.

  2. Убедитесь, что mod_proxy установлен и загружен. Проконсультируйтесь с Документацией по Apache.

Интегрирование с Apache 2

Настройка Standalone или Twisted

Если вы хотите использовать Twisted, отредактируйте mointwisted.py и установите такие опции:

    port = 8000
    interfaces = ['localhost']

Если вы хотите использовать Standalone, отредактируйте standalone.py и установите такие опции:

    port = 8000
    interface = 'localhost'

Теперь запустите ваш сервер moin и проверьте, что он работает на http://localhost:8000.

Настройка Apache 2

Отредактируйте ваш файл конфигурации Apache, httpd.conf или включаемый файл конфигурации:

# Должен быть off, чтобы запустить обратный прокси (reverse proxy)
ProxyRequests Off

Alias /wiki/ "/usr/share/moin/htdocs/"

<Location /exwiki/>
    ProxyPass http://localhost:8000/
    ProxyPassReverse http://localhost:8000/
    RequestHeader set X-Moin-Location /exwiki/
</Location>

Теперь перезапустите Apache и проверьте вашу wiki на http://localhost/exwiki/ или http://www.example.com/exwiki/

Эти настройки были проверены на Mac OS X.

Интегрирование с Apache 1

Настройка Standalone или Twisted

Если вы хотите использовать Twisted, отредактируйте mointwisted.py и установите такие опции:

    properties = {'script_name': '/mywiki', 'http_host': 'yourdomain'}
    port = 8000
    interfaces = ['localhost']

Если вы хотите использовать Standalone, отредактируйте standalone.py и установите такие опции:

    properties = {'script_name': '/mywiki', 'http_host': 'yourdomain'}
    port = 8000
    interface = 'localhost'
  • (!) Ещё одним решением может быть использование конфигурационной опции url_mapping.

Настройка Apache 1

Эта настройка требует mod_proxy. Прежде чем продолжать убедитесь, что он установлен и загружен.

Отредактируйте ваш файл конфигурации Apache, httpd.conf или включаемый файл конфигурации:

# Должен быть off, чтобы запустить обратный прокси (reverse proxy)
ProxyRequests Off

Alias /wiki/ "/usr/share/moin/htdocs/"

<Location /exwiki/>
    ProxyPass http://localhost:8000/
    ProxyPassReverse http://localhost:8000/
</Location>

Теперь перезапустите Apache и проверьте вашу wiki на http://www.example.com/exwiki/

  • (!) Обратите внимание, что ваша wiki с этими настройками не будет правильно работать по адресу http://localhost:8000.

    <!> Тестировалось на Apache 2, должно также работать на Apache 1.

Конфигурация фермы

При запуске Twisted или Standalone без прокси, URL wiki содержит имя сервера (иногда также порт) и имя страницы. Например: localhost:8000/pagename.

Однако, при запуске через прокси, URL wiki содержит хост прокси, а не имя сервера, и может включать "script_name". В этом случае wiki, работающая на localhost:8000 будет иметь url www.example.com/exwiki/pagename, когда вы обращаетесь к ней через прокси, и localhost:8000/pagename, когда вы обращаетесь к ней локально.

Если вы хотите использовать одни и те же конфигурационные файлы и для локального и для глобального доступа, используйте в вашем farmconfig.py примерно такие настройки:

wikis = [('exwiki', r'^(localhost:8000|www.example.com/exwiki).*')]

Если вы хотите получить разную конфигурацию для локального и глобального доступа, то:

wikis = [('exwiki_local', r'^localhost:8000.*'),
         ('exwiki_world', r'^www.example.com/exwiki.*'),]

Отключение перезаписи хоста

Если вы хотите отключить новую прозрачную перезапись хоста, перекройте http_host в вашем серверном скрипте:

    properties = {'http_host': 'hostname'}