Как я выполняю Django и PHP вместе на одном сервере Apache?

Если у вас есть несколько файлов с поэтапными изменениями, может быть более практичным использовать git add -i, затем выбрать 6: diff и, наконец, выбрать интересующий вас файл (ы).

23
задан George Claghorn 7 March 2010 в 14:38
поделиться

2 ответа

Я запускаю десятки сайтов mod_wsgi / Django, сайтов PHP и сайтов Rails с одним Apache.

В основном это делается с использованием виртуальных хостов, но у меня есть такие, которые работают как на тот же домен.

Вам просто нужно поместить свой WSGIScriptAlias ​​/... после любых других директив Location / Alias.

Допустим, я хочу запустить phpMyAdmin в том же домене, что и сайт Django. Конфигурация будет выглядеть примерно так:

Alias /phpmyadmin /full/path/to/phpmyadmin/
<Directory /full/path/to/phpmyadmin>
   Options -Indexes
   ...etc...
</Directory>

WSGIScriptAlias / /full/path/to/django/project/app.wsgi
<Directory /full/path/to/django/project>
    Options +ExecCGI
    ...etc...
</Directory>

Изменить :

Ваша конфигурация должна выглядеть примерно так:

<VirtualHost *:80>
    DocumentRoot "C:/django_proj"
    ServerName localhost
    WSGIScriptAlias / "C:/django_proj/apache/proj.wsgi"
    <Directory "C:/django_proj/apache">
        Options +ExecCGI
        Order allow,deny
        Allow from all
    </Directory>
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/web"
    ServerName php.localhost
    Alias / C:/web
    <Directory C:/web>
        Options Indexes FollowSymLinks
        AllowOverride None
        Order Deny,Allow
        Allow from all
    </Directory>
</VirtualHost>

Вам не нужны эти директивы в http.conf ... выполните всю вашу настройку на виртуальных хостах.

Также полностью избавьтесь от блока .

32
ответ дан 29 November 2019 в 02:04
поделиться

Ваш WSGIScriptAlias ​​/ ... Директива сообщает Apache, что все запросы, начинающиеся с "/", должны проходить через обработчик WSGI Django. Если вы изменили это на WSGIScriptAlias ​​/ django-proj / ... вместо этого в Django будут передаваться только запросы, начинающиеся с «/ django-proj».

Альтернативой может быть начало настройки виртуальных хостов для каждого проекта. Таким образом вы можете настроить Apache так, чтобы каждый проект помещался в / своего собственного домена, и вам не нужно было бы беспокоиться о том, что конфигурация одного проекта влияет на другие ваши проекты.

8
ответ дан 29 November 2019 в 02:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: