Несколько веб-сайтов, работающих на той же кодовой базе?

Логотип

? to factorial :n
> ifelse :n = 0 [output 1] [output :n * factorial :n - 1]
> end

И вызвать:

? print factorial 5
120

Это использует диалект UCBLogo логотипа.

5
задан user151019 14 May 2012 в 13:09
поделиться

4 ответа

Повторное использование кода определенно желательно. По вашим постам сложно представить, насколько сайты будут отличаться друг от друга. Мы говорим о логотипах, цветовых схемах или другой функциональности?

Я начну с другого внешнего вида. Я также предполагаю, что это единственное приложение на сервере.

Я рекомендую тщательно спланировать структуру каталогов. Что-то вроде:

www-root/  
   / lib  
   / themes
        / domain1  
        / domain2  


index.php:

<?php
$host = $_SERVER['HTTP_HOST'];
$include_theme = "themes/" . $host . "/configuration.php";
//make sure the file exists
require_once($include_theme);

Это упрощенный подход, но есть кое-что о нем.

3
ответ дан 14 December 2019 в 19:17
поделиться

На самом деле это очень просто.

Ваша кодовая база может и должна быть единой. Вы загружаете его на hosting1 и hosting2. При обслуживании, как только вы обновите код, загрузите его на оба хостинговых пространства.

Я полагаю, что этот сайт работает так же. Посмотрите на нижний колонтитул страницы. У вас есть stackoverflow, meta, superuser и serverfault. Если вы посмотрите, что прямо сейчас говорится в комментарии внизу справа, это будет «svn revision: 5404». Тоже самое. Одна кодовая база опубликована на четырех сайтах. Базы данных, конечно, разные и содержат совершенно другой контент.

Итак, переменные части:

  1. Конфигурация

  2. Настройки

  3. Данные

Те, которые вам нужно скопировать.

Вам необходимо закодировать его таким образом, чтобы конфигурация и настройки не были жестко закодированы, а либо сохранялись в какой-либо таблице базы данных или, по крайней мере, в некоторых внешних файлах конфигурации. Они не являются частью кода (или реализации, если хотите), поэтому они не должны быть в коде. Если они у вас есть, выньте их.

1
ответ дан 14 December 2019 в 19:17
поделиться

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

Как правило, если у вас несколько сайтов, у вас должен быть свой сервер для каждого.

Изменить:

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

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

Резюмируя:

  • получить несколько серверов, и сбалансировать нагрузку между ними.
  • разработать приложение для обработки большой пользовательской нагрузки.
  • использовать имя хоста, чтобы определить, какую конфигурацию использовать.
1
ответ дан 14 December 2019 в 19:17
поделиться

Сейчас мы делаем это примерно с 15 000 уникальными доменами. Это несложно, но для правильной реализации требуются некоторые конструктивные особенности.

Вы можете сделать это, используя единую базу кода и сервер, и по сути просто построить свой код так, чтобы он полностью зависел от значения входящего запроса HTTP_HOST . Затем все в вашей БД отключает это значение, чтобы правильно разделить данные и ответить на запрос соответствующими данными / html.

0
ответ дан 14 December 2019 в 19:17
поделиться
Другие вопросы по тегам:

Похожие вопросы: