Как переместить веб-рут Apache на новое место в Ubuntu 16.04

Вступление

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

В этом руководстве мы покажем вам, как переместить корень документа Apache в новое место.

Предпосылки

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

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

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

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

В этом примере мы будем использовать каталог + / mnt / volume-nyc1-01 +. Если вы используете блочное хранилище в DigitalOcean, this guide покажет вам, как смонтировать диск перед продолжением с этим уроком.

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

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

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

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

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

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

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

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

sudo rsync -av /var/www/

Теперь мы готовы обновить конфигурацию.

Шаг 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 />
               Options FollowSymLinks
               AllowOverride None
      </Directory>
     <Directory >
               Options Indexes FollowSymLinks MultiViews
               AllowOverride None
               Require all granted
       </Directory>

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

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

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

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

Шаг 3 - Перезапуск Apache

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

sudo apachectl configtest

Вы will получите отзыв от + 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