Python-блог (original) (raw)

Предполагается, что 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

Настроиваем запуск вики как сервиса. Создаём файл для запуска апача в виртуальном окружении (нужно виртуальное окнужение для работы 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"