Статья: Ставим wiki движок moinmoin v.1.8.0

Обсуждаем сайт и форум.

Модератор: f0s

Аватара пользователя
dvg_lab
сержант
Сообщения: 291
Зарегистрирован: 2007-07-02 22:51:25
Откуда: Москва

Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение dvg_lab » 2008-11-15 15:27:06

Может комуто пригодится.

Установка MoinMoin v.1.8.0 на FreeBSD 7.1 PRERELEASE

Первым делом ставим Python 2.5 если он еще не стоит

Код: Выделить всё

cd /usr/ports/lang/python25 && make install clean

Далее из порта ставим сам moinmoin. На текущий момент в портах лежит устаревшая версия 1.7.1 в которой нет TWikiDraw плагина и есть пара неприятных глюков с редактированием, поэтому я решил обновить порт до 1.8.0 самостоятельно. Дифф для обновления порта в аттаче. Применять следующим образом.

Код: Выделить всё

cp pathc180.gz /usr/ports/www/
cp -R /usr/ports/www/moinmoin /usr/ports/www/moinmoin.bak
cd /usr/ports/www && gzip -d patch180.gz
patch <patch180

После этого у нас есть старый порт в moinmoin.bak дире и новый порт в дире moinmoin. Теперь можно начать сборку и установку. Я использовал Apache с модулем mod_wsgi ( на текущий момент в портах версия 2.3)

Код: Выделить всё

make MOINTYPE=WSGI MOINDEST=/usr/local/www/wiki install

этой командой мы установили скелет мойна в диру /usr/local/share/moin далее нужно установить инстанс в нашу диру

Код: Выделить всё

make MOINTYPE=WSGI MOINDEST=/usr/local/www/wiki instance

Теперь необходимо установить модуль mod_wsgi для апача, это стандартный интерфейс для работы python скриптов, некий аналог fastcgi но заточенный под питона.

Код: Выделить всё

cd /usr/ports/www/mod_wsgi && make install clean

Настраиваем Apache 2

Теперь настраиваем апач, файл для wiki хоста который используется у меня:

Код: Выделить всё

<VirtualHost *:80>
    DocumentRoot /usr/local/www/wiki/
    ServerName wiki.tjc.ru
    CustomLog       /var/log/apache/wiki-httpd-access.log       combined
    ErrorLog        /var/log/apache/wiki-httpd-error.log

    Alias /moin_static180/ /usr/local/share/moin/htdocs/

    <Directory /usr/local/share/moin/htdocs>
        Order deny,allow
        Allow from all
    </Directory>

#    ScriptAlias /mywiki /usr/local/www/wiki/moin.cgi

    WSGIScriptAlias / /usr/local/www/wiki/moin.wsgi

    # create some wsgi daemons - use someuser.somegroup same as your data_dir:
    WSGIDaemonProcess moin user=www group=www home=/usr/local/www processes=5 threads=10 maximum-requests=1000 display-name=wsgi-moin
    # umask=0007 does not work for mod_wsgi 1.0rc1, but will work later

    # use the daemons we defined above to process requests!
    WSGIProcessGroup moin


    <Directory /usr/local/www/wiki>
        Order deny,allow
        Allow from all
    </Directory>

</VirtualHost>

Alias /moin_static180/ используется для внутренних нужд мойна, и цифры в этой строке зависят от номера версии, то есть если будет к примеру устанавливаться версия 1.8.1 то строчка должна будет выглядеть как /moin_static181/.

Далее мы открываем доступ веб серверу к скелету в /usr/local/share/moin/htdocs

Затем идут настройки WSGI, у меня wiki работает по прямому url, если нужно чтоб wiki открывалась по адресу my.site.ru/wiki параметр WSGIScriptAlias следует записать в виде

Код: Выделить всё

WSGIScriptAlias /wiki /usr/local/www/wiki/moin.wsgi

Далее идут строки конфигурации WSGI демона, здесь запускается 5 воркеров по 10 тредов в каждом, более чем достаточно для моих нужд.

Настройка moinmoin

