在 Ubuntu 服务器上使用 mod_wsgi 在 Apache 下运行 Pootle 服务器

在 Ubuntu 服务器上使用 mod_wsgi 在 Apache 下运行 Pootle 服务器

我已按照此处的说明,使用 django 默认服务器在 localhost 环境中成功安装了 pootle 服务器:http://docs.translatehouse.org/projects/pootle/en/stable-2.8.x/server/installation.html

然后我按照此处的说明成功设置 nginx 作为反向代理服务器: http://docs.translatehouse.org/projects/pootle/en/stable-2.8.x/server/web.html#proxying-with-nginx

然后我按照此处的说明成功地将数据库从 SQLite 迁移到 MySQL:http://docs.translatehouse.org/projects/pootle/en/stable-2.8.x/server/mysql_installation.html#mysql-installation

现在我想采取下一步行动,在 apache 下使用 mod_wsgi 运行 pootle 服务器,这样就不用使用默认的 django 服务器了,因为我已经准备好使用一个功能齐全的生产服务器了。我按照以下说明操作:http://docs.translatehouse.org/projects/pootle/en/stable-2.8.x/server/web.html#apache-with-mod-wsgi

我已成功加载起始页,但尝试登录时遇到问题。我在 Chrome 控制台中收到此错误: vendor.min.ce9c05c2.js:25 POST http://pootle.localhost/var/www/vhosts/pootle/env/lib/python2.7/site-packages/pootle/accounts/login/?next=%2F 402 (Payment Required)

开始页面显示正常http://pootle.localhost因此我很确定资产可以通过 Apache 指令直接加载,没有任何问题:

Alias /assets /var/www/vhosts/pootle/env/lib/python2.7/site-packages/pootle/assets/

似乎 apache 和 wsgi 之间出了问题,因为我认为我不应该看到/var/www/vhosts/pootle/env/lib/python2.7/site-packages/pootle在 POST 的 URL 中?

答案1

好吧,我找到了问题所在。我应该为此而自责。我的 pootle.conf 末尾有以下内容:

# - Include the following settings in your custom Pootle settings:
STATIC_URL = '/assets/'
FORCE_SCRIPT_NAME = '/var/www/vhosts/pootle/env/lib/python2.7/site-packages/pootle/'
POOTLE_ENABLE_API = True

FORCE_SCRIPT_NAME 显然应该是:

FORCE_SCRIPT_NAME = '/'

问题解决了,这是我的愚蠢错误。

相关内容