mod_wsgi 中的 Hello World [英] Hello World in mod_wsgi

查看:32
本文介绍了mod_wsgi 中的 Hello World的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在使用 mod_wsgi 使我的 Flask 应用程序在 Apache 上运行的过程中反复失败后,我决定尝试运行 hello world 示例.这是我所拥有的 -

After failing repeatedly in my quest to get my flask application to run on Apache using mod_wsgi I decided to try running the hello world example. Here is what I have -

目录结构(我把apache默认的/var/www改成了~/public_html)

Directory Structure (I changed the apache default /var/www to ~/public_html)

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

test_wsgi.wsgi 文件

test_wsgi.wsgi file

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]

VirtualHost 配置文件(称为 testwsgi)-位于 /etc/apache2/sites-enabled/

VirtualHost Configuration file (called testwsgi) - This resides in /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>

当我尝试在浏览器上访问 localhost/wsgi 时,我收到 404 Not Found 错误.我究竟做错了什么?这是我第一次尝试在生产服务器上部署应用程序.到目前为止,我采用了使用 Google App Engine 的简单方法.在它启动并运行之前,我无法继续部署我的烧瓶应用程序.非常感谢!

When I try going to localhost/wsgi on the browser I get a 404 Not Found error. What am I doing wrong? This is the first time I'm trying to deploy an app on a production server. Until now I took the easy way of using Google App Engine. I cant proceed to deploy my flask app until this is up and running. Thanks a lot!

推荐答案

需要使用绝对路径,即不要使用~.这对我来说很好用...

You need to use an absolute path, i.e. don't use ~. This works fine for me...

[mpenning@tsunami 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>
[mpenning@tsunami public_html]$

首先我在 /etc/hosts 中设置了一个主机名,这样我就可以确保我可以在查询中多路复用主机名...

First I set up a hostname in /etc/hosts, so I could ensure that I can mux on the hostname in the query...

[mpenning@tsunami public_html]$ grep wsgihost /etc/hosts
127.0.1.1       tsunami.foo.net  tsunami wsgihost
[mpenning@tsunami public_html]$

重启 apache,并发出 wget...

Restart apache, and issue a wget...

[mpenning@tsunami 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â

[mpenning@tsunami public_html]$ cat index.html
Hello World![mpenning@tsunami public_html]$ #  <------

这篇关于mod_wsgi 中的 Hello World的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