Pergunta

Geralmente, meu desenvolvimento tem cobria apenas empresas de pequeno e médio porte e sites de comércio eletrônico.

Meu próximo projeto vai abranger dizer 30 locais - no entanto, eles têm cerca de 95% em comum uns com os outros. Eu quero que eles têm um 'cérebro' Isso significa que posso lançar alterações, atualizações para o quadro etc apenas uma vez.

Gostaria de saber se a família Stack Overflow de sites fazem isso (superusuário, stackoverflow, serverfault etc).

Meus idiomas / plataformas de escolha são PHP 5.3, MySQL 5 e o Quadro Kohana.

O cérebro deve ter

  • 1 sistema de administração que pode lidar com cada site
  • existem todos os modelos no cérebro - no entanto eles têm espaços reservados, por exemplo, título, logotipo, etc
  • Uma maneira para que eu possa lançar alguma atualização para os modelos globais irá filtrar automaticamente a todos os outros sites.

Eu percebo isso seria colocar um monte de estresse sobre o cérebro, então eu teria que do lado do servidor usar o cache de um monte.

Como eu teria cada acesso de domínio do cérebro, assim, por exemplo:

http://www.mysite2.com/products/something

http://www.mothership.com/mysite2/products/something

E isso seria a melhor maneira de fazê-lo? Você tem alguma dica? Am I no caminho certo?

Sinta-se livre para me perguntar qualquer mais detalhes.

Foi útil?

Solução

A maneira mais fácil de fazer isso é com hospedagem virtual. Basicamente você executar todos os sites em uma única máquina. A única máquina tem uma configuração do Apache que serve todos os sites.

Se os sites são mais semelhantes do que diferentes, em seguida, basta apontar todos os sites para o diretório. Os arquivos PHP pode detectar o local que está servindo. Você pode fornecer um cabeçalho e rodapé diferente para cada site para lidar com o look and feel. Você também pode restringir determinadas páginas desta forma.

Se os sites são mais diferente do similar, então apontar cada um para um diretório diferente e têm páginas relevantes a esses sites em cada diretório.

Para obter a funcionalidade comum que você poderia usar algo como mod_rewrite para mapear URLs sobre os diferentes sites para o mesmo script ou você poderia ter scripts PHP em cada local que incluem / exigem funcionalidade comum.

Basicamente, existem muitas opções. Seu objetivo deve ser tornar o site fácil de manter e manter a duplicação de código a um mínimo absoluto.

Conforme solicitado, sugestões de leitura:

Outras dicas

Você pode conseguir isso no Apache usando o <VirtualHost> Directive. Para fazer isso sob o Apache 2.x, editar httpd.conf e descomente esta linha (geralmente encontrado perto do final do arquivo): Include conf/extra/httpd-vhosts.conf. Em seguida, localize o arquivo httpd-vhosts.conf ea entrada VirtualHosts neste formato:

<VirtualHost 10.1.2.3>
DocumentRoot /home/site1
ServerName site1.com
</VirtualHost>

<VirtualHost 10.1.2.3>
DocumentRoot /home/site2
ServerName site2.com
</VirtualHost>

<VirtualHost 10.1.2.3>
DocumentRoot /home/site2
ServerName site3.com
</VirtualHost>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top