php - 如何在一台 Apache 服务器上同时运行 Django 和 PHP?

标签 php django apache-config

我目前可以在我的 Apache 服务器上通过 mod_wsgi 或 PHP 运行 Django。

我的 Django 项目运行在:http://localhost源在 C:/django_proj

我的 PHP 项目运行在:http://php.localhost源在 C:/web

如果我同时打开,php.localhost 和 localhost 会转到 Django 项目。我已经通过 Apache 虚拟主机设置了它们。

以下是 httpd.conf 中的一些相关行:

DocumentRoot "C:/web"

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

<Directory "C:/web">
    Options Indexes FollowSymLinks
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>

<Directory "C:/django_proj">
    Order allow,deny
    Allow from all
</Directory>

Include "C:/django_proj/apache/apache_django_wsgi.conf"

apache_django_wsgi.conf中的相关行是:

WSGIScriptAlias / "C:/django_proj/apache/proj.wsgi"
<Directory "C:/django_proj/apache">
    Order allow,deny
    Allow from all
</Directory>

httpd-vhosts.conf 内部:

<Directory C:/web>
    Order Deny,Allow
    Allow from all
</Directory>

<Directory C:/django_proj>
    Order Deny,Allow
    Allow from all
</Directory>

<VirtualHost *:80>
    DocumentRoot "C:/django_proj"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "C:/web"
    ServerName php.localhost
</VirtualHost>

我的 PHP 项目目前无法访问。有人知道我缺少什么吗?

最佳答案

我用一个 Apache 运行了数十个 mod_wsgi/Django 站点、PHP 站点和一个 Rails 站点。

这主要是使用虚拟主机完成的,但我有一些虚拟主机在同一个域中运行。

您只需要输入您的 WSGIScriptAlias /...在任何其他位置/别名指令之后。

例如,我想在与 Django 站点相同的域上运行 phpMyAdmin。配置看起来像这样:

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>

你不需要那些<Directory> http.conf 中的指令...在虚拟主机中进行所有配置。

此外,完全摆脱 <Directory /> block 。

关于php - 如何在一台 Apache 服务器上同时运行 Django 和 PHP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1020390/

相关文章:

Apache + Perl + NTLM/LDAP == 单点登录?

php - Uncaught Error : Undefined class constant 'ERRMODE_EXPECTION'

python - 对象.filter ("ı wanna add two contains field")

django - 为什么会出现此错误, docker 操作错误(Django项目)?

php - 如何在我的开发机器上支持 "AddType x-mapp-php5 .php"

apache - 简单的领域问题

php - 将 php 数据绘制到 Highmap : HighCharts

javascript - 使用 javascript 通过表单发送对象

c# - 创建一个 Youtube 机器人

Django 'WSGIRequest' 对象没有属性 'data'