Как интегрировать вашу 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
Требования
Установите Standalone- или Twisted-сервер, как описано в КакУстанавливать.
Убедитесь, что 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'}