我正在尝试奔跑mozilla-firefox-同步服务器在我的 Arch Linux 服务器上使用 apache 2.4.17-3,如下本指南。这是我的文件的一部分/etc/httpd/conf/extra/httpd-vhosts.conf
。
<Directory /opt/mozilla-firefox-sync-server>
Require all granted
</Directory>
<VirtualHost *:80>
ServerName ffsync.example.com
DocumentRoot /opt/mozilla-firefox-sync-server/
WSGIProcessGroup ffsyncs
WSGIDaemonProcess ffsyncs user=ffsync group=ffsync processes=2 threads=25 python-path=/opt/mozilla-firefox-sync-server/local/lib/python2.7/site-packages/
WSGIPassAuthorization On
WSGIScriptAlias / /opt/mozilla-firefox-sync-server/syncserver.wsgi
CustomLog /var/log/httpd/ffsync_custom combined
ErrorLog /var/log/httpd/ffsync_error
</VirtualHost>
当我 时curl ffsync.example.com
,我收到 500 错误。在日志中,看起来它正在使用 Python 3.5 ( ImportError: No module named 'ConfigParser'
) 运行。
事实上,如果我替换syncserver.wsgi
为以下示例代码mod_wsgi 上的 ArchWiki 页面:
#-*- coding: utf-8 -*-
def wsgi_app(environ, start_response):
import sys
output = sys.version.encode('utf8')
status = '200 OK'
headers = [('Content-type', 'text/plain'),
('Content-Length', str(len(output)))]
start_response(status, headers)
yield output
application = wsgi_app
我收到 200 状态代码3.5.0 (default, Sep 20 2015, 11:28:25) [GCC 5.2.0]
。
当我使用该包时mod_wsgi2
,一切正常,但我需要使用,mod_wsgi
因为还有一个与 Apache 一起运行的 Python 3 WSGI 应用程序无法与mod_wsgi2
.这mod_wsgi 上的 ArchWiki 页面声明mod_wsgi
应该与 Python 2 和 3 一起使用。
是什么导致指令python-path
中的参数WSGIDaemonProcess
被忽略?
更新 :拥有最新版本的mod_wsgi
(4.4.21-1),我也尝试使用python-home
,如下所示:
WSGIDaemonProcess ffsyncs user=ffsync group=ffsync processes=2 threads=25 python-home=/opt/mozilla-firefox-sync-server/local/
这次,我收到 504 错误,错误日志中出现此消息(无论是原始的还是修改后的syncserver.wsgi
)
Timeout when reading response headers from daemon process 'ffsyncs': /opt/mozilla-firefox-sync-server/syncserver.wsgi
答案1
我有同样的Timeout when reading response headers from daemon process
问题。 Apache 的主日志文件(不是该 VirtualHost 的日志文件)显示此错误:
Unable to change working directory to '/home/ffsync'.
Failure to configure the daemon process correctly and process left in unspecified state. Restarting daemon process after delay.
结果发现主目录ffsync
不存在。改变它来/opt/mozilla-firefox-sync-server/
解决我的问题。或许对你也有帮助!