Como fazer o apache executar scripts python usando MOD_WSGI ou MOD_PYTHON no RHEL6?

3

Estou tentando fazer com que o apache execute scripts python. Eu tenho o MOD_WSGI, Apache, Python instalado no RHEL6. Eu até editei o arquivo httpd.conf para incluir essas linhas.

<Directory /var/www/>
  Options Indexes FollowSymLinks MultiViews ExecCGI

  AddHandler cgi-script .cgi
  AddHandler wsgi-script .wsgi

  AllowOverride None
  Order allow,deny
  allow from all
</Directory>

Eu reiniciei o servidor apache também. Mas quando eu tento executar os scripts python, é apenas impresso como texto simples no navegador. Não é nada executado. Por favor, alguém ajude.

    
por HOT 17.06.2011 / 14:06

2 respostas

4

Veja se o módulo foi carregado corretamente emitindo apache2ctl -t -D DUMP_MODULES ou apachectl -t -D DUMP_MODULES . Se não foi, edite seu httpd.conf ou um arquivo incluído para incluir o seguinte (substitua lib por lib64 , se necessário):

LoadModule wsgi_module /usr/lib/httpd/modules/mod_wsgi.so

Observe que você não pode executar nenhum script python com WSGI - ele precisa suportar uma interface com o manipulador WSGI, se bem me lembro. Se você quiser executar qualquer script python, talvez você deva usar CGI simples, que é lento (não use em produção se tiver mais usuários do que você), mas fácil. Se os seus scripts estão em cgi-bin e eles têm o direito shebang no topo, eles devem simplesmente funcionar.

Se você quiser usar o mod_python para que o Apache execute scripts python regulares, primeiro certifique-se de estar carregando o módulo:

  LoadModule python_module modules/mod_python.so

Em seguida, adicione isso à sua configuração, por exemplo, dentro de um bloco do Diretório, removendo suas outras alterações primeiro:

  AddHandler mod_python .py
  PythonHandler mod_python.publisher
    
por 17.06.2011 / 14:19
0

Tanto o mod_python quanto o mod_wsgi requerem código especial para trabalhar com os respectivos manipuladores. Se seu objetivo é simplesmente executar scripts python simples, use cgi. No Redhat, o local padrão é /var/www/cgi-bin/ e já está mapeado para o caminho /cgi-bin/ no apache.

    
por 17.06.2011 / 16:54