it-swarm.com.ru

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

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

Правка

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

222
Spencer Cooley

Вам нужно изменить настройку DocumentRoot в вашем файле httpd.conf. Скорее всего, это будет что-то вроде /etc/Apache2/conf/httpd.conf

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

<Directory "/var/www">

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

Теперь перезапустите службу Apache (httpd -k restart), и все будет хорошо.

Edit: файлы конфигурации сайта Apache2 теперь обычно хранятся в /etc/Apache2/sites-available/ (Debian, Ubuntu и т.д.).

188
RDL

Обратите внимание, что это относится только к Ubuntu 14.04 LTS и более новым версиям.

В моем 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 на ваш предпочтительный каталог

и сохранить его.

После сохранения изменений просто перезапустите веб-сервер Apache2, и все будет готово :)

Sudo service Apache2 restart


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

245
mozzbozz

Мне пришлось редактировать /etc/Apache2/sites-available/default. Линии такие же, как упомянуто RDL.

42
Nick

Это для Убунуту 14.04:

В файле /etc/Apache2/Apache2.conf это должно быть так, как показано ниже без имени каталога:

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

и в файле /etc/Apache2/sites-available/000-default.conf вы должны включить произвольное имя каталога, т.е. www:

DocumentRoot /home/username/www

Если не так, как указано выше, при загрузке сервера появится сообщение об ошибке: Forbidden You don't have permission to access / on this server

19
androsfat

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

Для Apache2 файлы конфигурации расположены в /etc/Apache2 и не используют один файл конфигурации, как в более старых версиях, но разбиты на более мелкие файлы конфигурации, где /etc/Apache2/Apache2.conf является основным файлом конфигурации. Чтобы обслуживать файлы из другого каталога, нам нужен новый conf-файл virtualhost. Файлы conf виртуального хоста находятся в /etc/Apache2/sites-available (не редактируйте файлы на сайтах с поддержкой). Установка Apache по умолчанию использует файл conf Virtualhost 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 [email protected]
    DocumentRoot /home/ubuntu/example.com    
</VirtualHost>

Для краткости я удалил ненужные строки из вышеуказанного файла. Здесь DocumentRoot - это путь к каталогу, из которого должны обслуживаться файлы веб-сайта, например index.html.

Создайте каталог, из которого вы хотите обслуживать файлы, например; mkdir example.com и измените владельца и группу по умолчанию для каталога, например, если вы вошли в систему с именем пользователя ubuntu, измените права доступа на Sudo chown ubuntu:www-data example.com. Это предоставляет полный доступ пользователю ubuntu и позволяет читать и выполнять доступ к группе www-data.

Теперь отредактируйте файл Apache conf /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>

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

Теперь перезагрузите или перезагрузите сервер с помощью команды Sudo service Apache2 restart. Теперь Apache обслуживает файлы из каталога example.com на localhost на порту по умолчанию 80.

Команда a2ensite в основном создает символическую ссылку на файл conf в каталоге с поддержкой сайта

Не редактируйте файлы в директориях с поддержкой сайтов (или * -enabled), как указано в этом ответе https://stackoverflow.com/a/41568701/2532763

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

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

<VirtualHost *:8080>
    ServerAdmin [email protected]
    DocumentRoot /home/ubuntu/work
</VirtualHost>

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

Теперь мы можем включить файл conf Virtualhost по умолчанию, который работает на порту 80, так как каталог example.com использует порт 8080, как Sudo a2ensite 000-default.conf

Теперь перезагрузите или перезагрузите сервер с помощью команды Sudo service Apache2 restart. Теперь оба каталога доступны из localhost и localhost:8080

8
lordvcs

Для Apache2 on 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

  2. В /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. Но, насколько я могу судить, этого не требуется для запуска общей среды разработки.

4
stackato

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

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 * content.

4
Shashidhara

Если вы не смогли найти http.conf и пошли по пути Ника. 

Перезапустите Apache, используя Sudo service Apache2 restart

3
Nitin

Если вы используете Ubuntu 16.04 . Пожалуйста, обновите 000-default.conf в каталоге /etc/Apache2/sites-available.

здесь -> ServerAdmin вебмастер @ localhost DocumentRoot/var/www/html/YourFolder

2
Shashank Saxena

Я сделал /var/www мягкой ссылкой на нужный каталог (например, /users/username/projects), и все было хорошо после этого.

Однако, естественно, оригинальный /var/www нужно удалить или переименовать.

1
maan81

В Apache версии 2.4.18 (Ubuntu).

1. перейдите в этот файл /etc/Apache2/Apache2.conf Найдите <Directory /var/www/> и замените его в своем каталоге ......

2. Перейдите в /etc/Apache2/sites-available/000-default.confsearch для DocumentRoot /var/www/html и замените его на DocumentRoot ....

1
habibun

Если кто-то установил LAMP в папку /opt, то /etc/Apache2 - это не то, что вы ищете.

Найдите файл httpd.conf в /opt/lampp/etc/httpd.conf.

Измените строку в этой папке и сохраните ее из терминала.

1
nextgtech

Относится к 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 на /home/<USERNAME>/public_html. Также <Directory /var/www/html> на <Directory /home/<USERNAME>/public_html.

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

<IfModule mod_userdir.c>
    <Directory /home/*/public_html>
        php_admin_flag engine Off
    </Directory>
</IfModule>

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

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

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

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

0
user1184294

В RedHat 7.0: /etc/httpd/conf/httpd.conf

0
ehacinom

Если вы используете Linux Mint (личное мнение, из всех дистрибутивов, который делает меня счастливым), следуйте этому:

1- Перейдите в/etc/Apache2/sites-available и отредактируйте 000-default.conf 2- Найдите DocumentRoot, например DocumentRoot/var/www/html, который вы изменили в своем соответствующем каталоге; 3- Откройте терминал и введите: Судо службы Apache2 перезапустить

РЕДАКТИРОВАНИЕ ----- Я понимаю, что в Mint вы переходите к /etc/Apache2/Apache.conf, заменяете/var/www на ваш соответствующий путь, чем перезапускаете сервер (шаг 3).

Вот и все.

0
Marcelo Agimóvel