Como integrar o sistema de fóruns PHP com o novo site do Django

1

Estou prestes a lançar um novo site do Django (RedHat EL4, Apache 2.0.52, Django 1.1, mod_wsgi), fazendo a transição de um site básico de static-html e php. Como está atualmente configurado, o Django lida com todas as solicitações no novo site, começando pela raiz do site (ou seja, mydomain.com/ é processado pelo Django).

O site antigo tinha um fórum do PhpBB configurado em mydomain.com/forum/. Estou tentando descobrir como (ou se) posso obter o sistema do fórum para morar no mesmo lugar no novo site. Então, qualquer coisa sob mydomain.com/forums/ é manipulada pelo PhpBB e tudo o mais é tratado pelo Django.

Eu sinto que a diretiva Apache 'Location' é a ferramenta a ser usada, mas não estou recebendo conselhos específicos suficientes dos documentos do Apache e do Google. Estou razoavelmente familiarizado com arquivos conf do Apache, mas não tive que fazer esse tipo de coisa antes. Obrigado por qualquer sugestão.

    
por Bill 02.09.2010 / 10:01

1 resposta

1

Eu tenho arquivos estáticos veiculados pelo meu host por meio do seguinte em minha configuração do apache:

  Alias /media /sites/mysite.org/www/media
  <Location /media>
    Order allow,deny
    Allow from all
  </Location>

Com isso, o Apache lida com o alias antes de chegar ao Django. Eu suponho que você só precisa ter o php habilitado para funcionar contra esse diretório.

UPDATE De acordo com o comentário de Graham abaixo. Consulte a seção "O que usar quando" no link

O que usar quando

A escolha entre contêineres de sistema de arquivos e contêineres de espaço da Web é realmente muito fácil. Ao aplicar diretivas a objetos que residem no sistema de arquivos, use sempre ou. Ao aplicar diretivas a objetos que não residem no sistema de arquivos (como uma página da Web gerada a partir de um banco de dados), use.

É importante nunca usar ao tentar restringir o acesso a objetos no sistema de arquivos. Isso ocorre porque muitas localizações diferentes de URLs (URLs) podem ser mapeadas para o mesmo local do sistema de arquivos, permitindo que suas restrições sejam contornadas. Por exemplo, considere a seguinte configuração:

<Location /dir/>
Order allow,deny
Deny from all
</Location>

Isso funciona bem se a solicitação for para link . Mas e se você estiver em um sistema de arquivos insensível a maiúsculas e minúsculas? Em seguida, sua restrição poderá ser facilmente contornada, solicitando o link . A diretiva, em contraste, será aplicada a qualquer conteúdo veiculado a partir desse local, independentemente de como ele é chamado. (Uma exceção são os links do sistema de arquivos. O mesmo diretório pode ser colocado em mais de uma parte do sistema de arquivos usando links simbólicos. A diretiva seguirá o link simbólico sem redefinir o nome do caminho. Portanto, para o nível mais alto de segurança, links simbólicos devem ser desabilitado com a diretiva de Opções apropriada.)

Se você está, talvez, pensando que nada disso se aplica a você porque você usa um sistema de arquivos que faz distinção entre maiúsculas e minúsculas, lembre-se de que há muitas outras maneiras de mapear vários locais do espaço da Web para o mesmo local do sistema de arquivos. Portanto, você deve sempre usar os contêineres do sistema de arquivos quando puder. Há, no entanto, uma exceção a essa regra. Colocar restrições de configuração em uma seção é perfeitamente seguro, pois esta seção será aplicada a todas as solicitações, independentemente da URL específica.

    
por 02.09.2010 / 10:28