2011-06-05 40 views
1

我想將我的Python項目鏈接到wsgi文件。我正在使用mod_wsgi如何將Python項目鏈接到WSGI文件?

我想我的Python項目位於/var/www/myProject/start.py

我已經配置了Apache如下:

<VirtualHost *:80> 
    ServerName www.example.me 
    ServerAlias example.me 
    ServerAdmin [email protected] 
    DocumentRoot /usr/local/www/documents 
    LogLevel warn 

    Alias /robots.txt /usr/local/www/documents/robots.txt 
    Alias /favicon.png /usr/local/www/documents/favicon.png 
    Alias /media/ /usr/local/www/documents/media/ 

    <Directory /usr/local/www/documents> 
     Order allow,deny 
     Allow from all 
    </Directory> 

    WSGIScriptAlias//usr/local/www/wsgi-scripts/myApp.wsgi 

    <Directory /usr/local/www/wsgi-scripts> 
     Order allow,deny 
     Allow from all 
    </Directory> 
</VirtualHost> 

到目前爲止,這是我在myApp.wsgi文件:

import web 

urls = (
    '/.*', 'hello', 
) 

class hello: 
    def GET(self): 
     return "Hello, world" 

application = web.application(urls, globals()).wsgifunc() 

我有什麼,爲了做到將我的項目,位於/var/www/myProject/start.py將由myApp.wsgi調用?

回答

1

替換最後一個參數WSGIScriptAlias與'/var/www/myProject/start.py'。

將Directory指令更改爲'/ var/www/myProject'。換句話說,只需將配置設置爲首先指向正確的位置即可。

1

看起來你有一個不同的目錄,你想從wsgi.py中調用start.py。

  • 在這種情況下,您需要以某種方式告訴wsgi.py能夠從其他文件夾導入模塊。 This thread有一些細節。

一個更好的辦法將是有WSGI文件在同一文件夾中start.py,只是導入,並從那裏加載應用程序..是這樣的:

import start 
start.load_application()