![通过 mod_wsgi 和 Apache2 与 Firefox Sync Server 通信时出现 500 错误](https://linux22.com/image/1294340/%E9%80%9A%E8%BF%87%20mod_wsgi%20%E5%92%8C%20Apache2%20%E4%B8%8E%20Firefox%20Sync%20Server%20%E9%80%9A%E4%BF%A1%E6%97%B6%E5%87%BA%E7%8E%B0%20500%20%E9%94%99%E8%AF%AF.png)
我最近设置了用 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
才能解决这个问题。