Упатство:MoinMoin: Разлика помеѓу преработките
Нема опис на уредувањето |
с (32 ревизии: initial) |
||
(Не се прикажани 19 меѓувремени преработки од 6 корисници) | |||
Ред 5: | Ред 5: | ||
MoinMoin е wiki софтвер напишан во Python. Главната разлика со на пр. MediaWiki е што MediaWiki е претежно ориентиран кон јавни wiki-ја, додека MoinMoin овозможува поголема контрола, посебно преку флексибилниот ACL систем. Исто така згодно е што може да се проширува со богата палета на Python код. Исто така има можност за подобро организирање на страните, во хиерархија и категории и може да користи повеќе markup јазици за содржината. MoinMoin не користи база на податоци и си има сопствен full-text search. Некои сајтови кои користат MoinMoin се [https://help.ubuntu.com/community/ Ubuntu], [http://fedoraproject.org/wiki/ Fedora], [http://wiki.debian.org/ Debian] и други. | MoinMoin е wiki софтвер напишан во Python. Главната разлика со на пр. MediaWiki е што MediaWiki е претежно ориентиран кон јавни wiki-ја, додека MoinMoin овозможува поголема контрола, посебно преку флексибилниот ACL систем. Исто така згодно е што може да се проширува со богата палета на Python код. Исто така има можност за подобро организирање на страните, во хиерархија и категории и може да користи повеќе markup јазици за содржината. MoinMoin не користи база на податоци и си има сопствен full-text search. Некои сајтови кои користат MoinMoin се [https://help.ubuntu.com/community/ Ubuntu], [http://fedoraproject.org/wiki/ Fedora], [http://wiki.debian.org/ Debian] и други. | ||
mod_wsgi е модул за Apache кој го вклучува Python интепретерот директно во Apache web серверот и овозможува | mod_wsgi е модул за Apache кој го вклучува Python интепретерот директно во Apache web серверот и овозможува едноставно сервирање на WSGI апликации. mod_wsgi е напишан како одговор на mod_python модулот кој со годините стана прекомплициран и напластен од проблеми за кои нема лесно решение. Ако прашањето е Python+Apache, одговорот е mod_wsgi. | ||
Оваа комбинација сметам дека е најдобра варијанта од сите за хостирање на MoinMoin wiki, па и за wiki софтвер воопшто. | Оваа комбинација сметам дека е најдобра варијанта од сите за хостирање на MoinMoin wiki, па и за wiki софтвер воопшто. | ||
Ред 21: | Ред 21: | ||
== Инсталација на mod_wsgi == | == Инсталација на mod_wsgi == | ||
Шансите се дека mod_wsgi го имате како пакет во вашата Linux дистрибуција. Ако не, инсталацијата е прилично едноставна. Познатата процедура: | Шансите се дека mod_wsgi [http://modwsgi.googlecode.com/files/mod_wsgi-2.0.tar.gz mod_wsgi] го имате како пакет во вашата Linux дистрибуција. Ако не, инсталацијата е прилично едноставна. Познатата процедура: | ||
<pre> | <pre> | ||
tar xf mod_wsgi-2.0.tar.gz | tar xf mod_wsgi-2.0.tar.gz | ||
Ред 29: | Ред 29: | ||
sudo make install | sudo make install | ||
</pre> | </pre> | ||
ќе работи секогаш и секаде. На крајот треба да се добие една единствена датотека во /usr/lib/apache/ (или /usr/lib/apache2/ или /usr/lib/httpd/ или сл. зависно од дистрибуцијата) 'mod_wsgi.so'. | ќе работи секогаш и секаде. На крајот треба да се добие една единствена датотека во /usr/lib/apache/ (или /usr/lib/apache2/ или /usr/lib/httpd/ или сл. зависно од дистрибуцијата) 'mod_wsgi.so' ([http://damjan.softver.org.mk/libapache2-mod-wsgi_2.0-1_i386.deb пакет за Ubuntu 8.04]). | ||
== Инсталација на MoinMoin == | == Инсталација на MoinMoin == | ||
Ред 53: | Ред 53: | ||
</pre> | </pre> | ||
Содржината на /srv/moin/my-wiki/moin.wsgi треба да биде следнава (се повеќе може да се брише): | |||
<pre> | |||
# -*- coding: utf-8 -*- | |||
import sys | |||
sys.path.insert(0, '/srv/moin/my-wiki') | |||
from MoinMoin.server.server_wsgi import WsgiConfig, moinmoinApp | |||
class Config(WsgiConfig): | |||
logPath = '/srv/moin/my-wiki/moin.log' # adapt this to your needs! | |||
#import logging | |||
#loglevel_file = logging.INFO # adapt if you don't like the default | |||
config = Config() # MUST create an instance to init logging! | |||
application = moinmoinApp | |||
</pre> | |||
Во wikiconfig.py се подесуваат сите параметри на MoinMoin инстанцата. Нема да ги објаснувам деталите бидејќи има коментари во самата датотека, но најважно е да се подесат абсолутни патеки до data и underlay директориумите. Еве пример од wikiconfig.py (прикажан е само дел): | |||
<pre> | |||
# -*- coding: utf-8 -*- | |||
... | |||
class Config(DefaultConfig): | |||
sitename = u'Moe Вики' | |||
... | |||
data_dir = '/srv/moin/my-wiki/data/' | |||
... | |||
data_underlay_dir = '/srv/moin/my-wiki/underlay/' | |||
... | |||
#url_prefix_static = '/moin_static162' | |||
... | |||
</pre> | |||
url_prefix_static најдобро да се остави коментирано (ако не, мора да одговара со Alias директивата во Apache). | |||
Постојат две важни можности за хостирање на апликации со mod_wsgi. Првата е вграден (embedded) режим, во кој wsgi апликацијата работи со исти привилегии како Apache процесот (www-data, nobody или друго). Втората е daemon режим | Постојат две важни можности за хостирање на апликации со mod_wsgi. Првата е вграден (embedded) режим, во кој wsgi апликацијата работи со исти привилегии како Apache процесот (www-data, nobody или друго). Втората е daemon режим | ||
Ред 119: | Ред 152: | ||
== Надградба == | == Надградба == | ||
Кога би требало да го надградиме MoinMoin софтверот, прво треба да се | Кога би требало да го надградиме MoinMoin софтверот, прво треба да се прочитаат [http://freshmeat.net/redir/moin/6595/url_changelog/CHANGES забелешките] за новата верзија. Претежно процедурата е дека освен /srv/moin/my-wiki/data и config датотеките, сѐ друго треба да се пребрише со нови верзии (MoinMoin, htdocs, underlay). Во source дрвото на moin има и алатка за евентуална миграција на data директориумот. | ||
== Appendix == | |||
=== CGI === | |||
Некој може да сака да го користи MoinMoin преку CGI начинот на повикување. Тоа не е препорачано, но во некои случаи нема избор, а и згодно е дека не мора да се инсталираат модули за Apache, или пак доколку не користите Apache воопшто. Сѐ од горното е исто, само од source директориумот на MoinMoin копираме: | |||
cp wiki/server/moin.cgi /srv/moin/my-wiki/ | |||
И во него подесуваме (друго не треба): | |||
sys.path.insert(0, '/srv/moin') | |||
и во Apache конфигурацијата наместо: | |||
WSGI*бла*бла* | |||
WSGIScriptAlias / /srv/moin/my-wiki/moin.wsgi | |||
треба да стои | |||
ScriptAlias / /srv/moin/my-wiki/moin.cgi/ | |||
Додатно треба да се средат привилегиите како за embedded режимот на wsgi. | |||
=== Wiki фарма === | |||
Слично на било кое решение од горе, но наместо wikiconfig.py, го копираме farmconfig.py. За секое wiki потоа се креира посебен data_dir и config датотека за секое wiki. Во farmconfig.py се подесува кое url за кое wiki одговара. | |||
== Други информации == | |||
Македонски превод на МоинМоин: http://master.moinmo.in/MoinI18n/mk | |||
[[Категорија:Упатства]] |
Последна преработка од 17:38, 29 јануари 2011
Упатство за инсталација на MoinMoin со mod_wsgi (по мое)
Целта на ова упатство е целосно инсталиран и функционален MoinMoin wiki софтвер во mod_wsgi околина, во Linux.
MoinMoin е wiki софтвер напишан во Python. Главната разлика со на пр. MediaWiki е што MediaWiki е претежно ориентиран кон јавни wiki-ја, додека MoinMoin овозможува поголема контрола, посебно преку флексибилниот ACL систем. Исто така згодно е што може да се проширува со богата палета на Python код. Исто така има можност за подобро организирање на страните, во хиерархија и категории и може да користи повеќе markup јазици за содржината. MoinMoin не користи база на податоци и си има сопствен full-text search. Некои сајтови кои користат MoinMoin се Ubuntu, Fedora, Debian и други.
mod_wsgi е модул за Apache кој го вклучува Python интепретерот директно во Apache web серверот и овозможува едноставно сервирање на WSGI апликации. mod_wsgi е напишан како одговор на mod_python модулот кој со годините стана прекомплициран и напластен од проблеми за кои нема лесно решение. Ако прашањето е Python+Apache, одговорот е mod_wsgi.
Оваа комбинација сметам дека е најдобра варијанта од сите за хостирање на MoinMoin wiki, па и за wiki софтвер воопшто.
За упатствово се користени последните верзии на MoinMoin (1.6.2) и mod_wsgi (2.0) кои беа достапни во времето на пишување. Упатството е тестирано на Убунту-сервер JEOS (не за друго, истовремено го тестирав и него).
Пред да почнеме
Претпоставката е дека имате основни познавања од Apache2, каде му се конфигурациските датотеки, како се додава виртуелен host, како се рестартира и сл. Исто така познавање и снаоѓање со shell алатки многу ќе ви помогне. Конечно за еден дел од упатството ќе треба да знаете како кој user работи Apache-то - ова е различно на разни дистрибуции (www-data на Debian/Ubuntu, nobody на ArchLinux).
Поглед врз големата слика (the 10,000 feet view)
TODO
Инсталација на mod_wsgi
Шансите се дека mod_wsgi mod_wsgi го имате како пакет во вашата Linux дистрибуција. Ако не, инсталацијата е прилично едноставна. Познатата процедура:
tar xf mod_wsgi-2.0.tar.gz cd mod_wsgi-2.0 ./configure make sudo make install
ќе работи секогаш и секаде. На крајот треба да се добие една единствена датотека во /usr/lib/apache/ (или /usr/lib/apache2/ или /usr/lib/httpd/ или сл. зависно од дистрибуцијата) 'mod_wsgi.so' (пакет за Ubuntu 8.04).
Инсталација на MoinMoin
Стандардната инсталација на MoinMoin (python setup.py install) моментално нема опција да ги инсталира датотеките по моја желба, но затоа едноставно копирање врши работа.
tar xf moin-1.6.2.tar.gz cd moin-1.6.2/ mkdir /srv/moin cp -r MoinMoin/ /srv/moin/ cp -r wiki/htdocs/ /srv/moin/ python -m compileall /srv/moin/MoinMoin/
Креирање на wiki инстанца
Откако е поставена онсновната инфраструктура, продолжуваме со креирање на wiki инстанца. Wiki инстанци може да имаме повеќе секоја со посебен изглед, посебни преференции и сл. Првото wiki нека се вика my-wiki. Сеуште во директориумот со отпакуваниот source на moin (moin-1.6.2/) ги извршуваме следниве команди:
mkdir /srv/moin/my-wiki cp -r wiki/data/ wiki/underlay/ /srv/moin/my-wiki/ cp wiki/config/wikiconfig.py wiki/server/moin.wsgi /srv/moin/my-wiki/
Содржината на /srv/moin/my-wiki/moin.wsgi треба да биде следнава (се повеќе може да се брише):
# -*- coding: utf-8 -*- import sys sys.path.insert(0, '/srv/moin/my-wiki') from MoinMoin.server.server_wsgi import WsgiConfig, moinmoinApp class Config(WsgiConfig): logPath = '/srv/moin/my-wiki/moin.log' # adapt this to your needs! #import logging #loglevel_file = logging.INFO # adapt if you don't like the default config = Config() # MUST create an instance to init logging! application = moinmoinApp
Во wikiconfig.py се подесуваат сите параметри на MoinMoin инстанцата. Нема да ги објаснувам деталите бидејќи има коментари во самата датотека, но најважно е да се подесат абсолутни патеки до data и underlay директориумите. Еве пример од wikiconfig.py (прикажан е само дел):
# -*- coding: utf-8 -*- ... class Config(DefaultConfig): sitename = u'Moe Вики' ... data_dir = '/srv/moin/my-wiki/data/' ... data_underlay_dir = '/srv/moin/my-wiki/underlay/' ... #url_prefix_static = '/moin_static162' ...
url_prefix_static најдобро да се остави коментирано (ако не, мора да одговара со Alias директивата во Apache).
Постојат две важни можности за хостирање на апликации со mod_wsgi. Првата е вграден (embedded) режим, во кој wsgi апликацијата работи со исти привилегии како Apache процесот (www-data, nobody или друго). Втората е daemon режим во кој секоја wsgi апликација си работи со посебни привилегии т.е. како посебен корисник.
Вграден режим
Во овој режим, wiki инстанцата ја доделуваме на корисникот „www-data“ за да може apache процесот да запишува во датотеките:
chown www-data -R /srv/moin/my-wiki/
Конфигурацијата за виртуелниот Apache домаќин:
WSGIPythonPath /srv/moin <VirtualHost *> ServerName wiki DocumentRoot /srv/moin/htdocs/ Alias /moin_static162/ /srv/moin/htdocs/ <Directory "/srv/moin/htdocs/"> Options FollowSymLinks Order allow,deny Allow from all </Directory> WSGIScriptAlias / /srv/moin/my-wiki/moin.wsgi ErrorLog /var/log/apache2/wiki-error.log CustomLog /var/log/apache2/wiki-access.log combined LogLevel warn </VirtualHost>
Ова е помалку препорачан режим, кој има смисла единствено ако MoinMoin е единствената апликација на серверот.
Daemon режим
Овој режим е посигурен, бидејќи апликацијата си работи како посебен корисник. Во случај да имаме повеќе апликации на истиот сервер, тие апликации нема да можат да се мешаат во работата на другите. За таа цел прво ќе креираме нов корисник, па потоа на тој корисник ќе му ги доделиме датотеките од wiki инстанцата.
adduser --no-create-home --disabled-password --disabled-login \ --gecos "" --home /srv/moin/my-wiki/ --ingroup nogroup my-wiki chown my-wiki -R /srv/moin/my-wiki/
Конфигурацијата за виртуелниот Apache домаќин:
<VirtualHost *> ServerName wiki DocumentRoot /srv/moin/htdocs/ Alias /moin_static162/ /srv/moin/htdocs/ <Directory "/srv/moin/htdocs/"> Options FollowSymLinks Order allow,deny Allow from all </Directory> WSGIDaemonProcess my-wiki user=my-wiki home=/srv/moin/my-wiki python-path=/srv/moin WSGIProcessGroup my-wiki WSGIScriptAlias / /srv/moin/my-wiki/moin.wsgi ErrorLog /var/log/apache2/wiki-error.log CustomLog /var/log/apache2/wiki-access.log combined LogLevel warn </VirtualHost>
Надградба
Кога би требало да го надградиме MoinMoin софтверот, прво треба да се прочитаат забелешките за новата верзија. Претежно процедурата е дека освен /srv/moin/my-wiki/data и config датотеките, сѐ друго треба да се пребрише со нови верзии (MoinMoin, htdocs, underlay). Во source дрвото на moin има и алатка за евентуална миграција на data директориумот.
Appendix
CGI
Некој може да сака да го користи MoinMoin преку CGI начинот на повикување. Тоа не е препорачано, но во некои случаи нема избор, а и згодно е дека не мора да се инсталираат модули за Apache, или пак доколку не користите Apache воопшто. Сѐ од горното е исто, само од source директориумот на MoinMoin копираме:
cp wiki/server/moin.cgi /srv/moin/my-wiki/
И во него подесуваме (друго не треба):
sys.path.insert(0, '/srv/moin')
и во Apache конфигурацијата наместо:
WSGI*бла*бла* WSGIScriptAlias / /srv/moin/my-wiki/moin.wsgi
треба да стои
ScriptAlias / /srv/moin/my-wiki/moin.cgi/
Додатно треба да се средат привилегиите како за embedded режимот на wsgi.
Wiki фарма
Слично на било кое решение од горе, но наместо wikiconfig.py, го копираме farmconfig.py. За секое wiki потоа се креира посебен data_dir и config датотека за секое wiki. Во farmconfig.py се подесува кое url за кое wiki одговара.
Други информации
Македонски превод на МоинМоин: http://master.moinmo.in/MoinI18n/mk