o apache falha ao carregar o mod_wsgi: reclama de 'símbolo faltando'

1

Quando executo o apachectl configtest após a instalação do mod_wsgi, recebo a seguinte mensagem de erro:

httpd: Syntax error on line 117 of /private/etc/apache2/httpd.conf: Cannot load /usr/libexec/apache2/mod_wsgi.so into server: dlopen(/usr/libexec/apache2/mod_wsgi.so, 10): Symbol not found: _PyEval_ReleaseLock\n Referenced from: /usr/libexec/apache2/mod_wsgi.so\n Expected in: dynamic lookup\n

Eu compilei o mod_wsgi 3.5 do código-fonte com o python 2.7.8. Apache é a versão 2.2.11. O extenso googling não apresentou problemas semelhantes. É possível que o apache esteja tentando usar a versão do sistema do python em vez daquela que eu instalei (também a que usei para compilar o mod_wsgi).

Alguma ideia do que está causando esse erro e como corrigi-lo?

    
por AndrewE 26.12.2014 / 20:34

1 resposta

0

Se você estiver compilando o Apache e outros módulos ou aplicativos dos quais o Apache dependerá e eles estiverem em um local diferente da configuração do LD no sistema, o script de inicialização provavelmente deverá especificar o LD_LIBRARY_PATH.

Exemplo de um dos meus próprios servidores que possui muitos códigos compilados personalizados:

LD_LIBRARY_PATH="/opt/apache/lib:/opt/zlib/lib:/opt/openssl/lib";export LD_LIBRARY_PATH

Você também pode usar o "ldd" em qualquer um dos módulos para ver quais bibliotecas dinâmicas ele está referenciando. Se os vários sinalizadores ou opções do compilador estiverem faltando nos locais corretos, talvez você tenha uma mistura das cabeças e bibliotecas erradas. Isso pode levar a um comportamento ainda mais confuso porque um aplicativo pode iniciar, mas depois segfault sob certas condições.

    
por 01.01.2015 / 15:36