Инструкции Apache mod_wsgi не используются

У меня есть сервер с серверной версией Ubuntu Lucid 10.04.1 LTS, на котором я хочу развернуть приложение Django с использованием Apache + mod_wsgi. На данный момент Apache делает индекс каталога вместо использования моей команды WSGIScriptAlias.

Любые советы, почему будут оценены. Я установил mod_wsgi через aptitude и предположил, что приведенная ниже «конфигурация модуля» загружает его.

/etc/apache2/apache2.conf

#....

# Include module configuration:
Include /etc/apache2/mods-enabled/*.load
Include /etc/apache2/mods-enabled/*.conf

# Include all the user configurations:
Include /etc/apache2/httpd.conf

# Include ports listing
Include /etc/apache2/ports.conf

#....

# Include generic snippets of statements
Include /etc/apache2/conf.d/

# Include the virtual host configurations:
Include /etc/apache2/sites-enabled/

в site-enabled есть два файла, 000-default-backup и мой.

000-резервное копирование по умолчанию

<VirtualHost *:80>
    DocumentRoot /var/www/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
</VirtualHost>

мой

<VirtualHost *:80>
    WSGIDaemonProcess project-production user=me group=me threads=10 python-path=/home/me/virtualenvs/project/lib/python2.6/site-packages

    WSGIScriptAlias /project /home/me/projects/project/releases/current/feedback/apache/feedback.wsgi
 <Directory /home/me/projects/project/releases/current/project/apache>
   WSGIProcessGroup project-production
   Order deny,allow
   Allow from all
</Directory>
</VirtualHost>

Глядя на журнал ошибок, ошибки нет. Итак, я предполагаю, что что-то в 000-default-backup или apach2.conf говорит «обслуживать это как каталог», а команды WSGI никогда не получают возможности запускаться. Пути все правильные.

Apache имеет версию сервера: Apache/2.2.14 (Ubuntu).

ETA: я хочу, чтобы мой сайт работал в подкаталоге, например, foo.com/project. (Я не могу легко создать новый поддомен.) По сути, я хочу, чтобы инструкции VirtualHost для *:80 были разделены на несколько файлов. Это возможно?


person pfctdayelise    schedule 30.08.2010    source источник


Ответы (3)


Хорошо, я получил это работает.

/etc/apache2/apache2.conf

изменять

Include /etc/apache2/sites-enabled/

to

Include /etc/apache2/sites-enabled/000-default-backup

000-резервная копия по умолчанию

внизу перед строкой "</VirtualHost>"

добавлять

Include sites-enabled/*.conf

мой файл

просто удалите строки "<VirtualHost>" и "</VirtualHost>".

person pfctdayelise    schedule 31.08.2010
comment
Плохой способ сделать это. Просто поместить изменения прямо в 000-default-backup было бы проще, чем использовать отдельный файл. То, что вы сделали, просто отложит все на потом, если вам нужно несколько виртуальных хостов. - person Graham Dumpleton; 31.08.2010
comment
Я хочу, чтобы он был в отдельном файле, чтобы я мог легко включать или отключать его и легко развертывать другие сайты. Вы правы, что было бы неприятно, если бы у меня когда-либо было несколько виртуальных хостов, но я не думаю, что это будет так. - person pfctdayelise; 31.08.2010

У вас нет ServerName ни в одном из VirtualHost, поэтому Apache не будет знать, как их различать, и будет просто использовать первый VirtualHost по порядку. Проверьте документацию Apache по необходимым директивам, которые будут использоваться для правильной настройки VirtualHost.

person Graham Dumpleton    schedule 30.08.2010
comment
Я изменил свой вопрос, чтобы быть более ясным. Я хочу, чтобы мой сайт работал на URL-адресе подкаталога, а не на собственном (суб)домене. Возможно ли это при сохранении отдельного файла? - person pfctdayelise; 31.08.2010

Если вы установили через aptitude, вы также можете проверить, есть ли у вас последняя версия mod_wsgi.

person Dave Everitt    schedule 30.08.2010