Предполагается, что moin2 расположен в /home/ishayahu/moin-2.0
Для начала нам надо установить сам апач и mod_wsgi, чтобы он мог работать с Flask (я использую для этого portmaster (/usr/ports/ports-mgmt/portmaster)):
#portmaster www/apache22 www/mod_wsgi
Далее создаём файл moin-2.0/moinmoin2.wsgi, чтобы апач мог запускать Flask приложение:
#для работы mod_wsgi, так как он блокирует sys.stdout
import sys
sys.stdout=sys.stderr
# Собственно для Flask
from MoinMoin.app import create_app
application = create_app('/home/ishayahu/moin-2.0/wikiconfig.py')
Теперь будем настроивать апач. Создадим конфигурацию виртульного хоста: файл /usr/local/etc/apache22/Includes/wiki.local.conf
<VirtualHost *:80>
DocumentRoot /home/ishayahu/moin-2.0
ServerName wiki.local
ErrorLog /home/ishayahu/wiki.local-error_log
CustomLog /home/ishayahu/wiki.local-access_log combined
WSGIDaemonProcess moinmoin2 user=ishayahu group=ishayahu threads=5
WSGIScriptAlias / /home/ishayahu/moin-2.0/moinmoin2.wsgi
<Directory /home/ishayahu/moin-2.0>
WSGIProcessGroup moinmoin2
WSGIApplicationGroup %{GLOBAL}
Order deny,allow
Allow from all
</Directory>
</VirtualHost>
Настроиваем запуск вики как сервиса. Создаём файл для запуска апача в
виртуальном окружении (нужно виртуальное окнужение для работы moin; не забыть chmod +x /root/start_wiki)
/root/start_wiki:
#!/bin/bash
source /home/ishayahu/moin-2.0/env/bin/activate
/usr/local/etc/rc.d/apache22 onestart
Создаём файл для регистрации вики как сервиса /etc/rc.d/wiki (не забыть chmod +x /etc/rc.d/wiki):
#!/bin/sh
#
# PROVIDE: wiki
# REQUIRE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
name="wiki"
start_cmd="${name}_start"
stop_cmd="/usr/local/etc/rc.d/apache22 stop"
wiki_start()
{
/bin/bash /root/start_wiki
}
load_rc_config $name
run_rc_command "$1"
И в /etc/rc.conf:
wiki_enable="YES"