mod_wsgi 및 Apache는 python-path를 무시합니다.

mod_wsgi 및 Apache는 python-path를 무시합니다.

나는 달리려고 노력하고있다.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.com500 오류가 발생합니다. 로그를 보면 ImportError: No module named 'ConfigParser'Python 3.5()에서 실행 중인 것처럼 보입니다 .

실제로 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].

해당 패키지를 사용하면 모든 것이 잘 작동하지만 Apache와 함께 작동하지 않는 Python 3 WSGI 애플리케이션도 있기 때문에 mod_wsgi2이를 사용해야 합니다 .mod_wsgimod_wsgi2mod_wsgi의 ArchWiki 페이지선언은 mod_wsgiPython 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/

이번에는 오류 로그(원본 또는 수정됨 syncserver.wsgi) 에 이 메시지와 함께 504 오류가 표시됩니다.

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/내 문제가 해결되었습니다. 아마도 그것은 당신에게도 도움이 될 것입니다!

관련 정보