脚本标题wsgi过早结束,在xampp上有烧瓶

时间:2012-12-19 23:19:27

标签: apache xampp flask mod-wsgi wsgi

我正在尝试在运行xampp的apache服务器上运行带有mod_wsgi的烧瓶应用程序。 我已经尝试阅读已经问过的所有问题并通过维基进行了wsgi,但我似乎仍然无法找到为什么我得到这个错误。 我使用的是python 2.6.6的debian 6 我的httpd.conf:

WSGIDaemonProcess debug_tool user=spyglass group=root threads=5
WSGIScriptAlias /debug_tool /opt/lampp/htdocs/spyglass_v2/debug_tool/debug_tool.wsgi
<Directory /opt/lampp/htdocs/spyglass_v2/debug_tool>
  WSGIProcessGroup debug_tool
  WSGIApplicationGroup %{GLOBAL}
  Order deny,allow
  Allow from all
</Directory>

我的debug_tool.wsgi:

import sys
sys.path.insert(0,"/opt/lampp/htdocs/spyglass_v2/debug_tool/")
from debug_tool import app as application

我的debug_tool文件夹如下所示:

ls -rtl
total 32
drwxr-xr-x 2 root     root 4096 Dec 18 19:36 uploads
drwxr-xr-x 2 root     root 4096 Dec 18 19:36 Testing_Paramerters
drwxr-xr-x 2 root     root 4096 Dec 18 19:36 templates
-rw-r--r-- 1 root     root 4688 Dec 19 14:42 debug_tool.py
-rw-r--r-- 1 spyglass root 3859 Dec 19 14:43 debug_tool.pyc
-rw-r--r-- 1 spyglass root  118 Dec 19 15:17 debug_tool.wsgi

我的deubg_tool.py看起来像这样:

import os
import re
from flask import Flask, request, redirect, url_for, render_template

app = Flask(__name__)
app.debug = True

@app.route('/',methods=['GET'])
def hello_world():

return 'hello world'

你知道可能出现什么问题吗?

更新

当我尝试进口烧瓶时,我明白了。这意味着什么?

错误日志:

[Thu Dec 20 12:09:49 2012] [错误] [client 172.20.31.135]脚本标题的提前结束:debug_tool.wsgi [Thu Dec 20 12:09:49 2012] [notice] child pid 20206退出信号分段故障(11)

python脚本在实际文件中正确缩进。它可以导入re和os罚款,但是一旦我尝试导入烧瓶,我就会收到该错误

我查看了我的httpd.conf文件,我正在加载mod_php5。 可以同时运行吗?我去了 http://code.google.com/p/modwsgi/wiki/ConfigurationGuidelines#The_Apache_Alias_Directive 但无法弄清楚如何运行这两个模块。

我的总体目标是使用mod_wsgi将此工具添加到运行mod_php5的预先存在的服务器上。感谢

1 个答案:

答案 0 :(得分:0)

根据我的经验,由于Exception,脚本标题的过早结束几乎总是堆栈跟踪。

由于你还没有足够大的项目来进行日志记录,我建议简单地将所有内容包装在一起 - 除了打印到stderr


try:
  YOUR SCRIPT CONTENTS HERE
except Exception, ex:        
  import sys

  from traceback import format_list, extract_tb

  (extype, value, trace) = sys.exc_info()

  print >> sys.stderr, "%s:%s\n%s" % (extype, value, ''.join(format_list(extract_tb(trace))))

然后检查apache日志中的输出,可能是

/var/log/httpd/error_log