2013-06-03 39 views
6

我需要使用DjangoCMS並用相同的URL的Prestashop,例如:如何結合的Prestashop(PHP)和DjangoCMS(Python)的

localhost/shop = prestashop<br> localhost/everythingElse = DjangoCMS<br>

我的Prestashop安裝在/var/www/prestashop和djangoCMS安裝在/var/www/djangoCMS

Linux Mint的14 64位,Apache2的,mod_python的,WSGI ...

我已經試過這CONF:

<VirtualHost *:80> 
DocumentRoot "/var/www/djangoCMS" 
ServerName localhost 
WSGIScriptAlias/"/var/www/djangoCMS/djangoCMS/apache/django.wsgi" 
<Directory "/var/www/djangoCMS/djangoCMS/apache"> 
    Options +ExecCGI 
    Order allow,deny 
    Allow from all 
</Directory> 

<VirtualHost *:80> 
DocumentRoot "/var/www/prestashop" 
ServerName php.localhost 
<Directory "/var/www/prestashop"> 
    Options Indexes FollowSymLinks 
    AllowOverride None 
    Order Deny,Allow 
    Allow from all 
</Directory> 

Django的正常工作本地主機,但我不能訪問php.localhost:糟糕!谷歌瀏覽器找不到php.localhost

+0

嘗試另一個端口 – krampstudio

+0

可能'php.localhost' ISN沒有妥善解決。你需要在你的'/ etc/hotsts'文件中添加一個條目,或者如果你正在使用dns服務器配置器來正確解析它,並在你的apache配置文件中正確設置'NameVirtualHost'指令。 – mata

+0

謝謝你;)我在端口8000上使用django(./manage runserver 8000),並且在/ etc/hosts上添加了php.localhost。現在我必須從url中刪除:8000。再次感謝你的幫助。祝你今天愉快。 – 21S

回答

0

ServerName php.localhost表示您告訴Apache回答對http://php.localhost所做的任何請求爲此,您需要添加php.localhost以指向服務器IP地址(127.0.0.1如果這是您的本地開發環境)

這不適用於生產環境。我建議使用ProxyPass,在這裏你可以告訴Apache將所有呼叫重定向到特定的端口。例如:

<VirtualHost *:9090> 
    ServerName localhost 
    DocumentRoot /var/www/prestashop 
    <Directory "/var/www/prestashop"> 
     AllowOverride All 
     Require all granted 
    </Directory> 
</VirtualHost> 

<VirtualHost *:80> 
    DocumentRoot "/var/www/djangoCMS" 
    ServerName localhost 
    WSGIScriptAlias/"/var/www/djangoCMS/djangoCMS/apache/django.wsgi" 
    <Directory "/var/www/djangoCMS/djangoCMS/apache"> 
     Options +ExecCGI 
     Order allow,deny 
     Allow from all 
    </Directory> 

    ProxyPass /shop https://localhost:9090 
    ProxyPassReverse /shop https://localhost:9090 
</virtualHost> 

這樣,你將擁有的Prestashop在端口9090上運行,則Django在端口80和告訴Apache所有呼叫重定向從http://localhost/shophttp://localhost:9090