Esse problema me torturou por dias. Estou usando Apache, WSGI e Django no meu Raspberry Pi. O sistema operacional é Raspbian.
Está tudo bem, exceto este erro do Apache.
[error] [client 127.0.0.1] Target WSGI script not found or unable to stat: /home/pi/EZ_Green/apache/ems_gateway_django.wsgi
Meu arquivo de configuração é assim, bem simples
WSGIDaemonProcess ems.ezgreenbuildings.com processes=1 maximum-requests=100 threads=10
WSGIScriptAlias / /home/pi/EZ_Green/apache/ems_gateway_django.wsgi
O caminho do arquivo é o caminho completo, com certeza. Então o arquivo existe. Então pensei que o processo do servidor Apache não tinha permissão para acessar o arquivo, então mudei o modo do arquivo wsgi para 777. Mas ele ainda relata o mesmo erro.
Pesquisei por um tempo e tentei vários métodos.
- mova o arquivo wsgi para outro foler, diga '/var/www', mas ele ainda não consegue encontrá-lo.
- tente reinstalar o apache, não funciona.
- remover barra final
O estranho é que o Apache está funcionando bem se eu remover o arquivo de configuração wsgi. E o próprio Django está funcionando bem se eu executar o servidor de teste fornecido pelo Django.
Se alguém puder ajudar, ficarei muito feliz. Obrigado!
Responder1
Você tem extensões SELinux habilitadas, impedindo que o Apache acesse os diretórios onde os arquivos existem?
As permissões no diretório inicial permitirão o acesso do Apache? Não é suficiente que apenas o arquivo seja legível, todos os diretórios até ele também devem estar acessíveis.
Não relacionado, mas você tem uma diretiva WSGIProcessGroup para corresponder a WSGIDaemonProcess para que as solicitações sejam realmente delegadas para execução no processo daemon?
Finalmente, você pode deixar 'processes=1' como padrão para um único processo e definir 'processos' para qualquer número tem outras implicações porque sinalizará no ambiente WSGI que é uma configuração de vários processos.