通过 mod_wsgi 和 Apache2 与 Firefox Sync Server 通信时出现 500 错误

通过 mod_wsgi 和 Apache2 与 Firefox Sync Server 通信时出现 500 错误

我最近设置了用 Python 编写的新版本的 Firefox Sync Server。我使用了可在此处找到的教程:http://docs.services.mozilla.com/howtos/run-sync.html
完成教程中的步骤后,我相应地配置了 ini 文件以指向我的 MySQL 服务器,安装了 MySql-Python 绑定,并使用内置的 Paster 网络服务器测试了所有内容。

到目前为止没有问题,Paster 运行良好,在我的配置中没有错误,并且我可以在 MySQL 数据库中看到所有表(我认为这确实是所有表 ;))都已创建。

现在我想按照教程中的说明使用 mod_wsgi 在 Apache2 后面运行我的 FF Sync Server。因此,我将我的域的 VirtualHost 配置更改为如下所示:

<VirtualHost ip:80>
  <Directory /home/user/domains/subdomain/public_html/weave>
    Order deny,allow
    Allow from all
   </Directory>

  ServerName subdomain.domain.com
  DocumentRoot /home/user/domains/subdomain/public_html/weave
  WSGIProcessGroup sync
  WSGIDaemonProcess sync user=sync group=sync processes=2 threads=25
  WSGIPassAuthorization On
  WSGIScriptAlias / /home/user/domains/subdomain/public_html/weave/sync.wsgi
  CustomLog /var/log/apache2/example.com-access.log combined
  ErrorLog  /var/log/apache2/example.com-error.log
  Loglevel info
</VirtualHost>

这些文件位于 /home/... 下,因为我使用 virtualmin 和 webmin 进行配置,这些是 html 文件的默认路径。Apache 以拥有此主目录的用户身份运行,因此访问限制应该不是问题(我还尝试设置 chmod 777 以获得完整的主路径)。

我现在的问题是,当 FF Sync 尝试连​​接到服务器时,我只收到 500 个错误代码。正如我在 access_log 文件中看到的,FF Sync 尝试访问 subdomain.domain.com/user/1.0/a,即使我自己在 FF 中尝试访问 subdomain.domain.com,也只会返回 500 个错误。error_log 没有显示任何内容。

有什么建议可以解决什么问题或我可以尝试解决此问题?如果需要更多信息,我也可以发布 sync.wsgi、development.ini 和 sync.conf 的配置文件。

谨致问候,托拜厄斯

答案1

对我来说,这个问题是由以下原因引起的:

当您首次通过 Paster(以 root 身份)启动 weave 时,它​​会创建文件/tmp/sync-error.log ,其中 root 具有 rw 权限,而其他所有人只有 r 权限。当尝试在 mod_wsgi 下运行时,它会尝试以用户“sync”的身份写入此文件,但失败了。

我必须删除它/tmp/sync-error.log才能解决这个问题。

相关内容