Ошибка сегментации mod-wsgi под debian / apache2 - PullRequest
3 голосов
/ 19 ноября 2010

Я пытаюсь запустить mod-wsgi под Apache2, стараясь использовать его с Django.

Сейчас я просто запускаю базовое приложение и получаю ошибку сегментации. Буду признателен за любые предложения о том, как отследить ошибку, я застрял.

Это под 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>

И когда я пытаюсь просмотреть URL, я вижу это в журнале ошибок 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

Что, кажется, позволяет мне попробовать базовое приложение.

Спасибо за любые предложения.

Изменить, чтобы добавить, вот обратный след:

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 ?? ()

1 Ответ

2 голосов
/ 19 ноября 2010

Прочитайте документацию mod_wsgi, чтобы найти, где обсуждаются сбои.Начните с:

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


ОБНОВЛЕНИЕ 1

Генерация трассировки стека, как указано в комментарии, задокументирована в:

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...