## Please edit system and help pages ONLY in the moinmaster wiki! For more
## information, please see MoinMaster:MoinPagesEditorGroup.
##master-page:HelpOnInstalling/TroubleShooting
##master-date:2005-09-23 02:53:49
#acl MoinPagesEditorGroup:read,write,delete,revert All:read
#format wiki
#language zh

'''如何处理常见错误'''

= 首先遵循建议 =

Moin为常见使用方法提供了建议. 试着根据建议的默认值创建维基. 这样你的维基会和我们的一样被存储, 而且被命名为`mywiki` ... 但是在你有一个可以工作的维基'''之后''', 你可以改变位置和名字. 默认值的选择是很谨慎的, 大多数人在大多数平台上都可以正常工作, 或者至少有一个好的开始.

 * 首先遵循建议
 * 如无必要，不要改变任何配置.
 * 在你试图自定义维基之前，现在一个正常运行的维基上使用.

= 一次改动一个 =

当你的维基运行时, 根据你的需要去自定义它既可, 但记住每次只改变一个选项. 也许你不能完全理解所有的选项是如何工作的, 如果在同一步中改动了一些东西而出现问题, 你会发现很难解决出现的问题. 

= 检查你的网络服务器是否可以使用Python =

这在["帮助-安装/基本安装"]中也有提及.  使用这个脚本:

{{{
#!/bin/sh
echo Content-Type: text/plain
echo
echo "Your web server is running as:"
id
echo "CGI scripts work"
echo "Now we try to invoke Python interpreters and get their versions:"
python -V 2>&1
python2.3 -V 2>&1
python2.4 -V 2>&1
echo "Finished."
}}}

来检查cgi是否工作. 然后你也会知道哪一个版本的python是可用的. 对于没有根用户权限的用户这非常有用.

= 内置测试 =

安装时, 有一个内置的诊断模式非常有用; 只需在你的维基URL后面添加"`?action=test`":
{{{
lynx --dump http://`hostname`/mywiki?action=test
}}}

如果你看到import error, 但是 

{{{
python -c "import MoinMoin"
}}}

正常, 那可能是缺少文件权限或者网络服务器环境下错误的PYTHONPATH设置.

= 决战Pythons =

你可能遇到的最常见的问题是，当你有一个较老的Python版本安装在"`/usr`"下, 而一个较新的Python发行版安装在"`/usr/local`"下; 这在GNU/Linux发行版中是很典型的情况，他们有时仍然捆绑了较老的Python版本.

在这种情况下, 如果在提示符下键入"`python`", 你一般可以使用较新的Python解释器, 因为"`/usr/local/bin`"在你的`PATH`中. 在网络服务器环境下情况是不同的, 因此你可能不得不改变"`moin.cgi`"的bang path, 就像这样:
{{{
#!/usr/local/bin/python

"""
    MoinMoin - CGI Driver Script
...
"""
}}}

 * Debian stable user might want to look for backport of newer Python, or download and build Python from source.

 * 安装时, 确保使用你希望用以运行moin的python来安装. `python setup.py install` 会使用路径中第一个python来安装, 而这也许不是你希望使用的版本! `/usr/local/bin/python2.4` 会使用指定的python进行安装. 你需要在moin服务器脚本中使用相同的路径.

= 文件权限缺失 =

如果你是根用户, 则安装的文件只能被根用户读取, 但是在维基工作之前它们也必须能够被网络服务器读取. 这包括Python模块和网站本身. 对于data目录, 维基引擎也需要''write''权限.  为了解决这个问题, 应首先找到Python模块的目录所在; 察看`install.log`, 或者运行命令: 

{{{
python -c "import sys; print '%s/lib/python%s/site-packages' % ( sys.prefix, sys.version[:3] )"
}}}

对于下面的这个例子, 我们假设Python模块目录是`/usr/local/lib/python2.3/site-packages`.
使用下面的命令是文件是全局可读的:
{{{
cd /usr/local
chmod -R a+rX lib/python2.3/site-packages/MoinMoin
}}}

= 小心的设置Python变量 =

当重新输入而不是剪切和粘贴操作时，应特别小心. 在`wikiconfig.py`中引用错误会导致失败. 其后的条目也是变量. 还有, 一些功能只有在`wikiconfig.py`或者`farmconfig.py`中开启他们对应的选项后才能正常使用. 

== moin.cgi找到, Moin不运行 ==

如果你不得不将moin代码位置加入系统路径, 请确保指定这个路径是!MoinMoin本身的``上级``, 这样!MoinMoin这个词汇在导入时可以找到.  

== CSS文件不工作 ==

丢失CSS样式是很常见的错误. 你的维基看起来很丑陋, 一点也不像现在这个漂亮的维基. 大多数情况下, 是因为你没有阅读建议而弄错了配置, 或者因为你比我们聪明，而试图自定义这些建议. :-)

解决问题很简单: 确保你的Apache Alias和ScriptAlias'''不'''是一样的. 这个Apache设置永远不能工作:
{{{
Alias /wiki/ "/prefix/share/moin/htdocs/"
ScriptAlias /wiki/ "/var/www/wiki/moin.cgi"
}}}

Alias用于静态文件: css, 图片等等. ScriptAlias用于将moin.cgi从url中隐藏. 你必须使用不同的值! 对于ScriptAlias, 或者Alias, 你可以使用任何值,  但是Alias必须匹配`url_prefix`的设置. 这是一个可以工作的例子(默认设置):
{{{
# Apache config
Alias /wiki/ "/prefix/share/moin/htdocs/"
}}}
{{{
# Wiki config
    url_prefix = '/wiki'
}}}
