Я использую 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, а не на каталог.