2013-06-03 18 views
6

muszę korzystać DjangoCMS i prestashop z tej samej zawartości, na przykład:Jak połączyć Prestashop (PHP) oraz DjangoCMS (Python)

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

mój prestashop jest zainstalowany w /var/www/prestashop i djangoCMS jest zainstalowany w /var/www/djangoCMS.

Linux Mint 14 64 bitów, apache2, mod_pythona, WSGI ...

Próbowałem to 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 działa dobrze na localhost, ale nie mam dostępu do php.localhost: Ups! Google Chrome nie mogła znaleźć php.localhost

+0

spróbować innego portu – krampstudio

+0

prawdopodobnie 'php.localhost' ISN rozwiązano poprawnie. Musisz dodać wpis do pliku '/ etc/hotsts' lub jeśli używasz konfiguratora serwera dns, aby go poprawnie rozwiązać i poprawnie skonfigurować dyrektywę' NameVirtualHost' w twojej konfiguracji apache. – mata

+0

Dziękuję;) Używam django na porcie 8000 (./manage runserver 8000) i dodałem php.localhost do/etc/hosts. Teraz muszę usunąć: 8000 z adresu URL. Jeszcze raz dziękuję za pomoc. Miłego dnia. – 21S

Odpowiedz

0

ServerName php.localhost oznacza, że ​​mówisz Apache aby odpowiedzieć na wszelkie prośby skierowane do http://php.localhost za to trzeba będzie dodać php.localhost wskazać na adres IP serwera (127.0.0.1 jeśli jest to lokalne środowisko programisty)

Nie będzie działać w środowisku produkcyjnym. Sugeruję użycie ProxyPass, w którym apache będzie mógł przekierować wszystkie połączenia do określonego portu. Na przykład:

<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> 

W ten sposób będziesz mieć PrestaShop uruchomiony w porcie 9090, Django w porcie 80 i powiedzieć Apache przekierować wszystkie połączenia z http://localhost/shop do http://localhost:9090

Powiązane problemy