当前位置: 首页 > 面试题库 >

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

督弘化
2023-03-14
问题内容

我目前可以在我的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 /...其他任何Location / Alias指令之后。

比方说,例如,我想在与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 />障碍。



 类似资料:
  • 问题内容: 我有带有git存储库的家庭服务器。现在,我正在尝试在现有的PHP存储库上配置Jenkins。 我已经正常安装了Jenkins,但是在创建Job时出现错误: 储存库网址= /home/git/repositories/testing.git 错误如下: 无法连接到存储库:命令“ git ls-remote -h /home/git/repositories/testing.git HEA

  • 5.12.1. 在Windows下运行多个服务器 5.12.2. 在Unix中运行多个服务器 5.12.3. 在多服务器环境中使用客户端程序 在一些情况下,你可能想要在同一台机器上运行多个mysqld服务器。你可能想要测试一个新的MySQL发布,同时不影响现有产品的设置。或者,你可能想使不同的用户访问来访问不同的mysqld服务器以便他们自己来管理。(例如,你可能是一个Internet服务提供商,

  • 我试图在Android Pie(API 28.0)设备上运行ApacheMina SSHD服务器(2.2.0版)。我在Android4设备上找到了各种关于它的帖子,但似乎没有一个能在我的Android9设备上运行。所以我尝试自己实现它,但在服务器初始化时遇到了ReflectionException/NoClassDefFoundError。 当我尝试用SshServer.setUpDefaultS

  • 我有一个运行Ubuntu 14.04的DigitalOcean服务器。我将它用作我的web开发项目的主机。现在我想开始在我的一个项目中使用Laravel,但我有一个问题。 在Ubuntu的/var/www/html文件夹中,我创建了一个文件夹,比如说,“project”。在这个文件夹中,我使用本教程安装了Laravel。现在一切都设置好了,我想运行Laravel,这样我就可以测试它并开始开发它。当

  • 问题内容: 我需要将Silverlight 2.0应用程序部署到Apache服务器,但是它在Linux下。 这可能吗?我的意思是,我是否需要在服务器中安装.Net 3.5和可以执行Asp.Net的网站? 谢谢您的帮助… 问题答案: 如果apache服务器只是在没有任何ASPX页面的情况下提供Silverlight应用程序,那么您应该没问题。Silverlight是一种客户端技术,因此它在服务器上不

  • 我有姜戈问题。我想将来自浏览器或django服务器上的业务逻辑的数据发送到另一个django服务器或只是同一服务器但不同端口来处理请求。我该怎么办?我试着用套接字来实现,但似乎不起作用。