Редактируем moin.wsgi и wikiconfig.py в соотвтетствии с предпочтениями я приведу список параметров которые были дополнительно установлены мной.

файл moin.wsgi

Код: Выделить всё

sys.path.insert(0, '/usr/local/www')
from MoinMoin import log
log.load_config('/usr/local/share/moin/config/logging/logfile')


файл wikiconfig.py

Код: Выделить всё

sitename = u'MyWiki'
page_front_page = u"FrontPage"
interwikiname = 'MyWiki'
data_dir = '/usr/local/www/wiki/data/'
data_underlay_dir = '/usr/local/www/wiki/underlay/'
superuser = [u"dvg", ]
acl_rights_before = u"dvg:read,write,delete,revert,admin"
acl_rights_default = u"Trusted:read,write,delete,revert Known:read,write,delete,revert All:read"
password_checker = None # None means "don't do any password strength checks"
mail_sendmail = "/usr/sbin/sendmail -t -i"
mail_from = u"Wiki Wiki <norelpy@wiki.bird.ru>"
language_default = 'ru'

Теперь можно перезапускать апач и регистрироваться, ставить плагины, темы и на этом настройку можно считать законченной.
Могу рекомендовать тему http://moinmo.in/ThemeMarket/Mandarin
Для русификации интерфейса нужно зайти с админскими правами на страницу /SystemPagesSetup и установить оттуда поддержку русского интерфейса. После перезапуска апача мойн будет на русском.

Полезные страницы
/SystemAdmin
/SystemInfo
/SystemPagesInRussianGroup
Вложения
patch180.gz
(14.78 КБ) 96 скачиваний
FreeBSD the power to serve.

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 34896
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение Alex Keda » 2009-04-11 17:08:46

дезигн прикольный у неё...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
ComBin
рядовой
Сообщения: 10
Зарегистрирован: 2010-10-06 18:48:46

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение ComBin » 2010-10-06 19:03:49

Господа ставлю Moin на сервак словил сл. проблемку. И так конфиги в точности как в статье, отдельные могу показать если нужно будет что-то уточнить.
Версии софта:

Код: Выделить всё

msrv# uname -a
FreeBSD msrv 8.1-RELEASE FreeBSD 8.1-RELEASE #0: Mon Oct  4 22:02:43 NOVST 2010     combin@msrv:/usr/obj/usr/src/sys/GENERIC  amd64
msrv# python --version
Python 2.5.5
msrv# ls /var/db/pkg | grep moin
moinmoin-1.9.2_4


Апач стартует вроде бы нормально. Но при обращении к станице в логи валится следующее:

Код: Выделить всё

msrv# tail -f /var/log/httpd-error.log
[Wed Oct 06 22:25:07 2010] [info] mod_wsgi (pid=27628): Attach interpreter ''.
[Wed Oct 06 22:25:08 2010] [notice] child pid 27615 exit signal Segmentation fault (11)
[Wed Oct 06 22:25:08 2010] [info] mod_wsgi (pid=27615): Process 'moin' has died, restarting.
[Wed Oct 06 22:25:08 2010] [info] mod_wsgi (pid=27629): Starting process 'moin' with uid=80, gid=80 and threads=10.
[Wed Oct 06 22:25:09 2010] [notice] child pid 27616 exit signal Segmentation fault (11)
[Wed Oct 06 22:25:09 2010] [info] mod_wsgi (pid=27616): Process 'moin' has died, restarting.
[Wed Oct 06 22:25:09 2010] [info] mod_wsgi (pid=27630): Starting process 'moin' with uid=80, gid=80 and threads=10.
[Wed Oct 06 22:41:35 2010] [notice] child pid 27617 exit signal Segmentation fault (11)
[Wed Oct 06 22:41:35 2010] [info] mod_wsgi (pid=27617): Process 'moin' has died, restarting.
[Wed Oct 06 22:41:35 2010] [info] mod_wsgi (pid=27682): Starting process 'moin' with uid=80, gid=80 and threads=10.


Код: Выделить всё

msrv# tail -f -n 30 /var/log/apache/wiki-httpd-error.log
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8545): mod_wsgi (pid=27682): Inactivity timeout is 0.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 1 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 2 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 3 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 4 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 5 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 6 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 7 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 8 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 9 in daemon process 'moin'.
[Wed Oct 06 22:41:35 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27682): Starting thread 10 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [info] mod_wsgi (pid=27619): Create interpreter 'wiki.tjc.ru|'.
[Wed Oct 06 22:55:04 2010] [info] [client 217.8.225.103] mod_wsgi (pid=27619, process='moin', application='wiki.tjc.ru|'): Loading WSGI script '/usr/local/www/wiki/moin.wsgi'.
[Wed Oct 06 22:55:04 2010] [error] [client 217.8.225.103] Premature end of script headers: moin.wsgi
[Wed Oct 06 22:55:04 2010] [info] mod_wsgi (pid=27729): Attach interpreter ''.
[Wed Oct 06 22:55:04 2010] [info] mod_wsgi (pid=27729): Enable monitor thread in process 'moin'.
[Wed Oct 06 22:55:04 2010] [info] mod_wsgi (pid=27729): Enable deadlock thread in process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8702): mod_wsgi (pid=27729): Starting 10 threads in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8542): mod_wsgi (pid=27729): Deadlock timeout is 300.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8545): mod_wsgi (pid=27729): Inactivity timeout is 0.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 1 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 2 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 3 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 4 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 5 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 6 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 7 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 8 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 9 in daemon process 'moin'.
[Wed Oct 06 22:55:04 2010] [debug] mod_wsgi.c(8708): mod_wsgi (pid=27729): Starting thread 10 in daemon process 'moin'.


В браузер выплевывается:
Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator, you@example.com and inform them of the time the error occurred, and anything you might have done that may have caused the error.

More information about this error may be available in the server error log.


Тут вроде написано что можно попробовать установить "Python with the developer headers" но в портах никакого python-dev не надлюдаю, брать с офсайта из исходников его что ли собирать?

Аватара пользователя
f_andrey
майор
Сообщения: 2631
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение f_andrey » 2010-10-06 19:41:31

ComBin писал(а):moinmoin-1.9.2_4

А статья как бы про 1.8, вас ничего не смущало ;)

Настраивайте по их официальной документации, ну и немного подумайте, вроде все летает, правда с версии 1.9 вроде лучше использовать wsgi версию, я настраивал в паре с lighttpd вроде как работает без особых проблем, ну по крайней мере завелась и не падает :)
Если ваша тема перенесена, то смотри viewtopic.php?f=1&t=32308

Аватара пользователя
ComBin
рядовой
Сообщения: 10
Зарегистрирован: 2010-10-06 18:48:46

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение ComBin » 2010-10-06 22:22:37

А почему разница номере версии меня должна так уж смущать? Я думаю довольно таки сложно (а если уже быть совсем честным то и невозможно) найти столь подробную стать да еще и так чтобы все версии сходились с моими.

Официальная документация полностью процесс, к сожалению не описывает, вот именно что и нужно думать. Да и проблема то в общем-то по видимому не в настройках.

А вот за lighttpd спасибо. Пожалуй поковыряю его, по крайней мере если и не поможет то будет понятно что дело не в веб-сервере, за одно и горизонты познаний расширю. :)

правда с версии 1.9 вроде лучше использовать wsgi версию

А вот тут я не понял немного. В чем собственно вопрос? Я вроде и так мойн ставил с поддержкой wsgi и через него же и к апачу привязывал. Почему сомнения возникли?

Аватара пользователя
ComBin
рядовой
Сообщения: 10
Зарегистрирован: 2010-10-06 18:48:46

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение ComBin » 2010-10-09 14:19:28

Ну все с lighttpd вроде настроил. Но остался еще 1 вопросик.
Как сделать чтобы кирилица в урле передавалась как есть в (UTF-8 например) а не приобразовывалась вот это "%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B5%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F"?

Аватара пользователя
ComBin
рядовой
Сообщения: 10
Зарегистрирован: 2010-10-06 18:48:46

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение ComBin » 2010-10-09 14:38:06

Или может как-нибудь заставить мойн понимать эти процентики, забыл как такой способ кодировки называется...

Аватара пользователя
ComBin
рядовой
Сообщения: 10
Зарегистрирован: 2010-10-06 18:48:46

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение ComBin » 2010-10-10 17:11:50

Всем спасибо за помощь и дельные советы.

Решил проблему с киррилическими урлами сл. образом.

В файл "MoinMoin/web/request.py" добавляем вне классов функции:

Код: Выделить всё

def htc(m):
    return chr(int(m.group(1),16))

def urldecode(url):
    rex=re.compile('%([0-9a-hA-H][0-9a-hA-H])',re.M)
    return rex.sub(htc,url)


И добавляем пару 3 строчки в инит класса Request:

Код: Выделить всё

class Request(ResponseBase, RequestBase):

    def __init__(self, environ, populate_request=True, shallow=False):
        ResponseBase.__init__(self)
        environ['HTTP_REFERER'] = urldecode(environ['HTTP_REFERER'])  # <-- added
        environ['PATH_INFO'] = urldecode(environ['PATH_INFO'])        # <-- added
        environ['REQUEST_URI'] = urldecode(environ['REQUEST_URI'])    # <-- added
        RequestBase.__init__(self, environ, populate_request, shallow)
        self.href = Href(self.script_root or '/', self.charset)


Если у кого-то есть более изящное решение этой проблемы, так же буду рад ознакомиться.

Аватара пользователя
f_andrey
майор
Сообщения: 2631
Зарегистрирован: 2007-12-26 1:22:58
Откуда: СПб
Контактная информация:

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение f_andrey » 2010-10-10 17:19:09

ComBin писал(а):Ну все с lighttpd вроде настроил. Но остался еще 1 вопросик.
Как сделать чтобы кирилица в урле передавалась как есть в (UTF-8 например) а не приобразовывалась вот это "%D0%9F%D0%BE%D1%81%D0%BB%D0%B5%D0%B4%D0%BD%D0%B8%D0%B5%D0%98%D0%B7%D0%BC%D0%B5%D0%BD%D0%B5%D0%BD%D0%B8%D1%8F"?

Куда она у вас не передаётся?
Если ваша тема перенесена, то смотри viewtopic.php?f=1&t=32308

Аватара пользователя
ComBin
рядовой
Сообщения: 10
Зарегистрирован: 2010-10-06 18:48:46

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение ComBin » 2010-10-10 17:27:42

От веб-сервера в скрипт. Вообще в таком виде lighttpd пишет запрос уже в access.log, соответственно и дальше в движок он идет в таком же виде. Ну а вообще я в предыдущем сообщении уже написал что кое-как решил эту проблему.

mavriq
проходил мимо

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение mavriq » 2013-12-07 23:07:06

> Решил проблему с киррилическими урлами сл. образом.
> В файл "MoinMoin/web/request.py" добавляем вне классов функции:
> ...
> Если у кого-то есть более изящное решение этой проблемы, так же буду рад ознакомиться.

Есть более изящное решение (не знаю как с той старой версией, но и сейчас в 1.9.6 при работе в режиме WSGI, эта проблема есть)
Проблема в том, что переменные LANG и LC_ не передаются (точнее все от настроек вебсервера зависит)
Мне было проще сделать вот как:

Код: Выделить всё

# cat wikiconfig.py
...
import os
os.environ.update({'LANG': 'ru_RU.UTF-8', 'LC_NUMERIC': 'POSIX'})
### добавил эту строку --^^^^^^^^^^^^^^^^^^^^^^^^^
......

Аватара пользователя
ComBin
рядовой
Сообщения: 10
Зарегистрирован: 2010-10-06 18:48:46

Re: Статья: Ставим wiki движок moinmoin v.1.8.0

Непрочитанное сообщение ComBin » 2013-12-07 23:38:54

Мое решение кстати тоже перестало потом работать. После того как что-то обновил. Сейчас забыл уже что именно, давно не пользуюсь мойном. :) Если что попробую ваше решение.


Вернуться в «Про сайт»

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 6 гостей