Как бороться с несколькими сайтами, имеющими доступ к одному «мозгу»?

StackOverflow https://stackoverflow.com/questions/1326112

Вопрос

Как правило, моя разработка охватывала только малые и средние компании и сайты электронной коммерции.

Мой следующий проект будет охватывать, скажем, 30 сайтов, однако у них будет около 95% общего.Я хочу, чтобы у них был один «мозг», что означает, что я могу вносить изменения, обновления в структуру и т. д. только один раз.

Интересно, делает ли это семейство сайтов Stack Overflow (суперпользователь, stackoverflow, serverfault и т. д.).

Я предпочитаю языки/платформы PHP 5.3, MySQL 5 и Kohana Framework.

Мозг должен иметь

  • 1 система администрирования, которая может обрабатывать каждый сайт
  • все шаблоны существуют в мозгу, однако у них есть заполнители, например, заголовок, логотип и т. д.
  • Чтобы я мог развернуть любое обновление глобальных шаблонов, я автоматически отфильтрую его для всех остальных сайтов.

Я понимаю, что это создаст большую нагрузку на мозг, поэтому мне придется часто использовать кэширование на стороне сервера.

Как бы мне обеспечить доступ каждого домена к мозгу, например:

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

беззвучный доступ http://www.mothership.com/mysite2/products/something

И будет ли это лучшим способом сделать это?Есть ли у вас какие-либо советы?Я на правильном пути?

Не стесняйтесь спрашивать меня больше подробностей.

Это было полезно?

Решение

Проще всего это сделать с помощью виртуального хостинга.По сути, вы запускаете все сайты на одной машине.На одной машине установлена ​​конфигурация Apache, которая обслуживает все сайты.

Если сайты больше похожи, чем различны, просто укажите все сайты в один каталог.Файлы PHP могут определять, какой сайт они обслуживают.Вы можете предоставить разные верхний и нижний колонтитулы для каждого сайта, чтобы обеспечить внешний вид.Таким образом вы также можете ограничить определенные страницы.

Если сайты более разные, чем похожие, укажите каждый из них в отдельный каталог и в каждом каталоге разместите страницы, относящиеся к этим сайтам.

Для общей функциональности вы можете использовать что-то вроде mod_rewrite для сопоставления URL-адресов на разных сайтах с одним и тем же сценарием, или вы можете иметь PHP-скрипты в каждом месте, которые включают/требуют общих функций.

В принципе, вариантов много.Ваша цель должна состоять в том, чтобы сделать сайт простым в обслуживании и свести дублирование кода к абсолютному минимуму.

По просьбе предлагаю прочитать:

Другие советы

Вы можете добиться этого в Apache, используя <VirtualHost> Directive.Чтобы сделать это в Apache 2.x, отредактируйте httpd.conf и раскомментируйте эту строку (обычно находится в конце файла): Include conf/extra/httpd-vhosts.conf.Затем найдите файл httpd-vhosts.conf и войти в VirtualHosts в этом формате:

<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>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top