2010-11-19 38 views
3

我試圖讓mod-wsgi在Apache2下運行,注意與Django一起使用它。在debian/apache2下的mod-wsgi分段錯誤

現在我剛剛得到一個基本的應用程序運行,並得到分段錯誤。任何建議如何追查錯誤將不勝感激,我卡住了。

這是在Debian/Lenny下的,Apache的版本,mod-wsgi和python 2.5。我已經檢查並且mod-wsgi與/usr/lib/libpython2.5.so.1.0鏈接。我原來安裝了python 2.4,但爲了防止它選擇了錯誤的版本,刪除了它。

腳本文件是:

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] 

我的配置是:

WSGIScriptAlias /myapp /var/www/test/myapp.wsgi 

<Directory /var/www/test/myapp.wsgi> 
Order allow,deny 
Allow from all 
</Directory> 

,當我嘗試查看此網址我看到這個在apache的錯誤日誌。

[Fri Nov 19 09:29:58 2010] [info] mod_wsgi (pid=7190): Create interpreter 'morpheus.gateway.2wire.net|/myapp'. 
[Fri Nov 19 09:29:58 2010] [info] mod_wsgi (pid=7331): Attach interpreter ''. 
[Fri Nov 19 09:29:58 2010] [notice] child pid 7190 exit signal Segmentation fault (11) 

Python似乎工作正常否則,我已經運行我的django應用程序內置服務器下沒有問題。

僅供參考,我開始試圖讓我的Django應用程序運行,但遇到了這個錯誤:

[Fri Nov 19 08:25:08 2010] [info] mod_wsgi (pid=6861): Create interpreter 'morpheus.gateway.2wire.net|/curtana'. 
[Fri Nov 19 08:25:08 2010] [error] [client 192.168.2.70] mod_wsgi (pid=6861): Exception occurred processing WSGI script '/var/data/curtana/curtana.wsgi'. 
[Fri Nov 19 08:25:08 2010] [error] [client 192.168.2.70] File "/var/data/curtana/curtana.wsgi", line 1 
[Fri Nov 19 08:25:08 2010] [error] [client 192.168.2.70]  import sys 
[Fri Nov 19 08:25:08 2010] [error] [client 192.168.2.70]   ^
[Fri Nov 19 08:25:08 2010] [error] [client 192.168.2.70] SyntaxError: invalid syntax 

這似乎讓我去嘗試的基本應用。

感謝您的任何建議。

編輯補充,這裏有一個回溯:通過mod_wsgi的文檔

Program received signal SIGSEGV, Segmentation fault. 
[Switching to Thread 0xb751a700 (LWP 8092)] 
0xb6b3a920 in PyParser_AddToken (ps=0x8543f90, type=8, str=0x845a480 ")", 
    lineno=1, col_offset=39, expected_ret=0xbfffe378) at ../Parser/parser.c:274 
274  ../Parser/parser.c: No such file or directory. 
     in ../Parser/parser.c 
(gdb) backtrace 
#0 0xb6b3a920 in PyParser_AddToken (ps=0x8543f90, type=8, str=0x845a480 ")", 
    lineno=1, col_offset=39, expected_ret=0xbfffe378) at ../Parser/parser.c:274 
#1 0xb6b3ab86 in parsetok (tok=0x8535460, g=<value optimized out>, start=257, 
    err_ret=0xbfffe360, flags=<value optimized out>) 
    at ../Parser/parsetok.c:194 
#2 0xb6bec5eb in PyParser_SimpleParseFileFlags (fp=0x84f3288, 
    filename=0x85301b0 "/var/www/test/myapp.wsgi", start=257, flags=0) 
    at ../Python/pythonrun.c:1404 
#3 0xb6c76877 in ??() from /usr/lib/apache2/modules/mod_wsgi.so 
#4 0x084f3288 in ??() 
#5 0x085301b0 in ??() 
#6 0x00000101 in ??() 
#7 0x00000000 in ??() 

回答

2

閱讀尋找在那裏討論了崩潰。首先:

http://code.google.com/p/modwsgi/wiki/FrequentlyAskedQuestions http://code.google.com/p/modwsgi/wiki/InstallationIssues

有可能與mod_python的或由於Python安裝錯誤的衝突在運行時被人發現。

對於後,執行安裝的檢查中所概述:

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


UPDATE 1

在評論中提及棧跟蹤的生成中記錄

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

+0

謝謝格雷厄姆,你的網頁有助於消除一些原因。我已經刪除了唯一的其他Python實例和mod_python,但是關於使用gdb的文本幫助我獲得了回溯。現在得到了我在哪裏做了雹子,並使用'apt-get --reinstall'重新安裝了python,現在它正在工作。一定會損壞我的安裝。 – Eddie 2010-11-19 20:38:45