2012-05-09 4 views
1

После этого руководства:WSGI приложение не найдено - 404

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

я не смог настроить «Hello World» WSGI приложение (я не монтировать на DOCROOT и не делегировать демона) на моем сжатии ubuntu. Версия Python - 2.6.5. Я считаю, что mod_wsgi установлен правильно. Вот что я сделал:

  • Создано пользователя/дом/wsgitest (я знаю, что мы не должны делать это, но это только для тестирования).
  • Добавлен пользователь группа WWW-данные, что и 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> 
    

(принадлежит Файл к корневой: корень)

  • Enabled сайт:

    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.

  • Disabled сайт и поставить follwing в нижней части файла /etc/apache2/apache2.conf:

    <Directory /home/wsgitest> 
        Order allow,deny 
        Allow from all 
    </Directory>   
    WSGIScriptAlias /application /home/wsgitetst/application.wsgi 
    
  • Restarted апач и попытался для навигации снова, никаких изменений.

  • Пробовал с рысью и localhost, без изменений.

  • Включен уровень информации о протоколировании в apache2./Вар/Журнал/apache2 журнал доступа говорит мне, что запрос ответил "404 503", И это от error.log:

    [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 или каким-то образом не маршрутизирован ... Может ли кто-нибудь помочь мне определить проблему?

+0

Добавьте синтаксическую ошибку, например, «xxx» в отдельной строке, в конфигурацию Apache и попробуйте перезапустить. См., Если Apache жалуется на синтаксическую ошибку. Это подтвердит чтение файлов. Затем просмотрите http://code.google.com/p/modwsgi/wiki/WhereToGetHelp?tm=6#Conference_Presentations, так как должно было быть сообщение об ошибке Apache, зарегистрированное как причина 404. Примеры приведены в этом представлении. –

+0

Спасибо за помощь. Грэм, который может пригодиться в будущем. – Robse

ответ

0

О нет. Я проверял все 3 или 4 раза, но все же там была опечатка. Как вы можете видеть в объявлении WSGIScriptAlias ​​из apache2.conf edit (wsgitetst). Конфигурация include все еще не работает, но все в порядке.

2

В application.wsgi должны быть приложения вызываемый объект (чувствителен к регистру)

http://webpython.codepoint.net/wsgi_application_interface

+0

Спасибо за ваш ответ. У меня есть следующее в файле /home/wsgitest/application.wsgi: def application (environ, start_response): status = '200 OK' output = 'Hello World!' response_headers = [('Content-Type', 'текст/обычный'), ('Content-Length', ул (LEN (выход)))] start_response (статус, response_headers) возвращение [выход] – Robse