首页  >  文章  >  后端开发  >  Apache服务器上同时运行php的网站和django的网站,该如何配置Apache和Django的URL?

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

WBOY
WBOY原创
2016-06-17 08:32:251349浏览

已经安装的软件: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>
声明:
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn