У меня есть приложение django, которое отлично работает под сервером разработки django. Теперь я пытаюсь запустить его под apache2.2, используя mod_wsgi.
В файле httpd.conf apache я добавил:
<IfModule wsgi_module>
WSGIScriptAlias /index my_path_to_wsgi_modules/django.wsgi
</IfModule>
а модуль django.wsgi содержит всю базовую конфигурацию, как описано в документации django: http://docs.djangoproject.com/en/dev/howto/deployment/modwsgi/
К сожалению, когда я запускаю сервер и пытаюсь получить доступ к главной странице, я получаю страницу шаблона, но без переменных данных в Это. В журнале сервера написано:
[Fri Feb 18 13:50:33 2011] [error] [client 127.0.0.1] File does not exist: /usr/local/apache2/htdocs/api, referer: http://127.0.0.1/example/
Как я уже сказал, странно то, что один и тот же код отлично работает на сервере разработки django. Я новичок в программировании веб-приложений, кто-нибудь может помочь?
Мой файл django.wsgi выглядит так:
импорт ОС импорт систем
из os.path import sep
basepath = '/ home / example / WorkSpace / examplews / src'
sys.path.append (базовый путь)
sys.path.append ('/ home / example / WorkSpace / examplews / src / examplews')os.environ ['DJANGO_SETTINGS_MODULE'] = 'examplews.settings'
import django.core.handlers.wsgi application = django.core.handlers.wsgi.WSGIHandler ()
И мой файл httpd.con, например:
ServerRoot "/ usr / local / apache2"
Слушай 80
LoadModule модули wsgi_module / mod_wsgi.so
Пользовательский apache
Групповой apacheServerAdmin [email protected]
DocumentRoot "/ usr / local / apache2 / htdocs"
<Directory />
Параметры FollowSymLinks
AllowOverride None
Запретить заказ, разрешить
Запретить для всех</Directory>
<Directory "/usr/local/apache2/htdocs">
Индексы опций FollowSymLinksAllowOverride Нет
Заказать разрешить, запретить
Разрешить от всех
</Directory>
<IfModule dir_module>
DirectoryIndex index.html index.php index.sh default.jsp</IfModule>
<FilesMatch "^\.ht">
Заказать разрешить, запретить
Запретить всем
Удовлетворить все</FilesMatch>
ErrorLog "журналы / журнал_ошибок"
LogLevel предупреждать
<IfModule log_config_module>
LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-Agent} i \ "" объединено
LogFormat "% h% l% u% t \"% r \ "%> s% b" общий
<IfModule logio_module>
LogFormat "% h% l% u% t \"% r \ "%> s% b \"% {Referer} i \ "\"% {User-Agent} i \ "% I% O" комбинированный</IfModule>
CustomLog "logs / access_log" общий
</IfModule>
<IfModule alias_module>
</IfModule>
<IfModule cgid_module>
</IfModule>
<IfModule wsgi_module>
WSGIScriptAlias / main /home/example/WorkSpace/examplews/src/examplews/apache_conf/django.wsgi</IfModule>
<Directory "/home/example/WorkSpace/examplews/src/examplews/apache_conf">
Разрешить, запретить
Разрешить от всех</Directory>
DefaultType текст / простой
<IfModule mime_module>
TypesConfig conf / mime.types
AddType application / x-compress .Z
AddType application / x-gzip .gz .tgz</IfModule>
<IfModule ssl_module>
Встроенный запуск SSLRandomSeed
Встроенный SSLRandomSeed connect</IfModule>
/usr/local/apache2/htdocs/api
действительно существует? Возможно, что-то еще в Apache неправильно настроено. - person Evan Porter   schedule 18.02.2011