Skip to main content
 首页 » 编程设计

python之找不到 WSGI 应用程序之404

2025年05月04日7langtianya

遵循本指南:

http://code.google.com/p/modwsgi/wiki/QuickConfigurationGuide

我无法配置“Hello World”WSGI 应用程序(我没有挂载到 docroot 也没有委托(delegate)给守护进程) 在我的 ubuntu 上。 Python 版本为 2.6.5。 我相信 mod_wsgi 安装正确。 这是我所做的:

  • 创建了一个用户/home/wsgitest(我知道我们不应该这样做,但这只是为了测试)。
  • 将用户添加到 www-data 组,这是运行 apache2 的组:

    groups wsgitest 
    wsgitest : wsgitest www-data 
    

    作为 wsgitest,添加了明确读取文件夹的权限:

    chmod -R g+rx wsgitest 
    
  • 创建了一个与指南内容完全相同的 WSGI 应用程序脚本文件:

    ls -la /home/wsgitest/ 
    (...) 
    -rw-r--r-- 1 wsgitest wsgitest  277 May  7 17:11 application.wsgi 
    
  • 创建了一个应用程序配置文件:

    cat /etc/apache2/sites-available/application.conf  
    <VirtualHost *:80> 
      WSGIScriptAlias /application /home/wsgitest/application.wsgi 
      <Directory /home/wsgitest> 
        Order allow,deny 
        Allow from all 
      </Directory> 
    </VirtualHost> 
    

(文件属于root:root)

  • 启用站点:

    ls -la /etc/apache2/sites-enabled/ 
    (..) 
    lrwxrwxrwx 1 root root   35 May  9 15:29 application.conf -> ../sites-available/application.conf 
    
  • 重新启动 apache2 并转到以下地址:

    <ip-address>/application 
    <ip-address>/application/ 
    

给出 404。

  • 禁用站点并将以下内容放在文件/etc/apache2/apache2.conf 的底部:

    <Directory /home/wsgitest> 
      Order allow,deny 
      Allow from all 
    </Directory>         
    WSGIScriptAlias /application /home/wsgitetst/application.wsgi 
    
  • 重新启动 apache 并尝试再次导航,没有任何变化。

  • 尝试使用 lynx 和本地主机,没有任何变化。

  • 在 apache2 中启用日志记录信息级别。/var/log/apache2 访问日志告诉我请求得到了“404 503”的回答, 这是来自错误日志:

    [Wed May 09 15:39:28 2012] [info] mod_wsgi (pid=27914): Attach interpreter ''. 
    (...)  
    [Wed May 09 15:39:32 2012] [error] [client <ip>] File does not exist: /var/www/application 
    (...) 
    [Wed May 09 15:39:28 2012] [info] mod_wsgi (pid=27914): Cleanup interpreter ''. 
    

“other_vhosts_access.log”为空。

对我来说,请求似乎从未到达 wsgi 应用程序或未以某种方式路由... 谁能帮我找出问题所在?

请您参考如下方法:

在 application.wsgi 中必须是 application 可调用对象(区分大小写)

http://webpython.codepoint.net/wsgi_application_interface