mod_wsgi com o Apache ignorando o caminho do python

2

Estou tentando executar o mozilla-firefox-sync-server com apache 2.4.17-3 no meu servidor Arch Linux, seguindo este guia . Aqui está uma parte do meu arquivo /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>

Quando eu curl ffsync.example.com , recebo um erro 500. No log, parece que está sendo executado com o Python 3.5 ( ImportError: No module named 'ConfigParser' ).

De fato, se eu substituir syncserver.wsgi pelo seguinte código de exemplo da página do ArchWiki em mod_wsgi :

#-*- 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

Eu recebo um código de status 200 com 3.5.0 (default, Sep 20 2015, 11:28:25) [GCC 5.2.0] .

Quando eu uso o pacote mod_wsgi2 , tudo funciona corretamente, mas eu preciso usar mod_wsgi porque há também um aplicativo WSGI do Python 3 sendo executado com o Apache que não pode ser executado com mod_wsgi2 . A página do ArchWiki no mod_wsgi afirma que mod_wsgi deve funcionar com o Python 2 e 3.

O que torna o argumento python-path na diretiva WSGIDaemonProcess ignorado?

Atualização: Tendo uma versão recente de mod_wsgi (4.4.21-1), eu também tentei usar python-home , assim:

WSGIDaemonProcess ffsyncs user=ffsync group=ffsync processes=2 threads=25 python-home=/opt/mozilla-firefox-sync-server/local/

Desta vez, recebo um erro 504 e esta mensagem no registro de erros (original ou modificado syncserver.wsgi )

Timeout when reading response headers from daemon process 'ffsyncs': /opt/mozilla-firefox-sync-server/syncserver.wsgi
    
por GeoffreyFrogeye 22.11.2015 / 13:44

1 resposta

0

Eu tive o mesmo problema Timeout when reading response headers from daemon process . O arquivo de log principal do Apache (não aquele para aquele VirtualHost) mostrou este erro:

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.

O diretório inicial de ffsync não existia. Alterá-lo para /opt/mozilla-firefox-sync-server/ resolveu o problema para mim. Talvez te ajude também!

    
por 07.12.2018 / 21:47