Назад | Перейти на главную страницу

только django работает при наличии mod_wsgi, PHP не работает

Я использую PHP с apache2 и MySQL на сервере rackspace, это неуправляемый хостинг cluoud. Я размещаю несколько сайтов с использованием виртуального хоста.

Теперь я хочу использовать на нем Django. Сайту нужен django, поэтому я установил django и mod_wsgi с помощью apt-get install . Затем я написал следующие строки в моем httpd.conf

WSGIScriptAlias / /var/www/djangosite/pyproject/mysite/mysite/wsgi.py
WSGIPythonPath /var/www/djangosite/pyproject/mysite/

<Directory /var/www/djangosite/pyproject/mysite/mysite/>
  <Files wsgi.py>
  Order deny,allow
  Allow from all
  </Files>
</Directory>

Но тогда на всех сайтах работал только django, и только этот конкретный проект появлялся на всех сайтах. Итак, что мне нужно, если я хочу, чтобы он работал только для определенного сайта? так что другие сайты могут работать так же, как они раньше работали с PHP. Мне нужно установить имя сервера и т. Д. где-то?

См. AddHandler / RewriteRule, описанный в:

Такой подход даст приоритет статическим файлам и / или файлам PHP в DocumentRoot, и только если совпадение не будет найдено, он вернется к приложению Django.

В качестве альтернативы смонтируйте свое приложение Django по дополнительному URL-адресу, а не в корне веб-сайта.

WSGIScriptAlias /suburl /var/www/djangosite/pyproject/mysite/mysite/wsgi.py

Кстати, ваша конфигурация выше все равно выглядит неправильно. Это может сработать только в том случае, если URL-адрес, который вы используете, имеет префикс «/wsgi.py». Вы неправильно вырезали и вставили и на самом деле имели в виду:

WSGIScriptAlias / /var/www/djangosite/pyproject/mysite/mysite/wsgi.py

IOW, последний аргумент должен указывать на файл wsgi.py, а не на каталог.