Могу ли я продублировать настройки сервера Apache на новой установке Linux?

Могу ли я продублировать настройки сервера Apache на новой установке Linux?

У меня на компьютере установлен сервер Apache 2, который я использую для локального тестирования. Чтобы было ясно, этонетхостинг сайтов в интернете. Это просто для локальной отладки и проектирования.

Я использовал Ubuntu Linux, но теперь у меня новый компьютер с Linux Mint. Я бы хотел взять все сайты Apache и настройки, которые у меня есть на старой машине Ubuntu, и воспроизвести их на новой машине Linux Mint.

Я знаю только, как сделать это вручную, по одному сайту за раз, начиная с нуля. Создавая файл для каждого сайта в каталоге sites-availableи активируя их с помощью a2ensite. А затем внося изменения в любые файлы конфигурации, например, добавляя несколько строк в свой php.iniфайл для включения Xdebug, и надеясь, что я ничего не упустил.

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

Разве нельзя каким-то образом скопировать все настройки и сайты Apache 2 на моей машине Ubuntu и поместить их на мою машину Linux Mint за один раз? Или, по крайней мере, за минимум шагов, что меньше, чем пересоздание каждого сайта и настройки с нуля?

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

решение1

Настройки вашего сервера, как и любые общесистемные настройки программ, находятся в /etc. Точное расположение зависит от дистрибутива, но /etc/apacheили /etc/apache2являются хорошими вариантами. И Ubuntu, и Mint используют /etc/apache2.

Если у вас установлены те же плагины и версии Apache, которые не слишком сильно отличаются, вы можете просто скопировать весь /etc/apache2каталог на новую машину. Конечно, вам также нужно будет скопировать корневой каталог(и) документов.

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

решение2

Разве нельзя каким-то образом скопировать все настройки и сайты Apache 2 с моей машины Ubuntu и перенести их на мою машину Linux Mint за один раз?

Если предположить, что это не сильно отличающиеся версии Apache, то да. Дистрибутивы предварительно настраивают Apache с небольшими различиями (например, местоположение корневого веб-каталога), но если вы копируете свою конфигурацию и помещаете все в одно и то же место, просто делайте это оптом. Как и при перезаписи конфигурации, не возитесь с ее редактированием одинаково. Имейте в виду, что местоположение файлов conf Apache скомпилировано в двоичный файл Apache и может отличаться от дистрибутива к дистрибутиву. Однако то, что находится в файлах conf, является переносимым, поэтому вы должны иметь возможность просто заменить файлы своими собственными. Помимо местоположения файла conf, поведение Apache определяется тем, что находится в файле(ах) conf, поэтому если вы замените его/их, то, например, корневой веб-каталог будет определяться вашей «новой» конфигурацией. Еще одна деталь здесь, как вы поняли, это то, что находится в /etc/hosts.

Apache иногда использует полунезависимые части (например, php), которые имеют собственную конфигурацию. Если вы знаете, что используете что-то подобное, вам придется немного поработать, чтобы узнать подробности.

Это ставит вопрос окак вы делаете резервное копирование сервера; если вы сделаете это последовательно, это просто вопросразвертывание резервной копии на другой машине(т. е. как будто его полностью забанили). Под "резервным копированием сервера" я не подразумеваю всю вашу файловую систему или двоичный файл apache, который уже фактически зарезервирован, поскольку это пакет дистрибутива. Я имею в виду все в корневом каталоге веб-сайта (например, /var/www) — все файлы данных, скрипты и т. д., которые использует сервер, — и конфигурацию, которая, вероятно, находится где-то в /etc; как уже упоминалось, это местоположение является переменным, но скомпилировано в apache, то есть если вы хотите развернуть на другом дистрибутиве, вам, возможно, придется поместить файл(ы) conf в другое место.

Какточновы делаете это, зависит от характера вашего сервера. Если вы обслуживаете различные вещи, которые сами по себе являются автономными проектами, эти проекты должны быть резервированы независимо; это должно включать некоторую документацию о том, как их следует развертывать и что им требуется, возможно, включая фрагменты конфигурации Apache, если это уместно. Это означает, что проект может быть легко установлен в любой Apache. Если сервер выделен для чего-то одного, вы можете просто сделать резервную копию всего веб-корня. В первом случае (различные независимые проекты), используя некоторую формуВКСхорошо (это хорошие вещи, которые стоит изучить; лично мне больше нравится, gitно есть и много других), в последнем (один мегалитический веб-корень) что-то вроде rsync-- но это всего лишь предложения. Суть в том, что у вас должен быть инструмент, с которым вам будет удобно работать для таких вещей (выборочное резервное копирование поддеревьев каталогов в файловой системе). Самый простой способ на небольшой установке, вероятно, просто tar(или zip).

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

Итак, если высохраняйте резервную копиюв этом случае все, что вам нужно сделать, чтобы «создать копию Apache», — это установить Apache, затем развернуть резервную копию — вы распаковываете, синхронизируете rsync, клонируете git и т. д., копируете конфигурацию в нужное место и вуаля.

Затем у вас может возникнуть проблема с отсутствующим программным обеспечением — дистрибутивы могут по-разному объединять модули Apache, вам может понадобиться SQL и т. д. — но это довольно просто.

Связанный контент