2012-08-29 16 views
16

Después de fallar varias veces en mi búsqueda para que mi aplicación de matraz se ejecute en Apache usando mod_wsgi decidí intentar ejecutar hello world example. Aquí es lo que tengo -Hola mundo en mod_wsgi

estructura de directorios (he cambiado el valor por defecto de Apache /var/www a ~/public_html)

- public_html  
    - wsgi-scripts 
     - test_wsgi.wsgi 
    - test_wsgi 
     - test_wsgi.wsgi 

archivo test_wsgi.wsgi

def application(environ, start_response): 
    status = '200 OK' 
    output = 'Hello World!' 

    response_headers = [('Content-type', 'text/plain'), 
         ('Content-Length', str(len(output)))] 

    start_response(status, response_headers) 

    return [output] 

de archivos de configuración de host virtual (llamado testwsgi) - Este reside en /etc/apache2/sites-enabled/

<VirtualHost *:80> 
    DocumentRoot ~/public_html/test_wsgi 

    <Directory ~/public_html/test_wsgi> 
     Order allow,deny 
     Allow from all 
    </Directory> 

    WSGIScriptAlias /wsgi ~/public_html/wsgi-scripts/test_wsgi.wsgi 

    <Directory ~/public_html/wsgi-scripts> 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

Cuando intento ir al localhost/wsgi en el navegador, aparece el error 404 No encontrado. ¿Qué estoy haciendo mal? Esta es la primera vez que intento implementar una aplicación en un servidor de producción. Hasta ahora tomé la manera fácil de usar Google App Engine. No puedo instalar mi aplicación de matraz hasta que esté en funcionamiento. ¡Muchas gracias!

Respuesta

12

Debe usar una ruta absoluta, es decir, no use ~. Esto funciona muy bien para mí ...

[[email protected] public_html]$ sudo cat /etc/apache2/sites-available/wsgi_test 
<VirtualHost *:80> 
    ServerName wsgihost 
    DocumentRoot /home/mpenning/public_html 
    WSGIScriptAlias//home/mpenning/public_html/test.wsgi 
</VirtualHost> 
[[email protected] public_html]$ 

Primera puedo tener un nombre de host en /etc/hosts, por lo que podría asegurar que puedo mux en el nombre de host en la consulta ... Apache

[[email protected] public_html]$ grep wsgihost /etc/hosts 
127.0.1.1  tsunami.foo.net tsunami wsgihost 
[[email protected] public_html]$ 

Restart , y emita un wget ...

[[email protected] public_html]$ wget http://wsgihost/ 
--2012-08-29 05:50:26-- http://wsgihost/ 
Resolving wsgihost... 127.0.1.1 
Connecting to wsgihost|127.0.1.1|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 12 [text/plain] 
Saving to: âindex.html.3â 

100%[======================================>] 12   --.-K/s in 0s 

2012-08-29 05:50:26 (1.48 MB/s) - âindex.html.3â 

[[email protected] public_html]$ cat index.html 
Hello World![[email protected] public_html]$ # <------ 
Cuestiones relacionadas