Nasıl bir 'beyin' erişim mutliple siteleri ile başa çıkmak için?

2 Cevap php

Genellikle, benim geliştirme sadece orta ölçekli şirketler ve e-ticaret siteleri küçük kapalı bulunuyor.

Ancak, birbirleri ile ortak yaklaşık% 95 olacak - Benim sonraki proje 30 siteleri söylemek içerecek. Onları sadece bir kez çerçeve vb değişiklikleri, güncellemeleri dışarı rulo anlamına gelir ki 1 'beyni' olmasını istiyorum.

Sitelerin yığın taşması ailesi bu (süper, stackoverflow, serverfault vb) mutlaka merak ediyorum.

Seçim benim dilleri / platformları PHP 5.3, MySQL 5 ve Kohana Çerçeve vardır.

Beyin olmalıdır

  • Her sitesi işleyebilir 1 admin sistemi
  • Tüm şablonları beyinde var - ancak bu yer tutucular vardır, örneğin, başlık, logo, vs
  • Bu yüzden genel şablonların herhangi bir güncelleştirme dönebilirsiniz bir yolu otomatik olarak tüm diğer sitelere filtre olacaktır.

Ben bu beyin stres bir sürü koymak istiyorum gerçekleştirmek, bu yüzden bir çok önbelleğe sunucu tarafı kullanmak gerekiyor.

Nasıl her etki alanı böylece, örneğin, beyin erişmek olurdu:

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

sessizce erişilen http://www.mothership.com/mysite2/products/something

Ve bunu yapmak için en iyi yol olacağını? Eğer herhangi bir ipucu var mı? Ben doğru yolda mıyım?

Bana daha fazla özelliklerini sormak için çekinmeyin.

2 Cevap

Bunu yapmanın en kolay yolu, sanal barındırma ile. Temelde tek bir makinede tüm siteleri çalıştırın. Bir makine tüm siteleri hizmet veren bir Apache yapılandırma vardır.

Sitelerde farklı daha benzer ise o sadece bir dizin tüm siteler etmektedir. PHP dosyaları ne onlar hizmet konum sitesi algılayabilir. Sen göz işlemek ve hissetmek için her site için farklı bir üstbilgi ve altbilgi sağlayabilir. Ayrıca belirli sayfalarına bu şekilde kısıtlayabilirsiniz.

Siteleri benzer daha farklı ise o zaman farklı bir dizine her nokta ve her dizininde bu sitelerle ilgili sayfaları var.

Mod_rewrite aynı komut için farklı sitelerde URL'leri eşleştirmek veya / ortak işlevselliği gerektiren dahil her yerde PHP scriptleri gibi ortak işlevi için bir şey kullanabilirsiniz.

Temelde birçok seçenek vardır. Amacınız korumak ve mutlak bir minimum kod tekrarından tutmak için site kolay yapmak gerekir.

İstendiği gibi, okuma önerisi:

Sen <VirtualHost> Directive kullanarak Apache bu elde edebilirsiniz. Apache 2.x altında bunu düzenlemek httpd.conf ve (genellikle dosyanın sonuna yakın bulunan) bu satırı yorumsuz için: Include conf/extra/httpd-vhosts.conf. Sonra bu formatta dosyayı httpd-vhosts.conf ve giriş VirtualHosts bulun:

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