Как переместить веб-корень Apache на новое место в Debian 8

Вступление

В Debian 8 веб-сервер Apache2 по умолчанию хранит свои документы в + / var / www / html. Этот каталог расположен в корневой файловой системе вместе с остальной частью операционной системы. Вы можете переместить корень документа в другое место, например в отдельную смонтированную файловую систему. Например, если вы обслуживаете несколько веб-сайтов из одного и того же экземпляра Apache, размещение корня документа каждого сайта на своем собственном томе позволяет масштабировать в соответствии с потребностями конкретного сайта или клиента.

В этом руководстве вы переместите корень документа Apache в новое место, переместив файлы и изменив конфигурационные файлы Apache.

Предпосылки

Для завершения этого руководства вам понадобится:

  • Сервер Debian 8 с пользователем без полномочий root с привилегиями + sudo +. Подробнее о том, как настроить пользователя с этими привилегиями, вы можете узнать из нашего руководства Initial Server Setup с Debian 8. ,

  • Веб-сервер Apache2: если вы еще не настроили его, в разделе Apache углубленной статьи https://www.digitalocean.com/community/tutorials/how-to-install-linux-apache-mysql -php-lamp-stack-on-debian-8 [Как установить стек Linux, Apache, MySQL, PHP (LAMP) в Debian 8] может помочь вам.

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

В этом руководстве мы будем использовать каталог + / mnt / volume-nyc1-01 +, который указывает на том блочного хранилища, подключенного к серверу. Если вы хотите использовать хранилище блоков для хранения своих веб-страниц, пройдите учебник How To Use Block Storage on DigitalOcean, чтобы смонтировать диск перед продолжением.

Шаг 1 - Копирование файлов в новое место

В новой установке Apache корневой каталог документа находится по адресу + / var / www / html. Однако, если вы работаете с существующим сервером, у вас может быть существенно другая настройка, включая несколько корней документов в соответствующих директивах VirtualHost.

Вы можете искать расположение дополнительных корней документа, используя + grep +. Выполните поиск в каталоге + / etc / apache2 / sites-enabled +, чтобы сосредоточиться на активных сайтах, с помощью следующей команды:

grep -R "DocumentRoot" /etc/apache2/sites-enabled

Флаг + -R + гарантирует, что + grep + напечатает как DocumentRoot, так и имя файла в его выводе.

Результат будет выглядеть примерно так, хотя в существующей установке имена и количество результатов могут отличаться:

Outputsites-enabled/000-default.conf   DocumentRoot /var/www/html

Используйте обратную связь от + grep +, чтобы убедиться, что вы перемещаете файлы, которые вы хотите переместить, и обновляете их соответствующие файлы конфигурации.

Теперь, когда вы подтвердили местоположение своего корневого документа, скопируйте файлы в их новое местоположение с помощью + rsync +.

Сначала установите + rsync + с

sudo apt-get install rsync

Затем выполните эту команду, чтобы скопировать файлы:

sudo rsync -av /var/www/html

Использование флага + -a + сохраняет разрешения и другие свойства каталога, в то время как + -v + предоставляет подробный вывод, чтобы вы могли следить за ходом процесса. Узнайте больше об использовании + rsync + в учебном руководстве https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps Как использовать Rsync для синхронизации локальных и удаленных каталогов на VPS.

Файлы теперь находятся в новом месте, но Apache все еще ищет в старом месте, так что давайте исправим это.

Шаг 2 - Обновление файлов конфигурации

Apache2 использует как глобальные, так и специфичные для сайта файлы конфигурации. Для получения справочной информации об иерархии конфигурационных файлов, посмотрите на https://www.digitalocean.com/community/tutorials/how-to-configure-the-apache-web-server-on-an-ubuntu-or-debian -vps # the-apache-file -ierarchy-in-ubuntu-and-debian [Как настроить веб-сервер Apache в Ubuntu или Debian VPS].

Если вы работаете с существующей установкой, вам следует изменить файлы виртуального хоста, которые вы нашли ранее, с помощью команды + grep +. В этом примере мы рассмотрим два файла виртуального хоста, которые поставляются с Apache по умолчанию: + 000-default.conf + и + default-ssl.conf +.

Начните с редактирования файла + 000-default.conf:

sudo nano /etc/apache2/sites-enabled/000-default.conf

Найдите строку, которая начинается с + DocumentRoot +, и обновите ее, указав новое местоположение:

/etc/apache2/sites-enabled/000-default.conf

<VirtualHost *:80>
...
       ServerAdmin webmaster@localhost
       DocumentRoot

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

При новой установке на сайте по умолчанию нет записей + Directory +. Добавьте следующий код в файл конфигурации, чтобы Apache мог обслуживать файлы из вашего нового местоположения:

/etc/apache2/sites-enabled/000-default.conf

...
    ServerAdmin webmaster@localhost
    DocumentRoot /mnt/volume-nyc1-01/html










...

Первый блок + Directory + устанавливает некоторые ограничивающие разрешения по умолчанию, а второй блок настраивает параметры для нового веб-корня в + / mnt / volume-nyc1-01 / html / +

После внесения необходимых изменений сохраните файл.

Далее мы обратим наше внимание на конфигурацию SSL. При новой установке SSL еще не будет настроен, но вы, вероятно, захотите обновить файл + ssl-default.conf +, чтобы избежать некоторых проблем позже, если вы не помните, что вам нужно внести изменения.

Отредактируйте файл:

sudo nano /etc/apache2/sites-available/ssl-default.conf

Затем внесите те же изменения, которые вы сделали ранее, изменив + DocumentRoot + и убедившись, что правила + Directory + настроены правильно:

/etc/apache2/sites-available/ssl-default.conf

...
<IfModule mod_ssl.c>
 <VirtualHost _default_:443>
    ServerAdmin webmaster@localhost
    DocumentRoot










...

После того, как вы закончили изменения конфигурации, убедитесь, что синтаксис правильный, с помощью следующей команды:

sudo apachectl configtest

Вы увидите вывод, подобный следующему:

OutputAH00558: apache2: Could not reliably determine the server's fully qualified domain name,
using 127.0.1.1. Set the 'ServerName' directive globally to suppress this message

При установке по умолчанию вы увидите предыдущее сообщение, которое можете смело игнорировать. Если вы видите + Синтаксис OK +, перезапустите веб-сервер. В противном случае отследите и устраните обнаруженные проблемы.

Используйте следующую команду для перезапуска Apache:

sudo systemctl reload apache2

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

Заключение

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

Если вы управляете загруженным или растущим веб-сайтом, вам может быть интересно узнать https://www.digitalocean.com/community/tutorials/how-to-use-apache-jmeter-to-perform-load-testing- на веб-сервере [как загрузить тестовый веб-сервер], чтобы определить узкие места в производительности, прежде чем вы столкнетесь с ними на производстве. Вы также можете узнать больше об улучшении производственного опыта в этом сравнении https://www.digitalocean.com/community/tutorials/5-ways-to-improve-your-production-web-application-server-setup[five улучшить настройку сервера вашего производственного веб-приложения.

Related