Изменить директорию файлов apache
В Ubuntu веб-сервер Apache2 по умолчанию хранит файлы в корневом каталоге /var/www/html, который обычно расположен в одной файловой системе вместе с остальными компонентами операционной системы. Но в некоторых ситуациях лучше переместить этот каталог в другое место, например в отдельную смонтированную файловую систему.
При обслуживании нескольких веб-сайтов с помощью одного экземпляра Apache можно поместить каталог document root каждого сайта в отдельный том. Это позволяет масштабировать сервер в соответствии с потребностями конкретного сайта или клиента.
Требования
- Предварительно настроенный сервер Ubuntu 16.04.
- Пользователь с доступом к sudo (о настройке такого пользователя можно узнать здесь).
- Установленный сервер Apache2 (инструкции по установке можно найти в специальном разделе этого мануала).
- Новое место хранения для document root. Выберите новое местонахождение файлов сайта согласно вашим потребностям. Если вы хотите переместить корневой каталог на другое устройство хранения данных, выберите точку монтирования устройства.
В данном мануале показано, как переместить данные в блочное хранилище, смонтированное в /mnt/volume-nyc1-01. Это поможет вам переместить каталог данных в новое место независимо от того, какое хранилище вы используете.
1: Копирование файлов в новый каталог
Свежая установка Apache использует в качестве корневого каталога /var/www/html. Однако на старых установках может быть несколько каталогов document root в зависимости от количества виртуальных хостов.
Сначала нужно узнать местонахождение дополнительных корневых каталогов. Чтобы сфокусировать своё внимание только на активных сайтах, ищите каталоги только сайтов из /etc/apache2/sites-enabled. С помощью флага -R команда grep вернёт DocumentRoot и имя файла:
grep -R “DocumentRoot” /etc/apache2/sites-enabled
Вывод имеет примерно такой вид:
sites-enabled/000-default.conf DocumentRoot /var/www/html
Выяснив местонахождение корневых каталогов, можно скопировать их на новое устройство с помощью rsync. Флаг –a сохраняет привилегии и другие свойства каталога. Флаг –v предоставляет подробный вывод.
Примечание: Убедитесь, что в названии каталога нет конечной косой черты (которую система может добавить, если вы используете автодополнение). Если такой слеш есть, rsync будет сбрасывать содержимое каталога в точку монтирования, а не в каталог.
sudo rsync -av /var/www/html /mnt/volume-nyc1-01
2: Настройка Apache2
Apache2 использует глобальные и индивидуальные конфигурационные файлы.
Если вы работаете со старой установкой веб-сервера, вам нужно отредактировать все виртуальные хосты, полученные в выводе grep. В данном примере нужно откорректировать два виртуальных хоста: 000-default.conf и default-ssl.conf
Откройте файл 000-default. Conf:
sudo nano /etc/apache2/sites-enabled/000-default.conf
Найдите директиву DocumentRoot и укажите в ней новое местонахождение корневого каталога.
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01/html
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /mnt/volume-nyc1-01/html/ >
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
</Directory>
Сохраните изменения и приступайте к настройке SSL. В свежей установке SSL ещё не настроен, но отредактировать стандартные настройки ssl-default.conf лучше сейчас, чтобы избежать возникновения ошибок в дальнейшем.
sudo nano /etc/apache2/sites-available/ssl-default.conf
<IfModule mod_ssl.c>
<VirtualHost _default_:443>
ServerAdmin webmaster@localhost
DocumentRoot /mnt/volume-nyc1-01
. . .
Примечание: Если поддержка SSL не включена, файл ssl-default.conf находится только в /etc/apache2/sites-available. Если вы включили поддержку SSL с помощью a2ensite, в sites-available будет создана символьная ссылка на /etc/apache2/sites-enabled. В таком случае можно редактировать этот файл в любом из каталогов.
3: Перезапуск Apache
Откорректировав все настройки, проверьте синтаксис на наличие ошибок с помощью configtest:
sudo apachectl configtest
На свежей установке команда вернёт:
AH00558: 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
Syntax OK
Если команда не сообщила об ошибках, можете перезапустить сервер.
sudo systemctl reload apache2
После перезапуска посетите сайты, чьи корневые каталоги вы переместили на новое устройство, и убедитесь, что они работают. После этого можно удалить оригинальный каталог.
Заключение
Теперь вы знаете, как перемещать корневой каталог Apache на новое устройство. Это очень полезный навык в управлении веб-сервером, позволяющий без труда разместить несколько сайтов на одном сервере или быстро перейти на новое устройство хранения данных.
используйте свой любимый редактор (я рекомендую Vim) и ищите DocumentRoot и меняем его на /users/spencer/projects . Также посмотрите немного ниже для настройки, которая выглядит следующим образом:
вы также хотите изменить то, что находится в кавычках в новый каталог. Это дает Apache доступ для чтения из этого каталога, когда пользователь делает просьба, которая призывает его.
редактировать: файлы конфигурации сайта Apache2 теперь обычно хранятся в /etc/apache2/sites-available/ (Debian, Ubuntu и т.д.).
обратите внимание, что это относится только к Ubuntu 14.04 LTS и более новым выпускам.
в моем Ubuntu 14.04 LTS корень документа был установлен в /var/www/html . Он был настроен в следующем файле:
так что просто сделайте
и измените следующую строку, что вы хотите:
, и /var/www/html в свой крупный каталог
и сохранить его.
после сохранения изменений просто перезапустите веб-сервер apache2, и все будет готово:)
Если вы предпочитаете графический текстовый редактор, вы можете просто заменить sudo nano by a gksu gedit .
мне пришлось редактировать /etc/apache2/sites-available/default . Линии такие же, как упомянутые RDL.
Это для Ubunutu 14.04:
в файле /etc/apache2/apache2.conf это должно быть, как показано ниже, без имени каталога:
и в файл /etc/apache2/sites-available/000-default.conf вы должны включить имя пользовательского каталога, т. е. www:
если не как выше, это даст вам ошибку при загрузке сервера: Forbidden You don't have permission to access / on this server
правильный способ изменить каталог или запустить из нескольких каталогов под другим портом для apache2 выглядит следующим образом:
для apache2 файлы конфигурации находятся в папке /etc/apache2 и не использует один файл конфигурации, как в старых версиях, но разделен на меньшие файлы конфигурации, с /etc/apache2/apache2.conf будучи основным файлом конфигурации. Для обслуживания файлов из другого Каталога нам нужен новый файл virtualhost conf. Файлы virtualhost conf расположены в /etc/apache2/sites-available (не редактируйте файлы в пределах разрешенных сайтов). Установка apache по умолчанию использует файл virtualhost conf 000-default.conf .
я удалил не важные строки из вышеуказанного файла для краткость.
теперь отредактируйте файл Apache conf /etc/apache2/apache2.conf по команде sudo gedit apache2.conf и находим строку <Directory /var/www/> и под закрывающим тегом </Directory> , добавьте следующий ниже:
на a2ensite команда в основном создает символическую ссылку на файл conf в каталоге с поддержкой сайта
изменить порт и запустить из нескольких каталогов на различных порты:
теперь, если вам нужно запустить каталог на другом порту, измените номер порта с 80 на 8080, отредактировав файл virtualhost как:
и монтаж /etc/apache2/ports.conf и добавить Listen 8080 после строки Listen 80
Теперь перезагрузите или перезагрузите сервер с помощью команды sudo service apache2 restart . Теперь доступ к каталогам можно получить из localhost и localhost:8080
Я работал с лампой и изменить корневую папку документа я отредактировал по умолчанию файл, который есть в в/etc/apache2 не/сайты-скачать папка. Если вы хотите сделать то же самое, просто отредактируйте следующим образом
после этого, если вы наберете localhost в браузере, он загрузится * / главная / имя пользователя / new_root_folder* содержание.
на apache2 не on Linux Mint 17.3 Cinnamon 64-бит следующие работы:
на /etc/apache2/sites-available/ открыть 000-default.conf файл и измените Корень Документа абсолютный путь к директории.
sudo vim /etc/apache2/sites-available/000-default.conf
sudo vim /etc/apache2/apache2.conf
на моей машине это выглядело так:
Примечание: на первом шаге вы, вероятно, хотите изменить Корень Документа на default-ssl.conf файл, а также для целей SSL. Но, насколько я могу судить, это не требуется для запуска общей среды разработки.
перезапустите Apache с помощью sudo service apache2 restart
Если вы используете Ubuntu 16.04. Пожалуйста, обновите 000-default.conf в каталоге /etc/apache2 / sites-доступно.
здесь--> Издание веб-мастер@localhost DocumentRoot так /var/www/html / YourFolder
если кто-то установил LAMP на /opt папка затем /etc/apache2 не то, что вы ищете.
измените строку в этой папке и сохраните ее из терминала.
в apache версии 2.4.18 (Ubuntu).
1.перейдите в этот файл /etc/apache2 / apache2.conf поиск <Directory /var/www/> и замените в каталог .
2.перейдите в /etc/apache2/sites-available / 000-по умолчанию.conf поиск DocumentRoot /var/www/html и замените на DocumentRoot.
Я /var/www быть мягкой ссылкой на необходимый каталог ( например. /users/username/projects ) и после этого все было хорошо.
, конечно, /var/www необходимо удалить -- или переименовать.
Если вы используете Linux Mint (личное мнение, из всех дистрибутивов это делает меня счастливым), следуйте этому:
1-Перейти к /etc/apache2 / sites-доступно и редактировать 000-по умолчанию.conf 2-Поиск DocumentRoot, пример DocumentRoot / var / www / html вы переходите в соответствующий каталог; 3-откройте терминал и введите: sudo service apache2 restart
редактировать----- Я понимаю, что в Mint вы идете на /etc/apache2/apache.conf, замените /var / www на ваш соответствующий путь, чем перезагрузите сервер (Шаг 3).
относится к Ubuntu 14.04 и более поздние выпуски. Перед внесением изменений обязательно сделайте резервную копию следующих файлов.
1.Открыть /etc/apache2/apache2.conf и ищите <Directory /var/www/> директива и заменить путь на /home/<USERNAME>/public_html . Вы можете использовать * вместо .
2.Открыть /etc/apache2/sites-available/000-default.conf и заменить DocumentRoot значение свойства из /var/www/html to /home/<USERNAME>/public_html . Также <Directory /var/www/html> to <Directory /home/<USERNAME>/public_html .
3.Открыть /etc/mods-available/php7.1.conf . Найти и прокомментировать следующий код
не получится ON php_admin_flag engine OFF флаг как причина упоминается в комментарии выше кода директивы. Также версия php может быть 5.0, 7.0 или все, что вы установили.
создать на home/<USERNAME> .
перезапустите службу apache, выполнив команду sudo service apache2 restart .
Test, запустив пример сценария на сервере.
вместо изменения каталога по умолчанию вашего веб-сервера, вы можете создать Alias .
поэтому вы должны создать два файла:
- один /etc/apache2/sites-available/ и
- один /etc/apache2/sites-enabled/
назовите их обоих чем-то вроде example.conf и вставить в оба файла Alias <where you want to access (eg. /example)> "<your files directory (eg. /home/user/host/example)>"
тогда вы должны иметь доступ к нему с //localhost/example .
EDIT:
может быть, я забыл упомяните некоторые команды, потому что я их забыл :P
или вам нужно отредактировать разрешения папки / файла, к которому вы пытаетесь получить доступ.
обратите внимание, что это применимо только для Ubuntu 14.04 LTS и более новых версий.
в моем Ubuntu 14.04 LTS корень документа был установлен в /var/www/html . Он был настроен в следующем файле:
так что просто сделайте
и измените следующую строку, что вы хотите:
и
и найти этот
, и /var/www/html в свой крупный каталог
и сохранить его.
после сохранения изменений просто перезапустите веб-сервер apache2 и все будет готово:)
Если вы предпочитаете графический текстовый редактор, вы можете просто заменить sudo nano на gksu gedit .
мне пришлось редактировать /etc/apache2/sites-available/default . Строки такие же, как указано в RDL.
Это для Ubunutu 14.04:
в файле /etc/apache2/apache2.conf это должно быть как ниже без имени каталога:
и в файл /etc/apache2/sites-available/000-default.conf вы должны включить имя пользовательского каталога, т. е. www:
если не как выше это даст вам ошибку при загрузке сервера: Forbidden You don't have permission to access / on this server
изменить порт и запустить из нескольких каталогов на различных порты:
Я работал с лампой и чтобы изменить корневую папку документа я отредактировал по умолчанию файл, который есть в /etc / apache2 / sites-доступно папка. Если вы хотите сделать то же самое, просто отредактируйте следующим образом
после этого, если вы наберете localhost в браузере, он загрузится * / home / username / new_root_folder* содержание.
Если вы используете Ubuntu 16.04. Пожалуйста, обновите 000-по умолчанию.conf в каталоге / etc/apache2 / sites-доступно.
здесь--> Издание webmaster@localhost DocumentRoot /var / www / html / YourFolder
в apache версии 2.4.18 (Ubuntu).
1.перейдите в этот файл /etc/apache2 / apache2.конф ищите <Directory /var/www/> и заменить в каталог .
2.перейдите в /etc/apache2/sites-available / 000-default.конф ищите DocumentRoot /var/www/html и заменить на ваш DocumentRoot.
Я /var/www чтобы быть мягкой ссылкой на требуемый каталог (например. /users/username/projects ) и все было хорошо после этого.
, конечно, /var/www должен быть удален, или переименован.
Хотите улучшить этот вопрос? Обновите вопрос, чтобы он соответствовал теме переполнения стека.
Закрыто 2 года назад .
Кто-нибудь знает, как изменить корень документа на сервере Apache? Я в основном хочу localhost прийти из /users/spencer/projects каталога, а не /var/www .
редактировать
Stack Overflow - сайт для вопросов программирования и разработки. Этот вопрос кажется не по теме, потому что он не касается программирования или разработки. Смотрите, какие темы я могу задать здесь, в Справочном центре. Возможно, будет лучше задать вопрос об отказе сервера или обмене стека для веб-мастеров .Используйте ваш любимый редактор (я рекомендую Vim ), найдите DocumentRoot и измените его на /users/spencer/projects . Также посмотрите немного ниже для настройки, которая выглядит следующим образом:
Вы также захотите изменить то, что в кавычках, на ваш новый каталог. Это дает Apache доступ для чтения из этого каталога, когда пользователь делает запрос, который вызывает его.
Редактировать : файлы конфигурации сайта Apache2 теперь обычно хранятся в /etc/apache2/sites-available/ (Debian, Ubuntu и т. Д.).
Можно ли одновременно включить / var / www и / home / myusername / projects_folder? А как мне настроить? Спасибо.Обратите внимание, что это относится только к Ubuntu 14.04 LTS и более новым версиям.
В моем Ubuntu 14.04 LTS корень документа был установлен на /var/www/html . Это было настроено в следующем файле:
Так что просто сделай
и измените следующую строку на то, что вы хотите:
и перейдите /var/www/html в нужный каталог
После сохранения изменений просто перезапустите веб-сервер apache2, и все будет готово :)
Если вы предпочитаете графический текстовый редактор, вы можете просто заменить sudo nano на gksu gedit .
@Paul Lo: я не пробовал это на Ubuntu 13.10, только на Ubuntu 14.04; Поскольку я почти уверен, что в первый раз, когда я установил apache (который был на Ubuntu 12.04), такого каталога не было. Так что да, я думаю, что это доступно только на Ubuntu 14.04 LTS и новее. Тем не менее, вы можете посмотреть на другие ответы. Прогнозы говорят, что они помогали другим людям, возможно, они также работают с Ubuntu 13.10. Однако, спасибо за вопрос, я только что отредактировал эту информацию в ответе, чтобы никто другой не попал в ловушку, пытаясь сделать это с более старыми версиями Ubuntu (y) @mozzbozzm, ты прав. Только 14.04. Действительно странный выбор, теперь внезапно имеющий var/www/html по умолчанию root. Они на самом деле пытаются тратить время людей? :) You don't have permission to access / on this server. Когда я нажимаю localhost: 80 в моем браузере, я получаю запрещенную ошибку . Нужно ли менять порт? @ Коста Я решил проблему, добавив <Directory path_to_directory> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> в /etc/apache2/apache2.confЯ должен был редактировать /etc/apache2/sites-available/default . Линии такие же, как указано в RDL.
Предложенное редактирование @pabloab содержало следующее: «Apache 2.4 и выше требует .conf в конце и по умолчанию имеет 000- префикс as». Результат есть /etc/apache2/sites-available/000-default.conf . Я не проверял это, но это может помочь некоторым людям. ^^ это исправлено. Где документально подтверждено, что мне требуется .conf в конце файлов, доступных на моих сайтах. У меня есть около 20 виртуальных хостов, которые были отключены и отключены после обновления, и через пару часов обнаружение этого и переименование файлов, доступных на моих сайтах, исправили это для меня.Это для Убунуту 14.04:
В файле /etc/apache2/apache2.conf это должно быть так, как показано ниже без имени каталога:
и в файле /etc/apache2/sites-available/000-default.conf вы должны включить пользовательское имя каталога, т. е. www:
Если не так, как указано выше, вы получите ошибку при загрузке сервера: Forbidden You don't have permission to access / on this server
Спасибо, приятель :) Это сработало для меня в Ubuntu 16.04Правильный способ изменить каталог или запустить его из нескольких каталогов под другим портом для apache2:
Для apache2 файлы конфигурации находятся под /etc/apache2 и не используют один файл конфигурации, как в более старых версиях, но разбиты на более мелкие файлы конфигурации, /etc/apache2/apache2.conf являясь основным файлом конфигурации. Чтобы обслуживать файлы из другого каталога, нам нужен новый conf-файл virtualhost. Файлы conf виртуального хоста находятся в /etc/apache2/sites-available (не редактируйте файлы на сайтах с поддержкой). Установка Apache по умолчанию использует файл conf Virtualhost 000-default.conf .
Для краткости я удалил несущественные строки из вышеуказанного файла. Вот DocumentRoot путь к каталогу, из которого должны обслуживаться файлы сайта, например index.html .
Теперь отредактируйте файл apache conf /etc/apache2/apache2.conf , введя команду sudo gedit apache2.conf и найдите строку <Directory /var/www/> и ниже закрывающего тега </Directory> , добавьте следующее ниже:
Команда в a2ensite основном создает символическую ссылку на файл conf в каталоге с поддержкой сайта
Чтобы изменить порт и запустить его из нескольких каталогов на разных портах:
Теперь, если вам нужно запустить каталог на другом порту, измените номер порта с 80 на 8080, отредактировав файл virtualhost как:
и редактирование /etc/apache2/ports.conf и добавление Listen 8080 чуть ниже линии Listen 80
Теперь перезагрузите или перезагрузите сервер с помощью команды sudo service apache2 restart . Теперь к обоим каталогам можно получить доступ localhost и localhost:8080
Читайте также: