配置Apache


这部分是可选的内容,仅适用于想使用第三方Web服务器做Evennia前端的高级用户。如果没有确切理由使用它,你大可不必为此而麻烦,对大多数用户来说,内置的 Twisted web服务器已经够用了。默认服务器不需要任何额外的配置,一开始就能用。在第三方服务器上,浏览器web客户端不能保证可用(至少在没有专门设置过的情况下)。

你可以用 apache2 和 mod_wsgi 运行Evennia的web前端。而且,估计代码库应该也可以和类似的流行web服务器,如nginx/lighttpd + gunicorn、Tornado、uwsgi等配合工作。

请注意,下面的Apache指令可能有些过时了,如果它不能正常工作,或者你使用其它的服务器与Evennia配合工作,请让告知我们。


设置 mod_wsgi


安装 mod_wsgi
mod_wsgi可以为Python项目提供优秀、安全、高效的服务。代码很容易重新加载,Python模块以你所选用户的身份来执行(带来很大的安全优势),而且mod_wsgi在大多数的发行版本中都很容易安装。

为了节省篇幅,本文建议你去参考mod_wsgi的安装说明页面,它们的安装说明写得很好。那些使用Debian或Ubuntu的用户可以用以下命令安装全部内容:
sudo aptitude install libapache2-mod-wsgi
这会安装Apache2(如果没有安装过)、mod_wsgi,并加载模块。在Fedora或CentOS上,你需要使用yum,而且你需要搜索类似名字的包。在Windows上,你需要下载并安装Apache2和mod_wsgi的可执行文件。

复制和修改VHOST
安装的mod_wsgi后,将 evennia/game/web/utils/evennia_wsgi_apache.conf 文件复制到你Apache2的 vhosts/sites 文件夹。在Debian/Ubuntu系统中是 /etc/apache2/sites-enabled/ 。复制过去之后你可以在那里修改它们。

阅读注释,并更改路径指向你安装路径中的适当位置。

重新启动/重新加载 Apache
然后,你需要重新加载或重新启动apache2。在Debian/Ubuntu中可以这样做:
sudo /etc/init.d/apache2 restart 或 sudo /etc/init.d/apache2 reload

享受成果
运气好的话,你已经可以让浏览器指向你在vhost中设置的域名或子域名,并且看到漂亮的Evennia默认网页了。如果没有,请阅读内容丰富的错误讯息,并着手从那里开始工作。相关问题可到我们的Evennia社区网站询问。

重新加载代码的注意事项
如果你的 mod_wsgi 被设成在守护进程模式下运行(如Debian和Ubuntu上的默认情况),你需要对 evennia/game/web/utils/apache_wsgi.conf 文件使用 touch 命令,以让 mod_wsgi 重新加载。当 mod_wsgi 看到该文件的修改时间发生改变,会强制重新加载代码。在重新加载之前,对代码所做的任何修改都不会影响到正在运行的网站实例。

如果你没有在守护进程模式下运行或者你想要强制执行,只需重新启动或重新加载apache2就可以加载你的更改了。

进一步的说明提示:
如果你收到Apache给出的奇怪的权限被拒绝的错误(而且通常不提供信息),请确认你的evennia目录位于Web服务器实际可访问的地方。例如,某些Linux发行版默认会严格限制对用户 /home 目录的访问。

有用户评论说,他们需要在Apache配置文件中添加以下内容才能正常工作。这没有得到验证,但如果真遇到麻烦了,可以试一试。
<Directory "/home/<yourname>/evennia/game/web">
    Options +ExecCGI
    Allow from all
</Directory>


(原文:https://github.com/evennia/evennia/wiki/Apache Config    翻译:卢铱俊)