Linux

Как изменить корневой каталог сервера Apache

Как я могу изменить корень документа сервера Apache? Я в основном хочу, чтобы «localhost» приходил из каталога «/users/spencer/projects» вместо «/var/www».

В конце концов я разобрался с этим. Некоторые предлагали изменить файл httpd.conf, но я нашел файл в /etc/apache2/sites-available/default и изменил корневой каталог с «/var/www» на «/home/myusername/projects_folder», и это сработало. Какие еще есть варианты решения данного вопроса?

 

Ответ 1

Обратите внимание, что это относится только к Ubuntu 14.04 LTS (Trusty Tahr) и более новым версиям. В моей Ubuntu 14.04 LTS корень документа был установлен в «/var/www/html». Он был настроен в следующем файле:

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

 Так что просто сделайте:

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

 и измените следующую строку так, как вам нужно:

DocumentRoot /var/www/html

 Также сделайте:

sudo nano /etc/apache2/apache2.conf

 и найдите это:

<Directory /var/www/html/>

Options Indexes FollowSymLinks

AllowOverride None

Require all granted

</Directory>

 Измените «/var/www/html» на желаемый каталог и сохраните его. После сохранения изменений просто перезапустите веб-сервер Apache 2, и все будет готово :)

sudo service apache2 restart

 Если вы предпочитаете графический текстовый редактор, вы можете просто заменить «sudo nano» на «gksu gedit».

 

Ответ 2

Вам нужно изменить параметр DocumentRoot в файле httpd.conf. Скорее всего, он будет находиться в каталоге /etc/apache2/conf/httpd.conf. Используйте ваш любимый редактор (я рекомендую Vim), найдите DocumentRoot и измените его на /users/spencer/projects. Также найдите чуть ниже настройки, которые выглядят следующим образом:

<Directory "/var/www">

 Вы также захотите изменить то, что находится в кавычках, на ваш новый каталог. Это даст Apache доступ к чтению из этой директории, когда пользователь делает запрос с обращением к ней. Теперь перезапустите службу Apache (httpd -k restart), и все будет готово. Файлы конфигурации сайтов Apache 2 теперь обычно хранятся в /etc/apache2/sites-available/ (Debian, Ubuntu и т. д.).

 

Ответ 3

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

Для Apache 2 конфигурационные файлы расположены в каталоге /etc/apache2 и не используют единый конфигурационный файл, как в старых версиях, а разбиты на более мелкие конфигурационные файлы, причем /etc/apache2/apache2.conf является основным конфигурационным файлом. Чтобы обслуживать файлы из другого каталога, нам нужен новый файл virtualhost conf. Файлы конфигурации virtualhost находятся в каталоге /etc/apache2/sites-available (не редактируйте файлы внутри sites-enabled). При установке Apache по умолчанию используется файл virtualhost conf 000-default.conf.

Начните с создания нового файла virtualhost, скопировав файл virtualhost, используемый установкой Apache по умолчанию (тот, который запускается на localhost на порту 80). Перейдите в каталог /etc/apache2/sites-available и сделайте копию sudo cp 000-default.conf example.com.conf, теперь отредактируйте файл sudo gedit example.com.conf следующим образом:

<VirtualHost *:80>

    ServerAdmin example@localhost

    DocumentRoot /home/ubuntu/example.com

</VirtualHost>

 Для краткости я удалил несущественные строки из приведенного выше файла. Здесь DocumentRoot — это путь к директории, из которой будут обслуживаться файлы сайта, например, index.html. Создайте директорию, из которой вы хотите обслуживать файлы, например, mkdir example.com, и измените владельца и группу по умолчанию директории, например, если имя вашего зарегистрированного пользователя ubuntu, измените разрешения как sudo chown ubuntu:www-data example.com. Это предоставит полный доступ пользователю ubuntu и разрешит доступ на чтение и выполнение для группы www-data. Теперь отредактируйте конфигурационный файл Apache /etc/apache2/apache2.conf, выполнив команду sudo gedit apache2.conf, найдите строку <Directory /var/www/> и ниже закрывающего тега </Directory> добавьте следующее:

<Directory /home/ubuntu/example.com>

    Options Indexes FollowSymLinks Includes ExecCGI

    AllowOverride All

    Require all granted

</Directory>

 Теперь есть две команды для включения или отключения конфигурационных файлов virtualhost: a2ensite и a2dissite соответственно. Поскольку наш файл example.com.conf использует тот же порт (80), что и файл конфигурации по умолчанию (000-default.conf), мы должны отключить файл конфигурации по умолчанию, выполнив команду sudo a2dissite 000-default.conf, и включить наш файл конфигурации виртуального хоста командой sudo a2ensite example.com.conf. Теперь перезапустите сервер командой sudo service apache2 restart. Теперь Apache обслуживает файлы из каталога example.com на localhost на стандартном порту 80.

Команда a2ensite в основном создает символическую ссылку на конфигурационный файл в директории site-enabled. Не редактируйте файлы в директории sites-enabled (или *-enabled).

Для изменения порта и запуска из нескольких каталогов на разных портах:

Теперь, если вам нужно запустить каталог на другом порту, измените номер порта с 80 на 8080, отредактировав файл virtualhost следующим образом:

<VirtualHost *:8080>

    ServerAdmin user@localhost

    DocumentRoot /home/ubuntu/work

</VirtualHost>

 А также отредактируйте /etc/apache2/ports.conf и добавьте Listen 8080 чуть ниже строки Listen 80.

Теперь мы можем включить файл конфигурации виртуального хоста по умолчанию, который работает на порту 80, поскольку каталог example.com использует порт 8080, как sudo a2ensite 000-default.conf. Теперь перезапустите или перезагрузите сервер командой sudo service apache2 restart. Теперь доступ к обоим каталогам возможен с localhost и localhost:8080.

 

Ответ 4

Я работал с LAMP, и, чтобы изменить корневую папку документа, я отредактировал файл по умолчанию, который находится в папке /etc/apache2/sites-available. Если вы хотите сделать то же самое, просто отредактируйте файл следующим образом:

DocumentRoot /home/username/new_root_folder

    <Directory />

        Options FollowSymLinks

        AllowOverride None

    </Directory>

    <Directory /home/username/new_root_folder>

        Options Indexes FollowSymLinks MultiViews

        AllowOverride None

        Order allow,deny

        allow from all

    </Directory>

После этого, если вы наберете в браузере «localhost», он загрузит содержимое /home/username/new_root_folder.

 

Ответ 5

Для Apache 2 на Linux Mint 17.3 Cinnamon 64-bit работает следующее:

  1. В /etc/apache2/sites-available/ откройте файл 000-default.conf и измените Document Root на абсолютный путь к вашей директории.

sudo vim /etc/apache2/sites-available/000-default.conf

  1. В папке /etc/apache2/ откройте файл httpd.conf и добавьте тег <Directory>, ссылающийся на ваш каталог и содержащий те же настройки, что и тег для var/www.

sudo vim /etc/apache2/apache2.conf

На моей машине это выглядело следующим образом:

<Directory /home/my_user_name/php/>

Options Indexes FollowSymLinks

AllowOverride All

Require all granted

 </Directory>

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



Ответ 6

Нижеследующее относится к Ubuntu 14.04 (Trusty Tahr) и более поздним версиям. Перед внесением изменений обязательно сделайте резервную копию следующих файлов.

  1. Откройте файл /etc/apache2/apache2.conf, найдите директиву <Directory /var/www/> и замените путь на /home/<USERNAME>/public_html. Вы можете использовать «*» вместо «.»

  1. Откройте /etc/apache2/sites-available/000-default.conf и измените свойство DocumentRoot value с /var/www/html на /home/<USERNAME>/public_html. Также <Directory /var/www/html> на <Directory /home/<USERNAME>/public_html.

  1. Откройте файл /etc/mods-available/php7.1.conf. Найдите и закомментируйте следующий код:

php_admin_flag engine Off

Не включайте флаг php_admin_flag engine OFF, так как причина указана в комментарии над кодом Директивы. Также версия PHP может быть 5.0, 7.0 или любая другая, которая у вас установлена.

Создайте каталог public_html в home/<USERNAME>.

Перезапустите службу Apache, выполнив команду sudo service apache2 restart.

Протестируйте, запустив пример скрипта на сервере.

Схожие статьи

Linux

Стоит ли блокировать ICMP?

Linux

Да или нет в сценарии Bash

Linux

Существующие решения, позволяющие использовать контроль версий для файлов конфигурации сервера

Linux

Кэширование/предварительная загрузка файлов Linux в RAM