Как правильно развернуть приложения от разработки до производства и как работать с несколькими конфигурациями сайтов. Все мои разработки выполнены через svn, расположенные в var/svn/myapp/trunk, и Фактический код производства находится в/var/www/myapp.Как правильно использовать ваши PHP-приложения?
Я проверяю последний код на свой локальный компьютер в каталог под названием «myapp_latest_svn». У меня есть сайт и местоположение конкретного код в моей основной settings.php, который имеет H_PATH = «http://myapp.com» настройки конфигурации & дБ для DB_HOST, db_user_name и пароль_базы_данного, который, как вы знаете, в разных локальных настройках машины (где LOCALHOST/MyApp. com - это просто псевдоним Apache) & на сервере (на сайте myapp.com).
Также файл .htaccess отличается от файла на производственном сервере. Короче говоря, существует ряд различий между dev и production.
Я держу всю свою работу в SVN. Каждое утро я использую SVN Update, который обновляет последний код в моем локальном репозитории svn. Когда я готов жить, я создаю выпуск с svn Commit.
Тогда в выпуске я должен помнить, что все соответствующие файлы-разработчики должны быть заменены на их производственную копию. Теперь мне пришлось вручную отредактировать настройки production.php & .htaccess, чтобы отразить конкретные изменения сайта.
Я ищу автоматизированный способ перехода от разработчика к версии с версией и без ручного редактирования файлов с ошибкой и плохой практикой.
Один из способов - сделать производственную версию файлов только для чтения (0444). Таким образом, когда я делаю экспорт svn, , они не перезаписываются dev-версией файлов, и мне не нужно беспокоиться о редактировании файлов на , каждый переход от разработчика к продукту. Но это плохой способ делать такие вещи, как непрерывная интеграция.
Также, создавая несколько копий settings.php (один для localhost, beta и prod). Затем, используя сценарий оболочки , который экспортирует из svn, а затем после завершения экспорта, он заменяет settings.php правильными параметрами settings.php, в зависимости от того места, в котором мы развертываем. Таким образом, все автоматизировано. Но это тоже хромой путь.
Последний путь
if(eregi ("myapp.com$", $_SERVER['HTTP_HOST'])){
define('H_PATH', 'myapp.com');
} else {
define('H_PATH', 'localmyapp.com');
}
Это прекрасно, насколько settings.php обеспокоен. Но что же такое .htaccess, вы не можете проверить, как выше в .htaccess.
Что я не хочу делать каждый раз, когда я развертываю свой сайт, чтобы изменить настройки.
Моя схема DB не находится в управлении версиями, поэтому db не является проблемой для меня, только settings.php и .htaccess.
Также можно сказать, что svn не обновляет некоторые каталоги, поскольку это также зависит от сайта (/ log,/cache,/assets,/downloads). Также мне нужно сохранить доступ для записи apache (www_data) без изменений для вышеуказанных файлов.
Наконец, я не хочу копировать пустой каталог соединительных линий и .svn-файлы на производственный сервер при экспорте.
Как я могу использовать Phing или даже скрипт оболочки для интеграции без каких-либо из этих проблем при создании с svn на производственные серверы.
Это может быть полезно для многих разработчиков приложений wannabe в дикой природе.
Спасибо заранее,
ocptime
Great ссылки! Благодаря! –
Не могли бы вы объяснить, что делают каталоги ссылок symlinking? – dave1010