##language:zh #pragma section-numbers off ''' Quickly Install MoinMoin ''' ::-- ZoomQuiet [<>] <> ## 默许导航,请保留 <> Changelog:: * 2010-03 增补 1.9.x 的安装,以及使用 Lifhttpd 带 CGI 发布 * 参考: [[http://master19.moinmo.in/InstallDocs/|InstallDocs - 1.9 Master Wiki]] * [[MoinRunNginxWsgi|发布在nginx + mod_wsgi]] * [[http://www.indexofire.com/blog/?p=605|果果的家 » FreeBSD下用ports安装nginx的uwsgi模块]] * [[http://www.indexofire.com/blog/?p=741|果果的家 » FreeBSD Nginx uWSGI 建立 Django 环境]] * 2006-04 创建 = 理解MoinMoin 运行环境 = [[http://moinmoin.wikiwikiweb.de/MoinMoinWiki|MoinMoin]] 宣称是:""" MoinMoin is an advanced, easy to use and extensible WikiEngine with a large community of users.... """ 高级的,易用的,可扩展的,拥有广大社区用户的 维基引擎! 我们一开始关注的只是 '''易用的''' ! MoinMoin的确作到了这种效果—— 仅仅一个`moin.cgi` 文件就可以发布整个MoinMoin 服务! 可以说,MoinMoin 环境是依托于Python 的强大环境,通过CGI等等通用Web 应用发布形式公开的应用平台。 即,其安排必定是简单易行的!因为一切功能都在Python 环境中,其它无有依赖! == 信息 == [[HelpOnInstalling|安装帮助]] 文档一定要先都看一看,了解可能的问题 不过系统的提示信息一定要注意,可以避免很多误解…………以FreeBSD 中使用ports 的默许安装方式的最后提示信息为例 {{{ ************************************************************ # 提示要进行实例化 Important: You have currently no wiki instance installed. # 给了实例化的命令提示 If you're installing from ports, just run 'make instance' with appriopriate arguments. eg. make MOINTYPE=FCGI MOINDEST=/usr/local/www/wiki instance If you're installing from package, run these commands. ## 详细的进一步运行配置:: # Choose here one script depending on the type of wiki you # want : moin.py (standalone), moin.fcg (FCGI) or moin.cgi. export MOINSCRIPT="moin.cgi" # Defaults should be fine but you may want to modify these. export MOINDIR="/usr/local/share/moin" export MOINDEST="/usr/local/www/wiki" # Set this to your apache user and group. export CGIUSER="www" export CGIGROUP="www" mkdir -p ${MOINDEST}/data mkdir -p ${MOINDEST}/underlay cp -R ${MOINDIR}/data ${MOINDEST} cp -R ${MOINDIR}/underlay ${MOINDEST} chmod -R u+rw,go-ws ${MOINDEST}/data install -m 0555 ${MOINDIR}/config/wikiconfig.py ${MOINDEST} test -z "${MOINSCRIPT}" || \ install -m 0555 ${MOINDIR}/server/${MOINSCRIPT} ${MOINDEST} chown -R ${CGIUSER}:${CGIGROUP} ${MOINDEST} Note: export might not work with your shell, use # setenv VAR 'value' instead ************************************************************ ===> Registering installation for moinmoin-1.5.2 }}} = ZQ的安装体验 = 从MoinMoin 1.2.4 开始,各种版本的MoinMoin 都安装过,除了开始有些困惑,后来理解 了MoinMoin 的安装要点就自在自如了: 1. `url_prefix` 是需要和Apache 等等web 服务器配合的 1. `moin.cgi`等等服务运行文件要和配置文件`wikiconfig.py`在一起 ^当然要是有多维基的发布另有技巧^ == 实际布局 == '''根据理解我就可以自由安排各种目录而不会报错''' 1. 确认MoinMoin 目录: * 默许的在`/usr/local/lib/python2.4/site-packages/MoinMoin` * 当然的为了方便,或是其它原因,可以直接使用链接将MoinMoin 移动到任何地方 * 也为了方便的进行版本切换 1. 维基实例目录: * 所谓实例就是包含`moin.cgi`等等服务运行文件的相关目录 * 我的实例目录中是如下安排的:{{{ +--moin | +--Moin153 从python2.4/site-packages 链接过来的实际MoinMoin | +--Moin135 以前用以链接到python2.4/site-packages 的实际MoinMoin | +--data | +--htdocs 要和Apache 等等配合的样式发布目录 | +--server 实际服务运行文件收集,因为现在MoinMoin 不仅仅只会cgi了 \ \--underlay 1.3.5 版本以后新的系统文章收集目录 }}} * 实际上`/usr/local/share/moin` 会有自动初始化的一个实例,目录结构和我定制的非常象;不过,为了避免升级时自动覆盖掉你原来的运行实例,一般要组织到其它专门目录 == 实际配置 == '''这样一来只要重新设置个别配置文件,新的MoinMoin 就准备好可以运行了''' === CGI 从 Lighttpd === `在1.9.2 安装脚本进行了大修订!` * 参考:[[http://wiki.ubuntu.org.cn/index.php?title=MoinMoin%E5%AE%89%E8%A3%85%E8%AE%BE%E7%BD%AE&variant=zh-hant|MoinMoin安裝設置 - Ubuntu中文]] 在 FreeBSD 中最简单的发布配置:: 1. /usr/local/etc/lighttpd.conf {{{ server.modules = ( ... "mod_cgi", # 唯一依赖 ... server.username = "www" server.groupname = "www" ... # 指定 .cgi 是用 python 运行 static-file.exclude-extensions = ( ".php", ".pl", ".fcgi",".cgi" ) cgi.assign = ( ".cgi" => "/usr/local/bin/python" ) # MoinMoin 环境绑定 alias.url = ("/moin_static192" => "/wiki/dm.wps.cn/htdocs/" ) alias.url += ("/moin" => "/wiki/dm.wps.cn/server/moin.cgi" ) }}} 1. 部署 MoinMoin 实例,手工整理好目录: * 一般直接从 `/usr/local/share/moin/` 复制到你喜欢的目录中就好 * 建议: {{{ path/to/u/维基实例: +-- config # 配置样例目录 +-- data # 维基实体目录 +-- cache # 缓存入口 +-- dict # 搜索字典 |-- intermap.txt # InterWiki 定义文件 +-- pages # 用户文章入口 +-- plugin # 插件入口 `-- user # 用户注册信息 +-- htdocs # 样式和静态文件 +-- server # 运行脚本入口 |-- moin |-- moin.ajp |-- moin.cgi |-- moin.fcgi |-- moin.scgi |-- moin.wsgi |-- moin_wsgi |-- test.wsgi |-- wikiconfig.py # 实例配置文件,从 ../config 复制过来 `-- wikiserverconfig.py `-- underlay # 系统默认文章 }}} 1. 配置实例: `wikiconfig.py` {{{ instance_dir = '/path/2/u/维基实例' .. url_prefix_static = '/moin_static192' # 这就是和Lighttpd 配合的静态文件目录 }}} 1. 启动Lighttpd ,注意: * `Are you nuts ? Don't apply a SUID bit to this binary` 错误一般是 /usr/local/sbin/lighttpd 的owner 和配置中不吻合 * {{{# chown www /usr/local/sbin/lighttpd}}} 就好 * `failed: Permission denied /var/log/lighttpd.access.log` 明确是权限问题了... `然后访问 http://x.x.x/moin/` 就看到了 ;-) {{attachment:2010-03-24-223530_419x240_scrot.png}} * MoinMoin 1.9.2 * `ThemeMarket/Europython` - http://moinmo.in/ThemeMarket/Europython === WSGI 从 Nginx === `在1.8 之后都建议使用 WSGI 模式发布!` ==== Nginx 准备 ==== 根据:[[http://www.indexofire.com/blog/?p=605|果果的家 » FreeBSD下用ports安装nginx的uwsgi模块]] * 修订 `/usr/ports/www/nginx` 相关文件 * 将 uwsgi-0.9.4 编译 入 nginx-0.7.64 {{attachment:2010-03-24-183832_814x601_scrot.png}} ==== 配置发布 ==== * 首先Python 要有 flup 支持,在BSD 中:{{{ $ cd /usr/ports/www/py-flup $ sudo make install clean }}} * 继续探索中... === CGI 在 Apache === 1. Apache的发布配置,以CGI模式:{{{ Options Indexes FollowSymLinks AllowOverride None Order allow,deny Allow from all ... }}} 1. 对应的`wikiconfig.py`配置项:{{{ #/path/to/my/server/wikiconfig.py ... data_dir = '/path/to/my/data/' data_underlay_dir = '/path/to/my/underlay/' url_prefix = '/htdocs' #要和Apache中声明的相同 }}} 齐活!!MoinMoin 已经安装好了! == 运行调试 == '''但是不能说现在可以如意的运行,因为新安装的系统总有这儿那儿的问题,所以简单的协调一下子就成……''' 利用Python 的 trackback 功能!{{{ #cd /path/to/my/server/ #python ./moin.cgi }}} * 看一下子输出,如果是HTML 代码,那未恭喜你!可以重启Apache 发布MoinMoin 了! * 有错误?!读一下子提示,一般无非是几种情况: 1. 权限不足 ^不用讲了,是人都会使用 chmod 命令吧?!-)^ * 另外注意,如果 `moin.cgi` 安装到特殊目录,一定也要相应的进行权限声明,允许CGI 可执行,否则,网络是访问不了的 {{{ Order allow,deny Allow from all }}} 1. 配置文件找不到 ^不是位置不对,就是该死的doc 文件的非常回行符问题^ 1. Python环境找不到 ^看一下子moin.cgi 的头部和你系统环境一致?^ 至此,应该说基本上绝大多数情况下MoinMoin 已经正确完全的安装/升级完毕了! 除了目录的整理,可以说MoinMoin 的安装,配置只有两个文件,几行文字的定制………… = 总结 = '''战略上要轻视MoinMoin 的安装,战术上要重视/小心MoinMoin 的实例目录的安排!其它无它!''' = WinterSu的安装体验 = 最最小白的方法,按部就班吧 适合于1.9.3 安装本地的wiki sudo aptitude update sudo aptitude upgrade sudo aptitude install ssh samba smbclient apache2 libapache2-mod-wsgi tar xvzf moin-1.9.3.tar.gz cd moin-1.9.3/ sudo python setup.py install --force --prefix /usr/local --record=install.log cd /usr/local/share/moin/server cd /usr/local/share/moin sudo cp server/moin.wsgi . sudo cp config/wikiconfig.py . 编辑/etc/apache2/httpd.conf,在结尾处加入: # # MoinMoin WSGI configuration # # you will invoke your moin wiki at the root url, like http://servername/FrontPage: WSGIScriptAlias / /usr/local/share/moin/moin.wsgi # create some wsgi daemons - use user/group same as your data_dir: WSGIDaemonProcess moin user=www-data group=www-data processes=5 threads=10 maximum-requests=1000 umask=0007 # use the daemons we defined above to process requests! WSGIProcessGroup moin 编辑/usr/local/share/moin/moin.wsgi,在注释a2)段落的结尾后加入: sys.path.insert(0, '/usr/local/share/moin') cd /usr/local/share sudo chown -R www-data:www-data moin sudo chmod -R ug+rwX moin sudo chmod -R o-rwx moin sudo /etc/init.d/apache2 restart 修改/usr/local/share/moin/wikiconfig.py中的管理员为需要的值: page_front_page = u"FrontPage" #去掉此选项之前的“#” superuser = [u"WikiAdmin", ] sudo /etc/init.d/apache2 restart 使用WikiAdmin创建账户并登录系统,并在下面页面中安装帮助页面包: http://localhost/LanguageSetup?action=language_setup = 反馈 = 呜呼!使用wikiserver.py的体验总是失败的!所有配置都不生效!1.9.3和1.8.8!呜呼!——WinterSu