Поддерживать несколько версий одного и того же сайта Php - PullRequest
1 голос
/ 17 декабря 2010

Я создаю новый веб-сайт с использованием Php и CodeIgniter (в стеке LAMP).Одно требование состоит в том, чтобы иметь возможность одновременно запускать более одной версии одного и того же веб-сайта, например, «живую» и «dev» версию;Должен существовать быстрый и безопасный способ переключения вперед и назад между версиями по мере необходимости.

Можете ли вы предложить хорошую технику?

ОБНОВЛЕНИЕ

Дополнительные требования:

  • Разработчик должен иметь возможность легко создавать новую версию

  • Конечный пользователь не должен замечать, что он / она использует живую версию, толькоУ разработчика может быть какой-то тег

Ответы [ 3 ]

2 голосов
/ 17 декабря 2010

Обычно используются файлы конфигурации.Например,

/live.domain.com/conf/config.php

Сохранит информацию, относящуюся к этому экземпляру приложения.Ваше приложение НИКОГДА не будет вызывать конкретную информацию экземпляра из скриптов.Т.е. - вы не должны жестко кодировать DSN, пути, адреса электронной почты, изображения и т. Д. Вся эта информация должна содержаться в файле конфигурации.

Примером может быть:

<?
$dsn_user = 'live';
$dsn_pass = 'live_password_1234234cx';
$dsn_host = 'localhost';
$dsn_type = 'mysql';
$dsn_db   = 'live';
$site_name = 'Bob's Store [live]';
$admin = 'bob@bobsstore.com';
$debug = 0
?>

Тогдакогда вам нужна вторая настройка сайта, вы просто извлекаете свою систему контроля версий (верно?) в другой каталог и редактируете файл конфигурации, ссылаясь на базу данных тестирования.

Как правило, работать вживуюи сайт разработки совместно использует одну и ту же физическую базу данных (не ядро ​​базы данных, хорошо разместить 50 сайтов на одном сервере баз данных MySQL, но каждый сайт должен иметь свою собственную базу данных WITHIN MySQL).

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

0 голосов
/ 17 декабря 2010

Просто используйте поддомен для версии dev.Пример:

// prod version
www.example.com

// dev version
dev.example.com

Очень важно отделить их, потому что одна уязвимость в dev может быть использована и может нанести вред живой версии.

0 голосов
/ 17 декабря 2010

Вот решение, если вы хотите, чтобы несколько сайтов работали под одной установкой CodeIgniter: http://www.askaboutphp.com/88/codeigniter-setting-up-multiple-sites-on-one-install.html

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

...