Home >Backend Development >PHP Tutorial >Apache服务器上同时运行php的网站和django的网站,该如何配置Apache和Django的URL?

Apache服务器上同时运行php的网站和django的网站,该如何配置Apache和Django的URL?

WBOY
WBOYOriginal
2016-06-17 08:32:251390browse

已经安装的软件:Apache2.2 mod_wsgi php5 等.
想要:
1. 使用同一个端口,同一个domain。
2. 把/django_site/* 这样的url全部交给django处理

无奈自己试了很多种配置方式,均出现古怪的错误。

回复内容:

谢邀,拖了好久。
我是接触 nginx 之后才开始碰的 Python / Django,但之前用 Apache / mod_php 用了不少时间,所以下面的 Django 搭配是按照 nginx fastcgi_pass 的思路来的。本身也是新手,下面的目标就是「跑起来」,特此敬告注意。

环境:
Ubuntu 12.04 LTS, Apache 2.2.22 Prefork MPM, mod_php 都是系统 apt-get 安装。
Apache module:
  • php5
  • proxy(/etc/apache2/mods-available 里看到了 proxy.load 和 proxy_scgi.log)
Python 模块通过 pip 安装,virtualenv 管理环境:
  • django
  • flup (Django 的 runfcgi 依赖 flup)

步骤:Django -> Apache / PHP -> Apache proxy_scgi / Django SCGI
1、先搞定 Django app,确保用 manage.py runserver 可以启动并正确访问到你的 Django app (python manage.py runserver 0.0.0.0:8000)
2、之后是配置标准的 Apache / mod_php5 环境,Ubuntu 里基本什么都不需要。在 DocumentRoot 下放一个 info.php 确保工作正常:
<code class="language-php"><span class="cp"></span> <span class="k">echo</span> <span class="nb">phpinfo</span><span class="p">();</span> <span class="cp">?></span><span class="x"></span>
</code>
配置httpd-vhosts.conf文件
<code class="language-apacheconf"><span class="nt"><virtualhost> <span class="s">*:80</span><span class="nt">></span>
    <span class="nb">WSGIScriptAlias</span> <span class="sx">/django_site</span> <span class="s2">"/path/to/www/django_site.wsgi"</span>
    <span class="nt"><directory> <span class="s">"/path/to/www/django_site"</span><span class="nt">></span>
        <span class="nb">Order</span> Deny,Allow
        <span class="nb">Allow</span> from <span class="k">all</span>
    <span class="nt"></span></directory></span> 
    <span class="nb">Alias</span> <span class="sx">/images</span> <span class="s2">"/path/to/www/images"</span>    
    <span class="nb">Alias</span> <span class="sx">/layout</span> <span class="s2">"/path/to/www/layout"</span>        
<span class="nt"></span></virtualhost></span>  
</code>
Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn