Копирование действующих сайтов на локальный
-
20-09-2019 - |
Вопрос
В последнее время я все больше и больше увлекаюсь веб-разработкой, и поэтому у меня есть несколько вопросов.У меня есть несколько веб-сайтов, находящихся на рабочем сервере LAMP, и я пытаюсь скопировать их на свой локальный компьютер с xampp 1.7.1 на XP Pro.Проблема, с которой я столкнулся, в основном связана с путями.В основном я разрабатываю для WordPress, Joomla, Magento, MediaWiki.Когда я копирую сайт локально, мне приходится изменять файлы конфигурации и/или поля базы данных, чтобы отразить локальный путь.Проблема, с которой я всегда сталкиваюсь, заключается в том, что каждый раз, когда я загружаю файлы, содержащие локальные пути, обратно на сервер, мне приходится менять пути обратно на рабочие пути, иначе я получаю ошибки «объект не найден».Запоминание правильных путей для каждой установки и того, какие файлы должны иметь обновления путей, — это настоящая боль.Есть ли что-то, что мне не хватает?Есть ли более простой способ убедиться, что пути верны независимо от того, занимаюсь ли я производством или разработкой, без необходимости вручную изменять их каждый раз, когда я загружаю или загружаю файл или базу данных?
Решение
В идеале в вашем основном файле конфигурации должна быть строка кода, позволяющая определить, на каком сервере выполняется код.Я использую что-то вроде следующего:
if(__FILE__ === '/home/peter/web_projects/my-project/config.php') {
// set up configuration for development environment
define('DEV', true);
[etc]
}
else {
// code is running on the live server
define('DEV', false);
[etc]
}
Это позволяет мне иметь то же самое config.php
на моей машине разработки, а также в реальном времени, и любые другие файлы можно просто проверить DEV
постоянно знать, местные они или живые.
Другие советы
Да, вам не хватает автоматизированной системы развертывания.Для Linux есть капистрано, и другие подобные, которые вы можете посмотреть (примечание:Я написал один для Windows, но он вам бесполезен).