Eu encontrei o mesmo problema hoje ("64bit Amazon Linux 2017.09 v2.6.0 executando Python 3.6", erros mod_wsgi).
Eu tenho uma solução alternativa, embora não tenha certeza se é uma solução adequada ou mais direta.
Em suma
Instale o último mod_wsgi
.
Explicação mais longa ...
Verifique se funciona manualmente
Primeiro, fiz o seguinte manualmente para verificar se funcionava e, em seguida, criei o script para que ele não fosse destruído em uma implantação posterior.
A instalação de mod_wsgi
precisará de apxs
, então acesse a instância e encontre os pacotes:
eb ssh
yum provides apxs
No meu caso, havia 3. O mais antigo funcionava no console do ssh, então adicionei a .ebextensions/01_packages.config
:
packages:
yum:
...
httpd24-devel-2.4.27-3.75.amzn1.x86_64: []
Então, no ssh, eu segui essa sequência para testar a versão criada manualmente od mod_wsgi
(não consegui fazer com que nenhum pacote yum
funcionasse - embora provavelmente possa ser feito).
sudo -s # become root
cd /tmp
wget -q "https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz"
tar -xzf '4.4.21.tar.gz'
cd ./mod_wsgi-4.4.21
./configure --with-python=/usr/bin/python3.6
make
make install
Assumindo que tudo está bem até agora, reinicie o Apache:
service httpd restart
Em seguida, procure em var/log/httpd/error_log
e esperamos que você veja:
... [pid 2088] AH00163: Apache/2.4.27 (Amazon) mod_wsgi/4.4.21 Python/3.6.2 configured -- resuming normal operations
Eu recarreguei a página do aplicativo Python e ela está funcionando (bem, ela teve um erro diferente, mas mod_wsgi
está funcionando).
Agora, para tornar essa parte da implantação.
Scripting
Após algumas iterações, resolvi isso no arquivo .ebextensions/...
:
packages:
yum:
git: []
gcc-c++: []
httpd24-devel-2.4.27-3.75.amzn1.x86_64: []
files:
"/tmp/update-wsgi.sh" :
mode: "000755"
owner: root
group: root
content: |
# update mod_wsgi
cd /tmp
wget -q "https://github.com/GrahamDumpleton/mod_wsgi/archive/4.4.21.tar.gz" && \
tar -xzf '4.4.21.tar.gz' && \
cd ./mod_wsgi-4.4.21 && \
sudo ./configure --with-python=/usr/bin/python3.6 && \
sudo make && \
sudo make install && \
sudo service httpd restart
commands:
mod_wsgi_update:
command: /tmp/update-wsgi.sh
cwd: /tmp
Algumas notas:
- a dependência
gcc
é necessária para quemod_wsgi
crie - a
httpd24-devel
de dependência é para a ferramentaapsx