我目前可以在我的 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/