Как я могу изменить корень документа сервера 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 работает следующее:
В /etc/apache2/sites-available/ откройте файл 000-default.conf и измените Document Root на абсолютный путь к вашей директории.
sudo vim /etc/apache2/sites-available/000-default.conf
В папке /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) и более поздним версиям. Перед внесением изменений обязательно сделайте резервную копию следующих файлов.
Откройте файл /etc/apache2/apache2.conf, найдите директиву <Directory /var/www/> и замените путь на /home/<USERNAME>/public_html. Вы можете использовать «*» вместо «.»
Откройте /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.
Откройте файл /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