Como você configurar scripts em Python para trabalhar em Apache 2.0?

votos
17

Tentei seguir um par de tutoriais pesquisei-se sobre a criação de mod_python, mas não o tempo todo. Você tem uma boa, passo a passo, howto rock-solid?

Minha caixa de dev é OS X, a produção - Centos.

Publicado 07/08/2008 em 19:24
fonte usuário
Em outras línguas...                            


4 respostas

votos
12

Existem duas principais formas de executar Python no Apache. O mais simples seria usar CGI e escrever scripts Python normais, enquanto o segundo está usando um framework web como Django ou Pylons.

Usando CGI é simples. Verifique se o seu arquivo de configuração do Apache tem um cgi-bin configurar. Se não, siga a sua documentação ( http://httpd.apache.org/docs/2.0/howto/cgi.html ). Nesse ponto, tudo o que você precisa fazer é colocar seus scripts em Python no diretório cgi-bin e a saída padrão se tornará a resposta HTTP. Consulte a documentação do Python para mais informações ( https://docs.python.org/library/cgi.html ).

Se você quiser usar um framework web você precisa mod_python configuração ou FastCGI. Estes passos são dependentes que quadro que você deseja usar. Django fornece instruções claras sobre como mod_python configuração e Django com Apache ( http://www.djangoproject.com/documentation/modpython/ )

Respondeu 07/08/2008 em 19:40
fonte usuário

votos
8

Sim, mod_python é bastante confuso para configurar. Aqui está como eu fiz isso.

Em httpd.conf:

LoadModule python_module modules/mod_python.so

<Directory "/serverbase/htdocs/myapp">
  AddHandler mod_python .py
  PythonHandler myapp
  PythonDebug On

e no diretório do aplicativo:

$ /serverbase/htdocs/myapp$ ls -l
total 16
-r-xr-xr-x 1 root sys        6484 May 21 15:54 myapp.py

Repita a configuração para cada programa python você deseja ter executado sob mod_python.

Respondeu 07/08/2008 em 20:02
fonte usuário

votos
5

Você está executando Python no UNIX ou Windows?

Uma alternativa para mod_python e FastCGI é mod_wsgi. Você pode encontrar mais em modwsgi

Tenho construído e instalado isso no Solaris sem problemas. Eu já tinha tentado mod_python, mas teve problemas com bibliotecas compartilhadas como parte da compilação. Há bons documentos de instalação disponíveis.

Respondeu 07/08/2008 em 20:05
fonte usuário

votos
0

O problema para mim não estava em Apache configurar, mas na compreensão de como mod_apache realmente usa os arquivos .py. Declarações de nível de módulo (incluindo aqueles em uma if __name__=='__main__'seção) são não executado - Eu assumi que o stdout de executar o script na linha de comando seria o que o servidor teria de saída, mas isso não é assim que funciona.

Em vez disso, eu escrevi uma função de nível de módulo chamado index(), e teve que retornar como uma seqüência do HTML da página. Também é possível ter outras funções de nível de módulo (por exemplo, otherFunction()) que podem ser acedidas como outros segmentos no URI (por exemplo, testScript/otherFunctionpara o arquivo testScript.py.)

Obviamente, isso faz mais sentido do que a minha concepção stdout originais. Melhor capacidade de realmente usar Python como uma linguagem de script e não uma linguagem de marcação enorme.

Respondeu 09/02/2013 em 21:05
fonte usuário

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more